1

Assume we have a pair of two dimensional matrices $A$ and $B$. How can we calculate their circular convolution using only the linear convolution (and possibly padding numbers)?

rayes09
  • 51
  • 7
  • You can use Kronecker products to express it compactly. And if you can't then you'd better learn it because it's *aaawesome*. https://en.wikipedia.org/wiki/Kronecker_product It's almost like wizardry, – mathreadler Jun 11 '18 at 17:26
  • But why do you want lots of padding? It sounds much more bothersome. – mathreadler Jun 11 '18 at 17:51
  • I do not really get what you mean. Or more precisely how it helps to solve the problem in hand. I think i know how to formulate the problem in an other way using a trick with Block Circulant Matrices with Circulant Blocks. This trick also involves the Kronecker product. However, this is not what i am looking for. I am sure there is a way how to formulate a 2D circular convolution using only linear convolution and a lot of padding. And this is the problem that i look for an answer for. – rayes09 Jun 11 '18 at 17:52
  • @mathreadler
    1. Curiosity
    2. I am working on a programming project where the only function that can be used implements only the linear convolution
    – rayes09 Jun 11 '18 at 17:53
  • This is not really a programming forum, but depending on your programming language you can somehow embed your matrix class/type into another which has a different external matrix size and where you rewrite the get-element functions. You won't need any padding or memory operations at all in constructing the object, just keep track of which data point to send the asker to (for example a matrix multiplication function). – mathreadler Jun 11 '18 at 18:02

0 Answers0