根据卷积定理,时域中的卷积是 fft 域中的乘积。使用正确的零填充,它可以工作:
% convolution in time domain
a = [1 2 3];
b = [4 5 6];
c = conv(a,b);
a_padded=[a 0 0]; b_padded=[b 0 0];
c_bis=ifft(fft(a_padded).*fft(b_padded));
% we do find c_bis=c
然而,这个定理也应该反过来起作用,时域中的乘积是 fft 域中的卷积。我没有得到这部分:
d = a.*b;
D=conv(fft(a_padded),fft(b_padded));
d_bis=ifft(D);
这给出了 d_bis 的复向量。如何使用频域中的卷积来反转时域中的逐点乘积?