您好,欢迎访问三七文档
1基于MATLAB在傅里叶变换中的应用樊(学号:)(学院专业班)摘要:MATLAB自推出以来就受到广泛的关注,其强大的扩转功能为各个领域的应用提供了有力的工具。信号处理箱就是其中之一。在信号处理工具箱中,MATLAB提供了滤波器分析、滤波器实现、模拟滤波器设计、模拟滤波器变换、滤波器离散化、线性系统变换等方面的函数命令。应用MATLAB作数值计算,针对当自变量的信号“时间”或“频率”取连续值或离散值时形成的五种情况作出相应的计算及频谱曲线。关键词:傅里叶变换;周期;频率;MATLAB。1.引言MATLAB是国际上公认的优秀、可靠的科学计算和仿真的标准软件。它在许多科学领域中成为计算机辅助设计和分析、算法研究的基本工具。在傅里叶变换中,应用MATLAB作数值计算,可以很容易的作出相对应的计算及频谱曲线,大大提高了计算效率。2.傅里叶变换傅里叶变换就是建立以时间为自变量的“信号”与以频率为自变量之间的某种变化关系。所以,当自变量“时间”或“频率”取连续值或离散值时,就形成了几种不同形式的傅里叶变换,如表1傅里叶变换形式所示。表1傅里叶变换形式时域信号特性频率特性变换名称非周期连续信号连续频谱傅里叶变换周期性连续信号离散频谱傅里叶级数非周期连续信号连续频谱序列傅里叶变换周期性离散信号周期性离散频谱离散傅里叶级数离散信号(有限样本点)周期性离散频谱离散傅里叶变换3.连续时间、连续频率------福利叶变换这就是连续时间非周期信号x(t)福利叶变换关系,所得到的是连续的非周期的频率密集度函数()Xj.其变换对为:正变换:()()jtXjxtedt(1)2逆变换:1()()2jtXtxjed(2)例1分析如图1时域信号及其频谱图所示的矩形脉冲信号()ft(非周期信号)在=-40~40rad/s区间的频谱。(a)采样密(b)采样稀,有频率泄漏图1时域信号及其频谱图根据离散时间信号[]xn的Z变换定义:()[]nxzxnz,矩形脉冲信号的频谱为:F(j)=()jtftedt按MATLAB作数值计算的要求,它不能计算无限区间,根据信号波形的情况,将积分上下限定为0~10s,并将t分成N等份,用求和代替积分。这样,10111()()()1MMNNbbznbzYzHzXzaznaz(3)可写为12121F(j)=()[(),(),,()][,,,]nNjtjtjtjtiniftetftftfteeet(4)这说明求和的问题可以用()ft行向量乘以njte列向量来实现,式中t是t的增量,在程序中用dt表示。由于求一系列不同(程序中用用W表示)处的F值,都用同一公式,这就可以利用matlab中的元素群运算能力。类似地也3可以得到傅里叶逆变换的数值计算式。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),gridonset(gcf,'color','w')axis([0,10,0,1.1])subplot(1,2,2),plot(w,abs(F),'linewidth',1.5)gridon程序运行结果:若时间分隔的点数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.连续时间、离散频率----傅里叶级数设()xt代表一个周期为0T的周期性连续时间函数,()xt课展开成傅里叶级数,其傅里叶级数的系数为0()Xjk,0()Xjk是离散频率的非周期函数,()xt4和0()Xjk组成的变换对为:正变换:000/20/201()()TjktTXjkxtedtT(5)逆变换:00()()jktXtxjke(6)式中,002/T为离散频率相邻两谱线之间的频率间隔,k为谐波序号。5.离散时间、连续频率----序列傅里叶变换如果信号()xn是非周期且绝对可和,则它的离散时间傅里叶变换对数为:正变换:()()jjnXexne(7)逆变换:1()()2jjnxnXeed(8)在时域上市离散序列,而在频域上是连续函数,即具有连续的频谱。这里的为数字频域,它与模拟角频率的关系为:T,其中T为模拟信号()()xnxnT的抽样时间间隔。值得注意的是,对于序列傅里叶变换,如果()xn为无限长,那么就不能用MATLAB直接利用式1211112()111NNrrrHzpzpzpz来计算()jXe,只可以用它对表达式()jXe在[0,]频率点上求值,在画出它的幅度和相位(或者实部和虚部)。如果()xn为有限长,那么就可直接用MATLAB,根据式1211112()111NNrrrHzpzpzpz,在任意频率对()jXe进行数值计算。例2求/3()(0.9)jnxne,010n的离散时间傅里叶变换。MATLAB源程序如下:n=0:10;x=(0.9*exp(j*pi/3)).^n;k=-200:200;w=(pi/100)*k;5X=x*(exp(-j*pi/100)).^(n'*k);magX=abs(X);angX=angle(X);subplot(2,1,1);plot(w/pi,magX);gridaxis([-2,2,0,8])xlabel('frequencyinpiunits');ylabel('|X|');title('MagnitudePart')subplot(2,1,2);plot(w/pi,angX/pi);gridaxis([-2,2,-1,1])xlabel('frequencyinpiunits');ylabel('Radians/pi');title('Anglepart')程序运行结果如图2所示。6.离散时间、离散频率----离散傅里叶级数设()xn是周期为N的周期序列,则()xn的离散傅里叶级数只有N个独立的谐波成分,数字基数为02/N谐波成分为2/,1,2,,1kNkN。k次谐波的系数大小为()Xk。()xn与()Xk的变换对数为:图2副频和相频特性曲线6正变换:10()[()]()NnkNnXKDFSXnxnW0,1,2,,1kN(9)逆变换:101()[()]()NnkNkXnIDFSXkxkWN0,1,2,,1nN(10)式中,2jnkNNW。可以看出谐波系数()Xk也是一个以N为周期的周期序列。7.离散时间、离散频率----离散傅里叶变换如果时域序列()xn是有限长的,长度为N,它的频谱可以通过离散傅里叶变换(DFT)来获得,其变换对为:正变换:10()[()]()NnkNnXkDFTxnxnW0,1,2,,1kN(11)逆变换:101()[()]()NnkNkxnIDFSXkKkWN0,1,2,,1nN(12)由DFT变换对可以看出,DFT是对有限长序列频谱的离散化,通过DFT是对域有限长度系列与频域有限长度相对应,从而可再频域用计算机进行信号处理。更重要的是DFT有多个快速算法(FFT),可使信号处理速度提高好几倍,是数字信号的实时处理得以实现。例3用FFT计算先练两个序列的卷积。()sin(0.4)()NxnnRn,()0.9()nMhnRM并测试直接卷积和快速卷积的时间。用圆周卷积(FFT)替代线性卷积的计算方框图如图3所示。L点FFTL点FFTL点FFT()xn()Xk()hn()()()YkXkHk()Hk()ynX图3快速卷积方框图7按照该方框图很容易编写出如下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()xn,()hn及其线性卷积波形88.结语通过本次设计,学习和掌握了MATLAB软件在傅里叶变换中的应用,分析了连续时间、连续频率傅里叶变换,连续时间、离散频率序列傅里叶变换,离散时间、离散频率离散傅里叶级数。从中学到了MATLAB软件对傅里叶变换的可视化编写程序,及其各种MATLAB表达式的表示,及相关函数的了解。参考文献:[1]刘勍,温志贤.MATLAB基础及应用[M].南京:东南大学出版社:江建中,2011.[2]唐向红,岳恒立,郑雪峰.MATLAB及在电子信息类课程中的应用(第2版)[M].北京:电子工业出版社:韩同平,2010.
本文标题:matlab小论文
链接地址:https://www.777doc.com/doc-7236214 .html