Advertisement

一文解决--快速傅里叶变换FFT在 matlab中信号处理的应用

阅读量:

FFT的由来

傅里叶变换是什么?

定义:傅里叶变换的目的是将时间域的信号转变成频率域上的信号。

顺便一提,有必要解释一下什么叫时间域和频率域。

简单总结下,时域和频域的关系如下: 时域是信号在时间轴随时间变化的总体概括。

频域是把时域波形的表达式做傅立叶等变化得到复频域的表达式,所画出的波形就是频谱图。是描述频率变化和幅度变化的关系。

示波器用来看时域内容,频普仪用来看频域内容。

时域(时间域-time domain)——自变量是时间,即横轴是时间,纵轴是信号的变化。其动态信号x(t)是描述信号在不同时刻取值的函数。

频域(频率域- frequency domain)——自变量是频率,即横轴是频率,纵轴是该频率信号的幅度,也就是通常说的频谱图。频谱图描述了信号的频率结构及频率与该频率信号幅度的关系。对信号进行时域分析时,有时一些信号的时域参数相同,但并不能说明信号就完全相同。

因为信号不仅随时间变化,还与频率、相位等信息有关,这就需要进一步分析信号的频率结构,并在频率域中对信号进行描述。动态信号从时间域变换到频率域主要通过傅立叶级数和傅立叶变换等来实现。

很简单时域分析的函数是参数是t,也就是y=f(t),频域分析时,参数是w,也就是y=F(w)两者之间可以互相转化。时域函数通过傅立叶或者拉普拉斯变换就变成了频域函数。

数据参考 :一张动图,让你明白时域和频域的关系 - 知乎 (zhihu.com)

用公式来表示就是这个意思:

要使当前数据有解,那么f(t)必须可积,看不懂的话推荐:高等数学II-知识点(3)——广义积分、定积分几何应用、定积分求曲线弧长、常微分方程、可分离变量的微分方程、一阶微分方程-齐次方程、一阶线性微分方程-博客

引入广义函数的概念后,许多不满足绝对可积条件的函数也能进行傅里叶变换,这给信号与系统分析带来很大方便。
[高等数学:第五章 定积分(6) 广义积分_广义积分的计算方法及例题-博客]( "高等数学:第五章 定积分(6) 广义积分_广义积分的计算方法及例题-博客")

在数学分析中的映射中讲到f·g 的映射关系,这里面其实差不多,他换了个方向投影。

接下来,关于傅里叶变换的类型:

非周期连续信号:傅里叶变换 FT

周期连续信号:傅里叶级数 FS

非周期离散信号:离散时间傅里叶变换 DTFT

周期离散信号:离散傅里叶级数 DFS

注:四种信号均为 (‐∞, +∞) 上的无穷信号,计算机只能处理离散的、有限长度的信号。

离散傅里叶级数 (DFS) 是周期、离散函数,对于计算机而言,计算其的周期特性即可知道全部的性质,计算方法为离散傅里叶变换(DFT)

随后,前辈们对DFT进行了优化,提出一种快速傅里叶变换的算法,本质还是傅里叶变换,称为FFT,应用较多,也是本文的重点。

复制代码
 Y = fft(x)

    
 % x 为 数据集
    
 Y = fft(x,n) 
    
 % x 的定义同上,n 定义计算数据的个数,必须比x大
    
 %否则需要在x数据集后面补充0至一样长,没必要

Y = fft(x,n) % x 的定义同上,n 定义计算数据的个数

接下来实际例子:

请对以下的信号序列进行 fft 计算,并解读 fft 的运算结果。 其中,f1 = 35Hz,f2 = 200 Hz,分别为两个余弦信号的频率 分别为两个余弦信号的频率。信号采集的频率 Fs = 1000 Hz,采集的数据点个数 N = 2000

y=1.4+0.6cos(2πf1t+π/3)+0.7cos(2πf2t+π/6);

随后画出图像:

然后把这个扔到傅里叶变换里面去计算,取实部和虚部,然后平方和开方求幅值。

随后,得到实部、虚部、幅值。

有相应需求,可私聊我定做及附赠源代码。

全部评论 (0)

还没有任何评论哟~