我想绘制音乐文件的频谱(就像他们在 Audacity 中所做的那样)。因此,我希望 x 轴上以赫兹为单位的频率,y 轴上以振幅(或 desibel)为单位。
我将歌曲(大约 2000 万个样本)分成一次 4096 个样本的块。这些块将产生 2049 (N/2 + 1) 个复数(正弦和余弦 -> 实部和虚部)。那么现在我有这数千个单独的 2049 阵列,如何将它们组合起来?
假设我进行了 5000 次 FFT,得到了 5000 个 2049 复数数组。我是否需要将 5000 个数组的所有值相加,然后取组合后的 2049 个数组的大小?然后我是否将 x 轴设为歌曲采样率 / 2(例如:44100hz 文件为 22050)?
任何信息将不胜感激
您为此使用什么应用程序?我假设您不是手动执行此操作,所以这里是一个 Matlab 示例:
>> fbins = fs/N * (0:(N/2 - 1)); % Where N is the number of fft samples
现在你可以执行
>> plot(fbins, abs(fftOfSignal(1:N/2)))
Stolen http://www.mathworks.com/matlabcentral/newsreader/view_thread/162141
编辑:看看这个http://www.codeproject.com/Articles/9388/How-to-implement-the-FFT-algorithm http://www.codeproject.com/Articles/9388/How-to-implement-the-FFT-algorithm
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)