Suppose that I am given two $n \times m$ matrices $\bf{A}$ and $\bf{C}$, and let $\bf{B}$ be a matrix that is convolved with $\bf{A}$, such that:
$\bf{A} * B = C$
In the above, $*$ is the convolution operator (link).
I am searching for a numerical procedure (and ideally a reference book or paper on the mathematics of the operation) that will allow me to determine $\bf{B}$, given $\bf{A}$ and $\bf{C}$.
I know both $\bf{A}$ and $\bf{C}$ exactly. The $\bf{A}$ is the system input, whereas the $\bf{C}$ is the system output.
Although the convolution is a product in the Fourier domain, I might be able to determine $\bf{B}$ by division. However, using the 2D Fast Fourier Transform (FFT), do I have to pad the matrices in the spatial domain or deal with division by zero? How do I do this in an elegent manner?
Is there a way to do this in Matlab using the fft2
and ifft2
functions?