我是靠谱客的博主 典雅鸡翅,这篇文章主要介绍matlab中值得注意的FFT知识点幅度谱,幅值谱?Magnitude,Amplitude?,现在分享给大家,希望可以做个参考。

整理一下需要注意的FFT知识点,主要来源:https://blog.csdn.net/czyt1988/article/details/84995295

FFT公式

Y = fft(signal,N)

其中signal为时域信号,N为FFT长度。当N大于signal长度,则要补零到N个点,当N小于signal长度,就截取前N个点。注意,N一般设置为2的幂次方,以便改善FFT性能。可采用nextpow2函数求N的值

N = 2^nextpow2(length(signal));

FFT的结果Y是一个N个值的复数,满足以下规律:

  • 第0和N/2的两个值虚数部分为0,是对称的直流分量。
  • 下标为i和N-i的两个复数是共轭的,所以有用的信息储存在0到N/2+1个值中。

频谱分辨率

Delta f=frac{fs}{N}

其中fs是采样率,N是FFT点数。N个点中每个点的分辨率均为Delta f。则N个点对应的频段向量fre=(1:N)*Delta f

直流分量

直流信号代表与基准0的偏移量。

FFT后的复数模-幅度

  • 第一个点(i=0)和最后一个点的模(i=N/2)除以N
  • 其余点的模除以N/2

原因

这是因为傅里叶级数对应时域幅值,其中已经包含了1/N项,而fourier变换中没有该系数, 所以,进行完FFT变换后需除以N/2才能与时域对应上。(这里还不是很清楚)

F(n)= sum_{i=0}^{N-1}{x_ie^{ frac{-2pi j}{N}ni}}

全世界绝大部分的FFT算法计算出来后都需要进行幅度的转换的,为何要这样设计,因为傅里叶变换在很多场合是不需要求幅度的,而只需要分贝就可以,因此,如果傅里叶变换做了乘以2除以n的处理反而在许多场合是多余的,就像求距离,好多情况只需要x^2 + y ^2就可以了,并不需要sqrt{ {x^2} + {y^2}}
幅值根据需求有不同需求,具体见下节

幅度谱,幅值谱?Magnitude,Amplitude?

  • 幅值 Amplitude
    幅值就是对于波形的幅值来说的,上面一节说的转换就是把fft计算的结果转化为幅值,英文叫Amplitude
    在工程中还经常看到分贝纵坐标的频谱,带分贝的频谱,使用分贝数的好处是,用较小的坐标可以描述很宽的范围。工程上会取20log(Amplitude)转变为分贝。
    幅值第n(其中n!=1)点处的fft计算的结果是复数a+bi,模值A=sqrt(a2+b2),那么实际信号的幅值是2*A/N;
    当n=0时(0Hz),也就是第一个点就是直流分量,它的模值就是直流分量的N倍,实际信号的幅值是A/N,注意N是采样点而不是进行FFT的点数

  • 幅度 Magnitude
    若对fft的结果不做任何处理,直接取模,那么这个值叫幅度,英文上叫Magnitude,

于是对fft计算的复数结果,其实数和虚数对应如下:

名称计算公式
幅度(Magnitude)sqrt{Re^2+Im^2}
幅值(Amplitude)i=(0,frac{n}{2}) ,A=frac{sqrt{Re^2+Im^2}}{n};otherwise, A=frac{2sqrt{Re^2+Im^2}}{n}
dB20log(Amplitude)

根据这个表,就可以很明白FFT之后需要进行什么样的处理了。

其实还有:

  • 截断加窗问题

  • 加窗频谱幅值修正问题

 

 

 

 

 

最后

以上就是典雅鸡翅最近收集整理的关于matlab中值得注意的FFT知识点幅度谱,幅值谱?Magnitude,Amplitude?的全部内容,更多相关matlab中值得注意内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部