MATLAB在信号处理中的应用课件

上传人:石磨 文档编号:183740599 上传时间:2021-06-12 格式:PPT 页数:42 大小:720.50KB
返回 下载 相关 举报
MATLAB在信号处理中的应用课件_第1页
第1页 / 共42页
MATLAB在信号处理中的应用课件_第2页
第2页 / 共42页
MATLAB在信号处理中的应用课件_第3页
第3页 / 共42页
MATLAB在信号处理中的应用课件_第4页
第4页 / 共42页
MATLAB在信号处理中的应用课件_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《MATLAB在信号处理中的应用课件》由会员分享,可在线阅读,更多相关《MATLAB在信号处理中的应用课件(42页珍藏版)》请在金锄头文库上搜索。

1、MATLAB在信号处理中的应用,1,MATLAB在信号处理中的应用,4.1 信号及其表示,4.1.1连续时间信号的表示 连续时间信号:时间变化连续。如y=x(t) 离散时间信号(序列):时间离散,如x(nT)=x(t)|t=nT.,4.1.2工具箱中的信号产生函数,2,MATLAB在信号处理中的应用,例: 产生f=50Hz的锯齿波、三角波 Fs=10000; %采样频率 t=0:1/Fs:0.1; %采样间隔1/Fs f=50; %50Hz x1=sawtooth(2*pi*50*t,0); x2=sawtooth(2*pi*50*t,1); x3=sawtooth(2*pi*50*t,0.5

2、); subplot(311); plot(t,x1); subplot(312); plot(t,x2); subplot(313); plot(t,x3),1、sawtooth函数 产生锯齿波或三角波,用法: x = sawtooth(t) 将产生周期为2的锯齿波。以02这个周期内为例,当t=0时,x=-1,当t=2时,x=1。 x = sawtooth(t,width) width是0到1之间的标量。在0到2width区间内,x的值从-1线性变化到1;在2width2区间内,x的值又从1线性变化到-1。sawtooth(t,1)和sawtooth(t)是等价的。,3,MATLAB在信号处

3、理中的应用,2、square函数 产生矩形波 例:产生50Hz占空比分别为20 和50的矩形波。 Fs=10000; %采样频率 t=0:1/Fs:0.1; %采样间隔1/Fs f=50; %50Hz x1=square(2*pi*50*t,20); x2=square(2*pi*50*t,50); subplot(211); plot(t,x1); subplot(212); plot(t,x2);,4,MATLAB在信号处理中的应用,3、sinc函数 产生sinc波形或sin(t)/(t)波形 例: t=linspace(-10,+10,200); x=sinc(t); plot(t,x)

4、;,5,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。MATLAB源程序为: n=-3:5; %定位时间变量 x=0,0,-1,1,2,1,-1,0,0; stem(n,x); grid; % 绘制棒状图 line(-3,5,0,0); %画x轴线 xlabel(n); ylabel(xn) 运行结果如图4.1

5、1所示。,图 4.11 离散时间信号图形,line(起点横坐标,终点横坐标,起点纵坐标,终点纵坐标),6,MATLAB在信号处理中的应用,4.1.4几种常用离散时间信号的表示,1单位脉冲序列,直接实现:x=zeros(1,N); x(1,n0)=1;,2单位阶跃序列,直接实现:n=ns:nf; x=(n-n0)=0;,x=zeros(1,5); x(1,3)=1; n=-2:2; stem(n,x),n=1:4; x=(n-2)=0; stem(n,x),7,MATLAB在信号处理中的应用,3实指数序列,直接实现:n=ns:nf; x=a.n;,4复指数序列,直接实现:n=ns:nf; x=e

6、xp(sigema+jw)*n);,5正(余)弦序列,直接实现:n=ns:nf; x=cos(w*n+sita);,8,MATLAB在信号处理中的应用,4.2 信号的基本运算,4.2.1信号的相加与相乘 y(n)=x1(n)+x2(n) y(n)=x1(n)x2(n) MATLAB实现:y=x1+x2; y=x1.*x2,4.2.2序列移位与周期延拓运算,序列移位:y(n)=x(n-m)。MATLAB实现:y=x; ny=nx-m 序列周期延拓:y(n)=x(n)M,MATLAB实现:ny=nxs:nxf;y=x(mod(ny,M)+1),4.2.3 序列翻褶与序列累加运算,序列翻褶:y(n)

7、=x(-n)。MATLAB可实现: y=fliplr(x),序列累加的数学描述为:,MATLAB实现:y=cumsum(x),9,MATLAB在信号处理中的应用,4.2.4 两序列的卷积运算,两序列卷积运算:,MATLAB实现:y=conv(x1,x2)。序列x1(n)和x2(n)必须长度有限。,4.2.5 两序列的相关运算,两序列相关运算:,。MATLAB实现:y=xcorr(x1,x2)。,10,MATLAB在信号处理中的应用,已知离散信号x(n)和h(n),求y(n)=x(n)*h(n),并用图形表示。,Nh=20;Nx=10;m=5;%设定Nx,Nh和位移值m n=0:Nh-1;h1=

8、(0.9).n;%产生h1(n) h2=h1; nx=0:Nx-1;x1=ones(1,Nx);%产生x1(n) x2=zeros(1,Nx+m); for k=m+1:m+Nx%产生x2(n)=x1(n-m) x2(k)=x1(k-m); end %产生x2(n),11,MATLAB在信号处理中的应用,y1=conv(x1,h1);%计算y1(n)=x1(n)*h1(n) y2=conv(x2,h2);%计算y2(n)=x2(n)*h2(n) subplot(3,2,1) stem(nx,x1,.) axis(0 30 0 1.2),title(x1(n) %绘图 (以下省略),12,MAT

9、LAB在信号处理中的应用,4.4 线性时不变系统,4.4.1 系统的描述,系统传递函数,在Matlab中,传递函数用分子、分母两个多项式的系数表示,系数为降幂排列。,13,MATLAB在信号处理中的应用,线性时不变(LTI)系统的常用表示方法,1、传递函数表示法 在Matlab中,传递函数用分子、分母两个多项式的系数表示,系数为降幂排列。 分子(Numerator) :B=b(1) b(2) b(m+1) 分母(Denominator):A=a(1) a(2) b(n+1) 例: num=1 0.2 1; den=1 0.5 1;,14,MATLAB在信号处理中的应用,2、零极点模型表示法 在

10、Matlab中,增益系数、零点向量、极点向量用三个列向量表示。 增益系数(Gain) :k 零点向量(Zero):z=z1 z2 zn 极点向量(Pole):p=p1 p2 pn sys=zpk(z,p,k) %获得零-极点模型表达式, k=3; z=2 3 4; p=5 6 7; sys=zpk(z,p,k,0.1) Zero/pole/gain: 3 (z-2) (z-3) (z-4) - (z-5) (z-6) (z-7) Sampling time: 0.1,15,MATLAB在信号处理中的应用,线性系统模型的变换函数,4.4.2 系统模型的转换函数,16,MATLAB在信号处理中的应

11、用,例4-18 求离散时间系统,的零、极点向量和增益系数。 在命令窗口输入: num=2,3; den=1,0.4,1; num,den=eqtflength(num,den);%使长度相等 z,p,k=tf2zp(num,den) 屏幕显示为 z = 0 -1.5000 p = -0.2000 + 0.9798i -0.2000 - 0.9798i k = 2,17,MATLAB在信号处理中的应用,4.5 线性时不变系统的响应,4.5.1线性时不变系统的时域响应,1连续LTI系统的响应,2离散LTI系统的响应,用MATLAB中的卷积函数conv( )来实现。,用MATLAB中的卷积函数con

12、v( )来实现。,18,MATLAB在信号处理中的应用,4.5.2 LTI系统的单位冲激响应,1. 求连续LTI系统的单位冲激响应函数impulse( ) 格式:Y,T = impulse(sys)或impulse(sys) 功能:返回系统的响应Y和时间向量T,自动选择仿真的时间范围。其中sys可为 系统传递函数、零极增益模型或状态空间模型。,2. 求离散系统的单位冲激响应函数dimpulse( ) 格式:y,x=dimpulse(num,den) 功能:返回项式传递函数,的单位冲激响应y向量和时间状态历史记录x向量。,19,MATLAB在信号处理中的应用,1、impulse函数 求连续系统的

13、单位冲击响应。,b=2 3; a=1 0.4 1; sys=tf(b,a) Transfer function: 2 s + 3 - s2 + 0.4 s + 1 y t=impulse(sys) ; plot(t,y) ,20,MATLAB在信号处理中的应用,*2、impz函数 求离散系统(数字滤波器)的单位冲击响应。 (注:Matlab 7.0不再支持dimpulse函数),21,MATLAB在信号处理中的应用,4.5.3 时域响应的其它函数 1. 求连续LTI系统的零输入响应函数initial( ) 格式:y,t,x=initial(a,b,c,d,x0) 功能:计算出连续时间LTI系统

14、由于初始状态x0所引起的零输入响应y。其中x为状态记录,t为仿真所用的采样时间向量。,2. 求离散系统的零输入响应函数dinitial( ) 格式:y,x,n=dinitial(a,b,c,d,x0) 功能:计算离散时间LTI系统由初始状态x0所引起的零输入响应y和状态响应响应x, 取样点数由函数自动选取。n为仿真所用的点数。,3. 求连续系统的单位阶跃响应函数step( ) 格式:Y,T = step(sys) 功能:返回系统的单位阶跃响应Y和仿真所用的时间向量T,自动选择仿真的时间范围。其中sys可为系统传递函数(TF)、零极增益模型(ZPK)或状态空间模型(SS)。 4. 求离散系统的单

15、位阶跃响应函数dstep( ) 格式:y,x= dstep (num,den) 功能:返回多项式传递函数G(z)=num(z)/den(z)表示的系统单位阶跃响应。,22,MATLAB在信号处理中的应用,4.6线性时不变系统的频率响应,1求模拟滤波器Ha(s)的频率响应函数freqs( ) 格式:Hfreqs(B,A,W) 功能:计算由向量W(rad/s)指定的频率点上模拟滤器系统函数Ha(s)的频率响 应Ha(j),结果存于H向量中。,例4-31 已知某模拟滤波器的系统函数,求该模拟滤波器的频率响应。MATLAB源程序如下。 B=1;A=1 2.6131 3.4142 2.6131 1; W

16、=0:0.1:2*pi*5; freqs(B,A,W),图4.30 模拟滤波器的频率响应,23,MATLAB在信号处理中的应用,例4-32 已知某滤波器的系统函数为,求该滤波器的频率响应。MATLAB源程序为: B=1 0 0 0 0 0 0 0 1; A=1; freqz(B,A),该程序运行所绘出的幅频与 相频性曲线如图4.31所示。,图4.31滤波器幅度和相位曲线,2求数字滤波器H(z)的频率响应函数freqz( ) 格式:H=freqz(B,A,W) 功能:计算由向量W(rad)指定的数字频率点上(通常指0,范围)在H(z)的频率响应H(ejw )。,24,MATLAB在信号处理中的应用,3滤波函数filter 格式:y=filter(B,A,x) 功能:对向量x中的数据进行滤波处理,即差分方程求解,产生输出序列向量y。B和A分别为数字滤波器系统函数H(z)的分子和分母多项式系数向量。,例4-33 设系统差分方程为,MATLAB源程序为: B=1; A=1,-0.8; N=0:31; x=0.8.n; y=filter(B,A,x); subplot(2,1,1);stem(x

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学研究

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号