Apple FFT从实数数组加速框架逆FFT

时间:2012-04-07 08:13:21

标签: fft inverse

我正在使用加速框架FFT函数来生成声音样本的频谱图。这部分效果很好。但是,我想(有效地)直接操纵频谱(即操纵实数),然后再次调用逆,我将如何去做呢?看起来INVERSE调用期望一组IMAGINARY数字,但是如何从我操纵的实数中产生呢?我已经尝试将realp数组制作成我的实数,并将imagp部分设为零,但这似乎不起作用。

我之所以这样问是因为我希望对语音音频样本运行FFT,然后再次运行FFT,然后提升倒谱的低部分(因此希望将声道分量与音高分开)和然后再次运行逆FFT以产生更清楚地显示声道(共振峰)信息的频谱图(即,没有音调信息)。但是,我似乎在逆FFT上遇到了问题,我在realp数组中传递了我的实数值(倒谱),而imagp为零。我想我在这里做错了,结果出乎意料。

1 个答案:

答案 0 :(得分:0)

您需要处理复杂的正向FFT结果,而不是实际幅度,否则IFFT结果频谱的形状将会失真。不要将它们视为虚数,将它们视为包含所需角度相位信息的2D矢量的一部分。

如果您的倒谱升降器/滤波器只改变实际幅度,那么您可以尝试使用实际幅度的变化量作为缩放因子来改变前向复数FFT结果,然后再进行复杂的IFFT。