有谁能解释在MATLAB中执行对称IFFT的算法?
举个例子:
out_signal = ifft(X,'symmetric');
这里,X
是复杂的对称信号。
答案 0 :(得分:7)
执行ifft
时symmetric
标志假定您的频域信号为conjugate symmetric or Hermitian。当您在y
轴上反射信号时,函数是共轭对称的,并且它等于其复共轭。换句话说:
这实际上意味着当x < 0
时信号的虚部的符号相反。
这是如此有用的原因是因为如果信号是共轭对称的,它允许在计算逆时更多的优化和捷径。这意味着一半的频谱用于正频率而另一半用于负频率。负系数是阳性的共轭。这导致了FFT的有用特性,其中如果信号的傅里叶变换是共轭对称的,则其时域等效将是纯实数值。如果您知道时域信号的输出纯粹是实数值,那么这将为ifft
提供一些加速。
请查看我上面链接的维基百科文章,了解更多详情。另外,请查看此useful post on DSP StackExchange以获得更好的解释。如果您希望IFFT算法利用共轭对称结构,请查看这两个帖子以获取更多详细信息: