当前位置:文档之家› matlab小论文

matlab小论文

基于MATLAB在傅里叶变换中的应用樊(学号:)(学院专业班)摘要:MATLAB自推出以来就受到广泛的关注,其强大的扩转功能为各个领域的应用提供了有力的工具。

信号处理箱就是其中之一。

在信号处理工具箱中,MATLAB提供了滤波器分析、滤波器实现、模拟滤波器设计、模拟滤波器变换、滤波器离散化、线性系统变换等方面的函数命令。

应用MATLAB作数值计算,针对当自变量的信号“时间”或“频率”取连续值或离散值时形成的五种情况作出相应的计算及频谱曲线。

关键词:傅里叶变换;周期;频率;MATLAB。

1.引言MATLAB 是国际上公认的优秀、可靠的科学计算和仿真的标准软件。

它在许多科学领域中成为计算机辅助设计和分析、算法研究的基本工具。

在傅里叶变换中,应用MATLAB作数值计算,可以很容易的作出相对应的计算及频谱曲线,大大提高了计算效率。

2.傅里叶变换傅里叶变换就是建立以时间为自变量的“信号”与以频率为自变量之间的某种变化关系。

所以,当自变量“时间”或“频率”取连续值或离散值时,就形成了几种不同形式的傅里叶变换,如表1傅里叶变换形式所示。

表 1傅里叶变换形式3.连续时间、连续频率------福利叶变换这就是连续时间非周期信号x(t)福利叶变换关系,所得到的是连续的非周期的频率密集度函数()X jΩ.其变换对为:正变换:()()j tX j x t e dt-Ω∞Ω=-∞⎰(1)逆变换:1()()2j tX t x j e d π-Ω∞=ΩΩ-∞⎰ (2) 例 1 分析如图 1时域信号及其频谱图 所示的矩形脉冲信号()f t (非周期信号)在Ω=-40~40rad/s 区间的频谱。

(a )采样密 (b )采样稀,有频率泄漏图 1时域信号及其频谱图根据离散时间信号[]x n 的Z 变换定义: ()[]n x z x n z +∞--∞=∑,矩形脉冲信号的频谱为:F(j )=()j t f t e dt -Ω∞Ω-∞⎰按MATLAB 作数值计算的要求,它不能计算无限区间,根据信号波形的情况,将积分上下限定为0~10s ,并将t 分成N 等份,用求和代替积分。

这样,10111()()()1MM NN b b z n b z Y z H z X z a z n a z ----+++==+++ (3)可写为12121F(j )=()[(),(),,()][,,,]n Nj t j t j t j t i n i f t e t f t f t f t e e e t -Ω-Ω-Ω-Ω=Ω∆=⋅⋅⋅⋅⋅⋅∆∑ (4)这说明求和的问题可以用()f t 行向量乘以n j t e -Ω列向量来实现,式中t ∆是t 的增量,在程序中用dt 表示。

由于求一系列不同Ω(程序中用Ω用W 表示)处的F 值,都用同一公式,这就可以利用matlab 中的元素群运算能力。

类似地也可以得到傅里叶逆变换的数值计算式。

MATLAB 源程序如下: clear,tf=10; N=input;dt=10/N;t=[1:N]*dt; f=[ones(1,N/2),zeros(1,N/2)]; wf=input; Nf=input;w1=linspace(0,wf,Nf) ;dw=wf/(Nf-1); F1=f*exp(-j*t'*w1)*dt; w=[-fliplr(w1),w1(2:Nf)]; F=[fliplr(F1),F1(2:Nf)]; subplot(1,2,1), plot(t,f,'linewidth',1.5), grid onset(gcf,'color','w') axis([0,10,0,1.1]) subplot(1,2,2),plot(w,abs(F),'linewidth',1.5) grid on程序运行结果:若时间分隔的点数N=256,需求得频率宽度wf=40,需求的频率点数Nf=64,所得结果所示。

若取时间分隔的点数N=64,频数宽度=40,频谱点数Nf=256,则得结果所示。

此时采取采样周期为dt=10/64s ,对应的采样频率fs=1/dt=6.4Hz 或s Ω=40.2124rad/s 。

从图中可以看出高频频谱以s Ω/2处为基准线的转迭,出现频率泄露。

4. 连续时间、离散频率----傅里叶级数设()x t 代表一个周期为0T 的周期性连续时间函数,()x t 课展开成傅里叶级数,其傅里叶级数的系数为0()X jk Ω,0()X jk Ω是离散频率的非周期函数,()x t和0()X jk Ω组成的变换对为:正变换:000/20/21()()T jk t T X jk x t e dt T -Ω-Ω=⎰(5)逆变换:00()()jk tX t x jk e ∞Ω-∞=Ω∑ (6)式中,002/T πΩ=为离散频率相邻两谱线之间的频率间隔,k 为谐波序号。

5. 离散时间、连续频率----序列傅里叶变换如果信号()x n 是非周期且绝对可和,则它的离散时间傅里叶变换对数为: 正变换: ()()j j n X e x n e ωω∞-∞=∑ (7)逆变换: 1()()2j j n x n X e e d πωωπωπ-=⎰ (8)在时域上市离散序列,而在频域上是连续函数,即具有连续的频谱。

这里的ω为数字频域,它与模拟角频率Ω的关系为:T ω=Ω,其中T 为模拟信号()()x n x nT =的抽样时间间隔。

值得注意的是,对于序列傅里叶变换,如果()x n 为无限长,那么就不能用MATLAB 直接利用式1211112()111N N r r r H z p z p z p z---=++⋅⋅⋅+---来计算()j X e ω,只可以用它对表达式()j X e ω在[0,]π频率点上求值,在画出它的幅度和相位(或者实部和虚部)。

如果()x n 为有限长,那么就可直接用MATLAB ,根据式1211112()111N N r r r H z p z p z p z---=++⋅⋅⋅+---,在任意频率对()j X e ω进行数值计算。

例2求/3()(0.9)j n x n e π=,010n ≤≤的离散时间傅里叶变换。

MATLAB 源程序如下: n=0:10;x=(0.9*exp(j*pi/3)).^n; k=-200:200;w=(pi/100)*k;X=x*(exp(-j*pi/100)).^(n'*k); magX=abs(X);angX=angle(X); subplot(2,1,1);plot(w/pi,magX);grid axis([-2,2,0,8])xlabel('frequency in pi units');ylabel('|X|'); title('Magnitude Part')subplot(2,1,2);plot(w/pi,angX/pi);grid axis([-2,2,-1,1])xlabel('frequency in pi units');ylabel('Radians/pi'); title('Angle part')程序运行结果如图2所示。

6. 离散时间、离散频率----离散傅里叶级数设()x n 是周期为N 的周期序列,则()x n 的离散傅里叶级数只有N 个独立的谐波成分,数字基数为02/N ωπ=谐波成分为2/,1,2,,1k N k N π=-。

k 次谐波的系数大小为()X k 。

()x n 与()X k 的变换对数为:图 2副频和相频特性曲线正变换: 1()[()]()N nkN n X K DFS X n x n W -===∑ 0,1,2,,1k N =- (9)逆变换: 11()[()]()N nk Nk X n IDFS X k x k WN--===∑ 0,1,2,,1n N =- (10)式中,2jnk NNW π-。

可以看出谐波系数()X k 也是一个以N 为周期的周期序列。

7. 离散时间、离散频率----离散傅里叶变换如果时域序列()x n 是有限长的,长度为N ,它的频谱可以通过离散傅里叶变换(DFT )来获得,其变换对为:正变换: 10()[()]()N nk N n X k DFT x n x n W -===∑ 0,1,2,,1k N =- (11)逆变换:11()[()]()N nk Nk x n IDFS X k K k WN--===∑ 0,1,2,,1n N =- (12)由DFT 变换对可以看出,DFT 是对有限长序列频谱的离散化,通过DFT 是对域有限长度系列与频域有限长度相对应,从而可再频域用计算机进行信号处理。

更重要的是DFT 有多个快速算法(FFT ),可使信号处理速度提高好几倍,是数字信号的实时处理得以实现。

例3用FFT 计算先练两个序列的卷积。

()sin(0.4)()N x n n R n =,()0.9()n M h n R M =并测试直接卷积和快速卷积的时间。

用圆周卷积(FFT )替代线性卷积的计算方框图如图3所示。

图 3快速卷积方框图按照该方框图很容易编写出如下MATLAB 程序: xn=sin(0.4*[1:15]); hn=0.9.^(1:20); tic,yn=conv(xn,hn); toc,M=length(xn); N=length(hn); nx=1:M;nh=1:N;L=pow2(nextpow2(M+N-1)); tic,Xk=fft(xn,L); Hk=fft(hn,L); Yk=Xk.*Hk; yn=ifft(Yk,L) toc,subplot(2,2,1),stem(nx,xn,'.'),ylabel('x(n)'); subplot(2,2,2),stem(nh,hn,'.');subplot(2,1,2),ny=1:L;stem(ny,real(yn),'.'),ylabel('y(n)'图 4 ()x n ,()h n 及其线性卷积波形8.结语通过本次设计,学习和掌握了MATLAB软件在傅里叶变换中的应用,分析了连续时间、连续频率傅里叶变换,连续时间、离散频率序列傅里叶变换,离散时间、离散频率离散傅里叶级数。

从中学到了MATLAB软件对傅里叶变换的可视化编写程序,及其各种MATLAB表达式的表示,及相关函数的了解。

参考文献:[1] 刘勍,温志贤.MATLAB基础及应用[M].南京:东南大学出版社:江建中,2011.[2] 唐向红,岳恒立,郑雪峰.MATLAB及在电子信息类课程中的应用(第2版)[M].北京:电子工业出版社:韩同平,2010.。

相关主题