繁体   English   中英

使用 MATLAB 时的复傅里叶逆变换

[英]Complex inverse Fourier transform when using MATLAB

我正在使用 MATLAB,我试图找到一个对称函数的 ifft,但我一直得到一个复杂的结果。 我曾尝试使用 circshift,但我似乎无法弄清楚。

我该如何解决?

这是代码:

t = 0:0.001:0.119;

for i = 1:120

    comp1(i) = 9.8*cos(2*pi*200*t(i));

    comp2(i) = 7.6*cos(2*pi*145*t(i) + 30/57.3);

    comp3(i) = 5.4*cos(2*pi*93*t(i) + 70/57.3);

    comp4(i) = 3.2*cos(2*pi*58*t(i) + 160/57.3);

    comp5(i) = cos(2*pi*35*t(i) + 320/57.3);

    YS = comp1 + comp2 + comp3 + comp4 + comp5;
end

Q = 1000/(2*60)*[-59:1:60];

Box = [zeros(1, 40), ones(1, 5), zeros(1, 30), ones(1, 5), zeros(1, 40)];

Box1 = circshift(Box, [0, 60]);

F = ifft(Box1);

(我不确定您的代码中的YSQ是做什么用的,所以我只是忽略它们)。

长度为N的实信号x的变换X具有以下性质

X(k) = X(N-k)*

对于k=1,...,N-1 ,其中*是复共轭。 对于真正的转换(如您的示例),您可以忽略* 请注意,索引从0N-1 ,因此对于k=0 ,未定义上述属性,因为最后一项的索引是N-1 (没有X(N) )。

在您的情况下,信号Box没有此属性, Box1也没有(检查它!)。 尝试例如:

Box = [zeros(1,41),ones(1,5),zeros(1,29),ones(1,5),zeros(1,40)];

这个信号确实有这个属性,而且它的ifft确实是真实的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM