Matlab如何进行离散傅里叶变换DFT(快速傅里叶变换FFT)进行频谱分析.pdf
《Matlab如何进行离散傅里叶变换DFT(快速傅里叶变换FFT)进行频谱分析.pdf》由会员分享,可在线阅读,更多相关《Matlab如何进行离散傅里叶变换DFT(快速傅里叶变换FFT)进行频谱分析.pdf(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Matlab 如何进行如何进行利用利用离散傅里叶变换离散傅里叶变换 DFT(快速傅里叶变换快速傅里叶变换 FFT)进行进行频谱分析频谱分析 信号在频域能够呈现出时域不易发现的性质和规律,傅里叶变换是将信号从时域变换到频域,便于在频域对信号的特性进行分析。离散傅里叶变换(DFT),是傅里叶变换在时域和频域上的离散呈现形式,通俗的说就是将经过采样的有限长度时域离散采样序列变换为等长度的频域离散采样序列,通过对变换得到的频域采样序列进行适当的换算和处理,可以得到信号的频谱(频率-幅值曲线和频率-相位曲线)。离散傅里叶变换(DFT)的定义为:210()DFT()(),01NjnkNnX kx nx n
2、 ekN 式中,x(n)为时域离散采样序列(通常为实数序列),N 为时域离散采样序列 x(n)的长度,X(k)为频域离散采样序列(通常为复数序列)。快速傅里叶变换(FFT)是离散傅里叶变换(DFT)的一种快速算法,FFT 的计算结果与 DFT 完全相同,但 FFT 相对于 DFT 减小了计算量、节约计算资源消耗,能够适应在线计算,因此实际 DFT 都是通过 FFT 算法来求得结果。Matlab 软件自带 fft 函数实现快速傅里变换算法,但是光使用 fft并不能直接得到信号的频谱,还需要解决以下问题:|X(k)|X(k)kk幅值对称幅值对称对应频率对应频率fs/2直流信号幅值直流信号幅值(对应
3、频率对应频率0Hz)有效频率范围有效频率范围0 0 fs/2相位相反相位相反幅值大小需要幅值大小需要乘以乘以2/N DFT 变换后的 X(k)复数序列幅值、相位图 1)幅值变换幅值变换:X(k)序列的幅值大小与参与变换的时域序列 x(n)长度 N 有关,变换后的幅值|X(k)|需要乘以 2/N 得到真实幅值;2)有效频率区域有效频率区域:X(k)序列由两部分共轭复数序列组成(复数共轭表示幅值相等、相位相反),相当于只有一半的复数序列是独立有效的,这部分复数序列对应 0fs/2 的频率区域(fs为时域离散采样序列 x(n)的采样频率)。3)直流信号的处理直流信号的处理:直流信号幅值(对应频率 0
4、Hz)为两部分共轭复数序列在频率 0Hz 处的加和,其真实幅值再乘以 2/N 后还需要再除以 2 得到真实的直流信号幅值。初学的朋友若不理解上述变换和处理技巧,很难得到正确的频谱图。为此作者在 fft 函数的基础上,使用 Matlab 开发了函数 DFT.m,通过函数来实现上述幅值变换、有效频率区域和直流信号的处理,能够直接分析出给定离散信号 x(n)的幅值谱和相位谱,函数简单、易用、通用性好。function f,X_m,X_phi=DFT(xn,ts,N,drawflag)%f,X_m,X_phi=DFT(xn,ts,N,drawflag)离散序列的快速傅里叶变换,时域转换为频域%输入 x
5、n为离散序列 为向量%ts为序列的采样时间/s%N为FFT变换的点数,默认为xn的长度%drawflag为绘图标识位,取0时不绘图,其余非0值时绘图,默认为绘图%输出 f为频率向量%X_m为幅值向量%X_phi为相位向量,单位为%注意计算出来的0频分量(直流分量应该除以2)直流分量的符号应结合相位图来确定%By ZFSwust 2020%获取更多Matlab/Simulink原创资料和程序,清关注微信公众号:Matlab Fans 下面结合实例进行演示和分析。例例1:单频正弦信号单频正弦信号(整数周期采样)(整数周期采样)%Eg 1 单频正弦信号 ts=0.01;t=0:ts:1;A=1.5;
6、%幅值 f=2;%频率 w=2*pi*f;%角频率 phi=pi/3;%初始相位 x=A*cos(w*t+phi);%时域信号 figure plot(t,x)xlabel(时间/s)ylabel(时域信号x(t)%DFT变换将时域转换到频域,并绘制频谱图 f,X_m,X_phi=DFT(x,ts);结果结果:结果:正弦信号频率为2Hz,频谱分析频率为1.98Hz 正弦信号幅值为1.5,频谱分析幅值为1.495 正弦信号相位为60,频谱分析相位为63.32 例例 2:单频正弦信号(单频正弦信号(非非整数周期采样)整数周期采样)%Eg 2 单频正弦信号(非整数周期采样)ts=0.01;t=0:t
7、s:1;A=1.5;%幅值 f=1.5;%频率 w=2*pi*f;%角频率 phi=pi/3;%初始相位 x=A*cos(w*t+phi);%时域信号 figure plot(t,x)xlabel(时间/s)ylabel(时域信号x(t)%DFT变换将时域转换到频域,并绘制频谱图 f,X_m,X_phi=DFT(x,ts);结果结果:正弦信号频率为1.5Hz,频谱分析频率为0.99Hz、1.98Hz 正弦信号幅值为1.5,频谱分析幅值为1.034、0.923 正弦信号相位为60,频谱分析相位为160.93、-33.76 总结:总结:DFT 变换后频率序列的最小单位刻度为 fs/N(此例为 1H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 如何 进行 离散 傅里叶变换 DFT 快速 FFT 频谱 分析
限制150内