Matlab 你能帮我理解傅里叶逆变换的工作吗?

Matlab 你能帮我理解傅里叶逆变换的工作吗?,matlab,transform,fft,inverse,windowing,Matlab,Transform,Fft,Inverse,Windowing,我试图学习傅里叶变换,使用MATLABs FFT函数,我可以将我说“1 2 3”的录音转换到频域。据我所知,生成的文件包含一组复数,它们保存了原始信号中频率的幅度和相位 然后,我可以对这些复数执行傅里叶逆变换(使用MATLABs iFFT函数),我看到(和听到)我的原始信号几乎完全重建。这是我不明白的一点。如果我用高音说“3”,FFT应该(而且确实)显示能量在这个频率上存在,但它如何及时重建它呢?也就是说,由于FFT返回的是一组幅值和相位,那么这些频率何时出现在时域信号中的信息是什么?MATLA

我试图学习傅里叶变换,使用MATLABs FFT函数,我可以将我说“1 2 3”的录音转换到频域。据我所知,生成的文件包含一组复数,它们保存了原始信号中频率的幅度和相位

然后,我可以对这些复数执行傅里叶逆变换(使用MATLABs iFFT函数),我看到(和听到)我的原始信号几乎完全重建。这是我不明白的一点。如果我用高音说“3”,FFT应该(而且确实)显示能量在这个频率上存在,但它如何及时重建它呢?也就是说,由于FFT返回的是一组幅值和相位,那么这些频率何时出现在时域信号中的信息是什么?MATLAB正在做一些我不知道的窗口操作吗

任何帮助都将不胜感激

干杯,
Colin

如果您只对整个声音样本进行一次FFT(顺便说一句,这不是您通常会做的-通常您会使用一系列重叠的STFT来捕获时变的频谱内容),那么整个样本将被视为周期性波形。任何明显的时变内容仅仅是许多分量的振幅和相位组合起来重建原始信号的方式的结果。

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


例如,见。在上半部分,你有一个方形脉冲,它在时间上很明显是局部化的。通过包含越来越多的正弦波,可以看出脉冲形状的近似精度越来越高(不连续处除外,但这是另一种情况)。

这个问题似乎离题了,因为它是关于DSP理论而不是编程的-它属于这个问题,很好地回答了您的问题,您(thecolin)你几乎回答了你自己的问题。这里的关键词是“重构”,意思是只使用一系列复指数将信号恢复到最佳状态,这是一种“压缩”的/描述信息的不同方式。复制的信号永远不会完全相同,但它的距离足够近,让你的耳朵听不到任何差异。这是另一个动画,我相信是说明性的。