为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

qq_遁去的一_1 2019-06-04 15:45:20
如何获得FFT中每个值的频率?我有一个FFT结果。这些都储存在两个double数组:实部分数组和虚部分数组。如何确定这些数组中每个元素对应的频率?换句话说,我想要创建一个数组来存储我的FFT中每个实的和虚的分量的频率。
查看完整描述

3 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

看看我的回答这里.

对评论的答复:

FFT实际上计算的是互相关输入信号的正弦函数和余弦函数(基函数)在等间隔频率范围内。对于给定的FFT输出,有一个对应的频率(F),这是我贴出的答案给出的。输出样本的真实部分是输入信号与cos(2*pi*F*t)而虚部是输入信号的互相关。sin(2*pi*F*t)..输入信号与sincos功能是考虑输入信号和基函数之间的相位差。

通过获取复FFT输出的幅度,您可以测量输入信号在一组频率上与正弦信号的关联程度,而不管输入信号相位如何。如果你只是分析一个信号的频率内容,你几乎总是采取的幅度或幅度平方的复杂输出的FFT。


查看完整回答
反对 回复 2019-06-04
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

我使用了以下方法:

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赫兹等)
  • nFFT

    FFT向量的大小


查看完整回答
反对 回复 2019-06-04
  • 3 回答
  • 0 关注
  • 2259 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信