【问题标题】:Spectrum of real-valued signal实值信号频谱
【发布时间】:2014-01-21 13:59:37
【问题描述】:

据我所知,幅度部分偶数对称而相位部分奇数对称的频谱IFFT应该是实数。

让我们考虑这个例子:

signal_spectrum = [1 2+i 3+2*i 4+8*i 5 4-8*i 3-2*i 2-i 1];

很明显,这个频谱满足我上面列出的两个条件。当我使用 Matlab 执行 IFFT 时,我得到:

signal= ifft(signal_spectrum) = 
   2.7778          
   0.8003 - 0.2913i
  -1.2861 + 1.0792i
   0.5218 - 0.9038i
  -0.0812 + 0.4604i
   0.0976 + 0.5536i
  -0.6329 - 1.0962i
   1.3343 + 1.1196i
  -2.5316 - 0.9214i

获得的信号是复值的。为什么?有什么问题?

【问题讨论】:

    标签: matlab signal-processing fft spectrum ifft


    【解决方案1】:

    只需从向量中删除最后一个1 :) 对称性应该相对于第一个元素。 您可以将其视为循环缓冲区或周期信号的一个周期。

    【讨论】:

    • 非常感谢,这很重要!对称应该是圆对称的。我正在研究“频谱减法”算法以提高语音信号质量。我有一个包含 441 个样本的光谱框架。我确信它具有圆对称性,但 IFFT 的输出给出了一个复杂的数组。虚构部分非常小(如 e-20),但它们仍然存在。如果我忽略它们并从真实部分播放声音,质量就会得到保留。但是,我不知道为什么会出现这种虚构的部分。有谁知道可能是什么原因?
    • FFT中的浮点运算不是对称的,所以它们的舍入会不同,误差不会抵消。浮点运算的相对误差 1e-20 可以忽略不计。如果实部的大小也为 1e-10,情况会有所不同,但我假设信号的比例约为 1 或更大。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    相关资源
    最近更新 更多