我知道,在时域上x和y的卷积等于频域上fft(y)的fft(x)倍。所以我用下面的matlab做了一个简单的例子。
xn=[1,2,3,4];
yn=[4,3,2,1];
zn=conv(xn,yn);
znr=ifft(fft(xn).*fft(yn));我得到的结果如下。
zn =4 11 20 30 20 11 11 4 znr = 24 22 24 30
我想知道为什么zn不等于znr。任何知道为什么请解释的人。
发布于 2020-11-09 00:51:38
使用fft()以所需的方式配置解决方案时,指定转换长度可能是解决方案。通常情况下,卷积结果的长度等于两个信号的和,减去1,在这种情况下,我们可以将Transform_Length设置为7。
xn = [1,2,3,4];
yn = [4,3,2,1];
zn = conv(xn,yn);
Transform_Length = length(xn) + length(yn) - 1;
znr = ifft(fft(xn,Transform_Length).*fft(yn,Transform_Length));
zn
znr结果:

使用MATLAB R2019b运行的
https://stackoverflow.com/questions/64734260
复制相似问题