繁体   English   中英

音频样本的FFT处理

[英]FFT processing of audio sample

我是具有数学背景的音频处理的新手,所以我很少(很多,但对于初学者来说)很少有关于用fft处理提取的样本的问题。

我正在使用http://www.drdobbs.com/cpp/a-simple-and-efficiency-fft-implementatio/199702312?pgno=1中具有固定数组长度的fft实现。

我有一些样本集(假设说有1024个样本集)。

Fft算法采用输入复数值(实数和虚数),虚值设置为0,因为我没有任何东西,并且剥去了虚数部分的fft输出。

我还有以下问题:

1)我是否认为样本是实数是正确的?

2)是否有仅在实数上有效的FFT实现方式? 我的意思是在计算中根本没有想象的部分。

3)如果我继续使用所描述的过程,是否正确的假设是:如果在fft的输入中没有虚数数据(全零),则fft输出的虚部对于所有值也为零?

PS:很抱歉,如果问题已经存在,但是我没有找到令人满意的答案。

1)我是否认为样本是实数是正确的?

是。

2)是否有仅在实数上有效的FFT实现方式? 我的意思是在计算中根本没有想象的部分。

如果有的话,在计算中仍然需要使用虚数。 (当然,它可以对成对的实数进行复杂的数学运算,而只是将第二个数字标记为不是“虚构”的东西,那会有什么好处?)

3)如果我继续使用所描述的过程,是否正确的假设是:如果在fft的输入中没有虚数数据(全零),则fft输出的虚部对于所有值也为零?

这是不正确的。

FFT输出中每个数字的绝对值与信号中每个频率的幅度成正比。

信号中每个频率的相位也作为复数的参数编码在输出中。 也就是说,如果某个频率与正弦波异相90度,则该bin的参数将为90度-也就是说,实部将为0,而虚部将具有振幅! 对于不是90度倍数的相位,实部和虚部都将为非零。

如果您不关心相位信息,则可以获取每个输出数字的绝对值,即sqrt(real*real + imag*imag)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM