我是靠谱客的博主 负责枕头,最近开发中收集的这篇文章主要介绍FFT之频率与幅值的确定,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

FFT也就是快速傅里叶变换。经过快速傅里叶变换后会得到一串复数。

下面要讲两个问题:1、如何获取频率;2、如何获取幅值

傅里叶变换并没对频率进行任何计算,频率只与采样率和进行傅里叶变换的点数相关。

FFT变换完第一个数时0Hz频率,0Hz就是没有波动,没有波动有个专业一点的说法,叫直流分量。
后面第二个复数对应的频率是0Hz+频谱分辨率,每隔一个加一次,频谱分辨率Δf计算公式如下:

Δf=Fs/N

式中,Fs为采样率,N为FFT的点数也是采样点数,因此只要Fs和N定了,频域的分辨率就定下来了。

FFT变换后的第一个实数 - 直流分量

FFT之后的第一个结果表示了时域信号中的直流成分的多少,直流信号代表和基准0的偏移量,但是这个结果不是直流的幅值。

看一个例子:

输入序列

oneWave = [1,1,1,1,1,1,1,1];

进行变换

fft(oneWave)

输出

8 0 0 0 0 0 0 0

oneWave 的直流分量是1,但计算结果是8,这里又引入一个问题,FFT之后的数值不是真实的幅值,需要进行转转换,第一个点需要除以N,才能还原为原来的结果,其他结果除以N/2才能还原为原来的结果。

FFT变换后的复数模 - 幅度

假设原始信号的峰值为A,那么FFT的结果的每个点(除了第一个点直流分量之外)的模值就是A的N/2倍。而第一个点就是直流分量,它的模值就是直流分量的N倍。也就是说,要得出真实幅值,需要把除了第1个点(i=0)以及最后一个点(i=N/2)除以N以外,其余点需要求得的模除以N/2。

 

最后

以上就是负责枕头为你收集整理的FFT之频率与幅值的确定的全部内容,希望文章能够帮你解决FFT之频率与幅值的确定所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部