线性卷积和循环卷积是本质不同的运算。然而,在某些条件下,线性卷积和循环卷积是等效的。建立这种等效关系具有重要意义。对于两个向量 x 和 y,循环卷积等于二者的离散傅里叶变换 (DFT) 之积的逆 DFT 变换。
禹晶、肖创柏、廖庆敏《数字图像处理(电子信息前沿技术丛书)》P143
[M,N]=size(Img);
F = fft2(Img,M,N);
blurtype = 'gaussian';
hsize = 101; sigma = 1;
psf_gauss = fspecial( blurtype ,hsize,sigma );
H = psf2otf(psf_gauss, [M,N]);
> 这里使用fft2就会产生错误,很多刊物这里有误。
G=F.*H;
g=im2uint8(real(ifft2(G)));
Note: The FFT-based convolution method is most often used for large
inputs. For small inputs it is generally faster to use the imfilter
function.
Signal Processing Toolbox™ 软件提供了函数 cconv,该函数返回两个向量的循环卷积。cconv 内部使用的就是基于 DFT 的步骤。