如何获得FFT中每个值的频率?

如何获得FFT中每个值的频率?

我有一个FFT结果。这些都储存在两个double数组:实部分数组和虚部分数组。如何确定这些数组中每个元素对应的频率?

换句话说,我想要创建一个数组来存储我的FFT中每个实的和虚的分量的频率。


qq_遁去的一_1
浏览 2260回答 3
3回答

jeck猫

看看我的回答这里.对评论的答复:FFT实际上计算的是互相关输入信号的正弦函数和余弦函数(基函数)在等间隔频率范围内。对于给定的FFT输出,有一个对应的频率(F),这是我贴出的答案给出的。输出样本的真实部分是输入信号与cos(2*pi*F*t)而虚部是输入信号的互相关。sin(2*pi*F*t)..输入信号与sin和cos功能是考虑输入信号和基函数之间的相位差。通过获取复FFT输出的幅度,您可以测量输入信号在一组频率上与正弦信号的关联程度,而不管输入信号相位如何。如果你只是分析一个信号的频率内容,你几乎总是采取的幅度或幅度平方的复杂输出的FFT。

慕田峪7331174

我使用了以下方法:public static double Index2Freq(int i, double samples, int nFFT) {   return (double) i * (samples / nFFT / 2.);}public static int Freq2Index(double freq, double samples, int nFFT) {   return (int) (freq / (samples / nFFT / 2.0));}投入如下:i*回收站进入samples:赫兹采样率(即8000赫兹、44100赫兹等)nFFTFFT向量的大小
打开App,查看更多内容
随时随地看视频慕课网APP