第4章MATLAB在信号处理中的应用

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第4章MATLAB在信号处理中的应用第4章MATLAB在信号处理中的应用4.1信号及其表示4.2信号的基本运算4.3信号的能量和功率4.4线性时不变系统4.5线性时不变系统的响应4.6线性时不变系统的频率响应4.7傅里叶(Fourier)变换4.8IIR数字滤波器的设计方法4.9FIR数字滤波器设计第4章MATLAB在信号处理中的应用4.1信号及其表示离散时间信号(序列):时间离散,如x(nT)=x(t)|t=nT.pipipxx4.1.1连续时间信号的表示连续时间信号:时间变化连续。如y=x(t)例4-1:用MATLAB命令绘出连续时间信号关于t的曲线,t的范围为0--30s,并以0.1s递增。tetxt32sin707.0第4章MATLAB在信号处理中的应用t=0:0.1:30;x=exp(-0.707*t).*sin(2/3.*t);plot(t,x);grid;ylabel('x(t)');xlabel('Time(sec)')运行结果如图4.1所示。第4章MATLAB在信号处理中的应用图4.1连续时间信号图形第4章MATLAB在信号处理中的应用4.1.2工具箱中的信号产生函数函数名功能函数名功能sawtooth产生锯齿波或三角波pulstran产生冲激串square产生方波信号rectpule产生非周期的方波信号sinc产生sinc函数波形tripuls产生非周期的三角波chirp产生调频余弦信号diric产生Dirichlet或周期sinc函数gauspuls产生高斯正弦脉冲gmonopuls产生高斯单脉冲信号vco电压控制振荡器第4章MATLAB在信号处理中的应用1、产生锯齿波或三角波信号函数sawtooth格式一:x=sawtooth(t)功能:产生周期为,幅值从-1~+1的锯齿波。2格式二:x=sawtooth(t,width)功能:产生三角波,width在0~1之间。例4-2产生周期为0.02的三角波。第4章MATLAB在信号处理中的应用Fs=10000;t=0:1/Fs:1;x1=sawtooth(2*pi*50*t,0);x2=sawtooth(2*pi*50*t,1)subplot(2,1,1),plot(t,x1),axis([0,0.2,-1,1]);subplot(2,1,2),plot(t,x2),axis([0,0.2,-1,1]);第4章MATLAB在信号处理中的应用图4.2三角波波形第4章MATLAB在信号处理中的应用2、产生方波信号函数square格式一:x=square(t)功能:产生周期为,幅值从-1~+1的方波。2格式二:x=square(t,duty)功能:产生指定周期的方波,duty为正半周期的比例。例4-3产生周期为0.02的方波。第4章MATLAB在信号处理中的应用Fs=10000;t=0:1/Fs:1;x1=square(2*pi*50*t,20);x2=square(2*pi*50*t,80)subplot(2,1,1),plot(t,x1),axis([0,0.2,-1.5,1.5]);subplot(2,1,2),plot(t,x2),axis([0,0.2,-1.5,1.5]);第4章MATLAB在信号处理中的应用图4.3方波波形第4章MATLAB在信号处理中的应用4.1.3离散时间信号的表示在MATLAB中,离散时间信号x(n)的表示:需用一个向量x表示序列幅值,用另一个等长的定位时间变量n,才能完整地表示一个序列。[例4-10]绘制离散时间信号的棒状图。其中x(-1)=-1,x(0)=1,x(1)=2,x(2)=1,x(3)=0,x(4)=-1。第4章MATLAB在信号处理中的应用n=-3:5;%定位时间变量x=[0,0,-1,1,2,1,0,-1,0];stem(n,x);grid;%绘制棒状图line([-3,5],[0,0]);%画x轴线xlabel('n');ylabel('x[n]')第4章MATLAB在信号处理中的应用图4.11离散时间信号图形第4章MATLAB在信号处理中的应用4.1.4几种常用离散时间信号的表示1.单位脉冲序列直接实现:x=zeros(1,n);x(1,n0)=1;或者:n=[ns:nf]x=[(n-n0)==0]00001)(nnnnnn序列x的起始点用ns表示,终止点用nf表示。因此,序列的长度length(x)可写为:n=[ns:nf]或者n=[ns:ns+length(x)-1]第4章MATLAB在信号处理中的应用00001)(nnnnnnu直接实现:n=[ns:nf];x=[(n-n0)=0];2.单位阶跃序列3.实指数序列nanx)(nRa直接实现:n=[ns:nf];x=a.^n;第4章MATLAB在信号处理中的应用4.复指数序列njenx)()(直接实现:n=[ns:nf];x=exp((sigema+jw)*n);5.正(余)弦序列)cos()(nnx直接实现:n=[ns:nf];x=cos(w*n+sita);第4章MATLAB在信号处理中的应用4.2信号的基本运算y(n)=x1(n)+x2(n)y(n)=x1(n)×x2(n)MATLAB实现:y=y1+y2;y=y1.*y24.2.1信号的相加与相乘例4-11信号相加与相乘。n1=[-5:4];n1s=-5;n1f=4;x1=[2,3,1,-1,3,4,2,1,-5,-3];第4章MATLAB在信号处理中的应用n2=[0:9];n2s=0;n2f=9;x2=ones(1,10);ns=min(n1s,n2s);nf=max(n1f,n2f);n=ns:nf;y1=zeros(1,length(n));y2=zeros(1,length(n));y1(find((n=n1s)&(n=n1f)==1))=x1;y2(find((n=n2s)&(n=n2f)==1))=x2;第4章MATLAB在信号处理中的应用ya=y1+y2;yp=y1.*y2;subplot(4,1,1),stem(n,y1,'.');line([n(1),n(end)],[0,0]);ylabel('x1(n)');subplot(4,1,2),stem(n,y2,'.');line([n(1),n(end)],[0,0]);ylabel('x2(n)');第4章MATLAB在信号处理中的应用subplot(4,1,3),stem(n,ya,'.');line([n(1),n(end)],[0,0]);ylabel('x1(n)+x2(n)');subplot(4,1,4),stem(n,yp,'.');line([n(1),n(end)],[0,0]);ylabel('x1(n).x2(n)');第4章MATLAB在信号处理中的应用图4.12信号的相加与相乘第4章MATLAB在信号处理中的应用4.2.4两序列的卷积运算两序列卷积运算:mmnxmxnxnxny)()()()()(2121MATLAB实现:y=conv(x1,x2)。序列x1(n)和x2(n)必须长度有限。第4章MATLAB在信号处理中的应用4.4.3系统互联与系统结构1.系统的级联112212121121212121'2'10uDDxxCCDyuDBBxxACBAxx第4章MATLAB在信号处理中的应用格式:[num,den]=series(num1,den1,num2,den2)将系统1、系统2级联,可得到级联连接的传递函数形式为:)(2)(1)(2)(1)()()()()(21sdensdensnumsnumsHsHsdensnumsH格式:[A,B,C,D]=series(A1,B1,C1,D1,A2,B2,C2,D2)第4章MATLAB在信号处理中的应用MATLAB实现函数parallel()格式:[A,B,C,D]=parallel(A1,B1,C1,D1,A2,B2,C2,D2)[num,den]=parallel(num1,den1,num2,den2)2.系统的并联将系统1、系统2并联,可得到并联连接的传递函数形式为:第4章MATLAB在信号处理中的应用函数feedback格式:[A,B,C,D]=feedback(A1,B1,C1,D1,A2,B2,C2,D2,sign)[num,den]=feedback(num1,den1,num2,den2,sign)3.两个系统的反馈连接将系统1和系统2进行反馈连接,sign表示反馈方式(默认值为-1);当sign=+1时表示正反馈;当sign=-1时表示负反馈。第4章MATLAB在信号处理中的应用num1=1;den1=[1,1];%系统1num2=2;den2=[1,2];%系统2[nums,dens]=series(num1,den1,num2,den2)%实现两个系统级联[nump,denp]=parallel(num1,den1,num2,den2)%实现两个系统并联[numf,denf]=feedback(num1,den1,num2,den2)%实现两个系统反馈[例4-19]求两个单输入单输出子系统11)(1ssH22)(2ssH的级联、并联和反馈后系统的传递函数。第4章MATLAB在信号处理中的应用程序运行结果为:nums=002;dens=132nump=034;denp=132numf=012;denf=134因此,各系统的传递函数分别为:2322ss23432sss2322sss第4章MATLAB在信号处理中的应用4.5线性时不变系统的响应4.5.2LTI系统的单位冲激响应1.求连续LTI系统的单位冲激响应函数impulse()格式:[Y,T]=impulse(sys)或impulse(sys)功能:返回系统的响应Y和时间向量T,自动选择仿真的时间范围。其中sys可为系统传递函数、零极增益模型或状态空间模型。第4章MATLAB在信号处理中的应用功能:返回多项式传递函数的单位冲激响应y向量和时间状态历史记录x向量。()()/()gznumzdenz2.求离散系统的单位冲激响应函数dimpulse()格式:[y,x]=dimpulse(num,den)4.5.3时域响应的其它函数1.求连续LTI系统的零输入响应函数initial()格式:[y,t,x]=initial(a,b,c,d,x0)第4章MATLAB在信号处理中的应用功能:计算出连续时间LTI系统由于初始状态x0所引起的零输入响应y。其中x为状态记录,t为仿真所用的采样时间向量。功能:计算离散时间LTI系统由初始状态x0所引起的零输入响应y和状态响应响应x,取样点数由函数自动选取。n为仿真所用的点数。2.求离散系统的零输入响应函数dinitial()格式:[y,x,n]=dinitial(a,b,c,d,x0)第4章MATLAB在信号处理中的应用功能:返回多项式传递函数G(z)=num(z)/den(z)表示的系统单位阶跃响应。3.求连续系统的单位阶跃响应函数step()格式:[Y,T]=step(sys)功能:返回系统的单位阶跃响应Y和仿真所用的时间向量T,自动选择仿真的时间范围。其中sys可为系统传递函数(TF)、零极增益模型(ZPK)或状态空间模型(SS)。4.求离散系统的单位阶跃响应函数dstep()格式:[y,x]=dstep(num,den)第4章MATLAB在信号处理中的应用4.7傅里叶(Fourier)变换功能:采用FFT算法计算序列向量x的N点DFT变换,当N缺省时,fft函数自动按x的长度计算DFT。1.一维快速正傅里叶变换函数fft格式:X=fft(x,N)2.一维快速逆傅里叶变换函数ifft格式:x=ifft(X,N)功能:采用FFT算

1 / 36
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功