2013-12-09 40 views
0

我想了解傅里叶变换并使用MATLAB的FFT函数,我可以将频率域中'1 2 3'的记录转换为我的记录。据我了解,结果文件包含一组复数,这些复数在原始信号中保持频率的大小和相位。你能帮我理解傅立叶逆变换的工作吗?

然后,我可以对这些复数进行傅里叶逆变换(使用MATLAB的iFFT函数),我看到(并听到)我的原始信号几乎完美重建。这是我没有得到的一点。如果我用高音调说'3',FFT应该(并且确实)表明能量出现在这个频率上,但它如何及时重建呢?即因为从FFT返回的所有信息都是一组幅度和相位,其中的信息表示这些频率出现在时域信号中的时间? MATLAB是否做了一些我不知道的窗口?

任何帮助将不胜感激。

干杯, 科林

+4

这个问题似乎是脱离主题,因为它是关于DSP理论而不是编程 - 它属于http://dsp.stackexchange.com –

回答

0

如果你只是把你的整个声音样本的一个FFT(这是不是你通常会做,顺便说一句 - 通常你会使用重叠STFTs的连续拍摄时间变光谱含量),那么整个样品就好像它是一个周期性波形。任何明显的随时间变化的内容仅仅是许多组件的振幅和相位组合来重构原始信号的结果。

1

不涉及窗口。 FFT为正弦曲线选择适当的振幅和相位,以便所有正弦曲线的总和给出信号的时间变化。

参见例如here。在上半部分,你有一个方形脉冲,这显然是非常本地化的时间。通过包括越来越多的正弦曲线,可以看出脉冲形状近似于越来越精确(除了在不连续处,但这是另一个故事)。

+0

这很好地回答你的问题,你(thecolin)几乎回答你自己的问题题。这里的关键词是重建,意味着只需使用一系列复杂的指数就可以将信号尽可能地恢复到原来的能力 - 一种“压缩”/不同的描述信息的方式。再现信号永远不会相同,但它足够接近你的耳朵,不会听到任何差异。这是另一个我认为是说明性的动画。 http://en.wikipedia.org/wiki/File:Fourier_transform_time_and_frequency_domains_(small).gif – Fredrik