小编jer*_*buk的帖子

fft 的点积

根据卷积定理,时域中的卷积是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
Run Code Online (Sandbox Code Playgroud)

然而,这个定理也应该以相反的方式工作,时域中的乘积是 fft 域中的卷积。我不明白这部分:

d = a.*b;
D=conv(fft(a_padded),fft(b_padded));
d_bis=ifft(D);
Run Code Online (Sandbox Code Playgroud)

这给出了 d_bis 的复向量。如何使用频域中的卷积来反转时域中的逐点乘积?

matlab fft convolution dft ifft

4
推荐指数
1
解决办法
510
查看次数

标签 统计

convolution ×1

dft ×1

fft ×1

ifft ×1

matlab ×1