matlab在信号处理中的应用中

上传人:j7****6 文档编号:61622530 上传时间:2018-12-07 格式:PPT 页数:51 大小:285.50KB
返回 下载 相关 举报
matlab在信号处理中的应用中_第1页
第1页 / 共51页
matlab在信号处理中的应用中_第2页
第2页 / 共51页
matlab在信号处理中的应用中_第3页
第3页 / 共51页
matlab在信号处理中的应用中_第4页
第4页 / 共51页
matlab在信号处理中的应用中_第5页
第5页 / 共51页
点击查看更多>>
资源描述

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

1、1,第一讲 信号及其运算的MATLAB表示,1.1连续信号,1、指数信号 形式:y=A*exp(a*t),2、正弦信号 形式:y=A*cos(w0*t+f) 或:y=A*sin(w0*t+f),2,3、抽样函数 用sinc函数表示,其定义为:sinc(t)=sin(t)/( t) MATLAB语言调用形式: y=sinc(t) t=-3*pi:pi/100:3*pi; y=sinc(t/pi); plot(t,y), grid on,3,4、矩形脉冲信号 MATLAB语言调用形式: y=rectpuls(t,width) 产生一个幅值为1,宽度为width、相对于t=0点左右对称的矩形波信号

2、t=0:0.001:4;T=1; y=rectpuls(t-2*T,2*T); plot(t,y), grid on axis(0,4,-0.5,1.5) 以t-2*T=0,即t=2*T为 对称中心,4,周期性矩形脉冲信号 MATLAB语言调用形式: y=square(t,duty) 产生一个周期为2 ,幅值为1的周期性方波, duty表示占空比(duty cycle) t=-0.0625:0.0001:0.0625; y=square(2*pi*30*t,75); plot(t,y),grid on axis(-0.1,0.1,-1.5,1.5) 占空比75%,5,5、三角脉冲信号 MATL

3、AB语言调用形式: y=tripuls(t,width,skew) 产生一个最大幅值为1,宽度为width、斜度为skew的三角波信号. t=-3:0.0001:3; y=tripuls(t,4,0.5); plot(t,y),grid on axis(-3,3,-1.5,1.5),6,周期性三角脉冲信号 MATLAB语言调用形式: y=sawtooth(t,width) 产生一个周期为2 , 最大幅值为1,最小幅值为-1周期性三角波信号. t=-5*pi:0.0001:5*pi; y=sawtooth(t,0.5); plot(t,y),grid on axis(-16,16,-1.5,1.

4、5),7,6、一般周期性脉冲信号 MATLAB语言调用形式: y=pulstran(t,d,func) 依据名为func的连续函数并以之为一个周期,从而产生一串周期性的连续函数。用于指定周期性的 偏移量,这个func函数会被计算length(d)次,最后值相当于:y=func(t-d(1)+ func(t-d(2)+.,更一般的调用形式为:y=pulstran(t,d,func,p1,p2) 。其中p1,p2为需要传送给func函数的额外输入参数值,最后值相当于: y=func(t-d(1),p1,p2,.)+ func(t-d(2),p1,p2,.)+.,8,t=0:0.0001:1;d=0

5、:1/3:1; y=pulstran(t,d,rectpuls,0.1); figure(1),plot(t,y),grid on axis(0,1,-0.1,1.5) yy=pulstran(t,d,tripuls,0.1,-1);figure(2),plot(t,yy),grid on axis(0,1,-0.1,1.5),9,1.2 离散信号,1、指数序列 a.k,2、正弦序列,离散的指数序列与正弦序列用MATLAB的表示与连续信号类似,只不过用stem函数而不是用plot函数来画出序列的波形.,10,3、单位冲激序列,单位冲激序列,k=-50:50; y=zeros(1,50),1,z

6、eros(1,50); stem(k,y),function y,k=impseq(k0,k1,k2); k=k1:k2; y=k-k0=0,写成MATLAB函数文件形式若 k-k0在k1k k2范围内,11,4、单位阶跃序列,单位阶跃序列,k=-50:50; y=zeros(1,50), ones(1,51); stem(k,y), axis(-60,60,-0.5,1.5),写成函数文件形式若 uk-k0 在k1k k2,function y,k=stepseq(k0,k1,k2); k=k1:k2; y=k-k0=0,12,1.3 信号运算的MATLAB实现,2、离散序列的差分与求和,1

7、、信号的尺度变换、反转和平移,差分f(k)=f(k)-f(k-1)用diff函数 求和用sum函数,13,3、连续信号的微分与积分,微分可用diff函数 积分用quad函数, 调用形式: quad(function_name,a,b),例:对于三角波,画出df(t)/dt和t- f(t)dt的波形,function y=funtrip(t) y=tripuls(t,4,0.5);,14,h=0.001,t=-3:h:3; y1=diff(funtrip(t)*1/h; figure(1),plot(t(1:length(t)-1),y1); title(df/dt);grid on,xlabe

8、l(t),15,for x=1:length(t) y2(x)=quad(funtrip,-3,t(x); end figure(2),plot(t,y2); title(Intergral of df);grid on,xlabel(t),16,第二讲 时域分析的MATLAB表示,2.1连续时间系统的零状态响应,LTI连续时间系统以常系数微分方程描述,系统的零状态响应可通过求解初始状态为零的微分方程得到。 形式:y=lsim(sys,f,t) sys是LTI系统模型,f是系统输入信号向量,是计算系统响应的抽样点向量。 LTI系统模型sys要通过MATLAB中的tf函数来获得: sys=tf(

9、b,a), 其中b、a分别为微分方程右端和左端各项的系数向量 。,17,若系统的微分方程为:,系统的输入信号为f(t)=10sin(t),计算物体的位移y(t)。,ts=0;te=5;dt=0.01; sys=tf(1,1, 2, 100); t=ts:dt:te; f=10*sin(2*pi*t); y=lsim(sys,f,t); plot(t,y); xlabel(t(sec); ylabel(y(t);grid on,18,2.2连续时间系统的冲击响应和阶跃响应,1、冲击响应 形式:y=impulse(sys,t) sys是LTI系统模型, sys=tf(b,a), 其中b、a分别为微

10、分方程右端和左端各项的系数向量 。,2、阶跃响应 形式:y=step(sys,t) sys是LTI系统模型, sys=tf(b,a), 其中b、a分别为微分方程右端和左端各项的系数向量 。,19,例:在一水平面上物体与弹簧组成的力学系统中,弹簧一端固定,物体的质量m=1kg,弹簧的弹性系数ks=100N/m,物体与地面的摩擦系数fd=2Ns/m,在物体的水平方向施加一外力f(t),外力是强度为10的冲击信号,若系统的微分方程为:,求物体的位移y(t)。,20,ts=0;te=5;dt=0.01; sys=tf(10,1 2 100); t=ts:dt:te; y=impulse(sys,t);

11、 plot(t,y); xlabel(t(sec); ylabel(y(t); grid on,21,2.3 离散时间系统的零状态响应,LTI离散时间系统常用线性常系数差分方程描述:,已知差分方程的n个初始状态及输入fk,可由下式迭代算出系统的输出:,fk和yk 分别表示系统的输入和输出, n是差分方程的阶数。,22,在零初始状态下, MATLAB调用的形式为: y=filter(b,a,f),23,R=51;d=rand(1,51)-0.5; k=0:R-1; s=2*k.*(0.9.k); f=s+d; subplot(1,2,1) plot(k,d,r-.,k,s,b:,k,f,k-);

12、 xlabel(Time k);legend(dk,sk,fk); M=5;b=ones(M,1)/M;a=1; y=filter(b,a,f); subplot(1,2,2) plot(k,s,b:,k,y,r-); xlabel(Time k);legend(sk,yk);,24,25,2.4 离散时间系统的冲击响应和阶跃响应,1、单位冲击响应 形式:h=impz(b,a,k) 其中b、a分别为差分方程右端和左端的系数向量 ,k是输出序列的取值范围,h是系统的单位冲击响应,2、单位阶跃响应 形式:h=stepz(b,a,k),26,例:用impz函数求下列离散时间系统的单位冲击响应hk,并

13、与理论值hk=-(-1)k+2(-2)-k,k0进行比较: yk+3yk-1+2yk-2=fk,k=0:10; a=1 3 2;b=1; h=impz(b,a,k); subplot(2,1,1) stem(k,h);title(单位冲击相应的近似值);grid on; hk=-(-1).k+2*(-2).k; subplot(2,1,2) stem(k,hk);title(单位冲击相应的理论值);grid on;,27,28,2.5 卷积的计算,两个离散序列卷积和:c=conv(a,b),29,第三讲 频域分析的MATLAB表示,3.1周期信号的频域分析,1、周期性离散时间信号 离散傅里叶级

14、数(DFS)和逆离散傅里叶级数(IDFS)表示为:,其中 WN=e -j2/N,30,MATLAB表示为:F=fft(f) f=ifft(F),例:利用MATLAB计算一周期矩形波序列的DFS系数。,N=32;M=4;%定义周期矩形波序列的参数 %产生该周期矩形波序列 f=ones(1,M+1),zeros(1,N-2*M-1),ones(1,M); F=fft(f);%计算DFS系数 m=0:N-1; figure(1),stem(m,real(F);title(Fm的实部);xlabel(m); figure(2),stem(m,imag(F);title(Fm的虚部);xlabel(m)

15、; fr=ifft(F);%计算由DFS系数Fm重建的fk figure(3)stem(m,real(fr);title(重建的fk);xlabel(k);,31,32,其中func是被积函数的函数文件名,a、b分别为定积分的下上限,Tol表示指定允许的相对或绝对积分误差,非零的Trace表示以被积函数的点绘图形式来跟踪函数生成的返回值,若Tol和Trace均赋予“”,则两者均自动使用缺省值;”p1,p2,.”表示被积函数所需的多个额外输入参数,y=quad8(func,a,b) y=quad8(func,a,b,Tol,Trace,p1,p2,.),3.2 非周期信号的频域分析,1、非周期性连续时间信号的频谱 quad8和 quadl可以计算非周期性连续时间信号的频谱(高阶算法)。,33,例:利用MATLAB采用数值方法近似计算 三角波信号 的 频谱。,function y=sfl(t,w) %对于不同的,计算出傅里叶变换中被积函数的值 y=(abs(t)=1).*(1-abs(t).*exp(-j*w*t);,34,w=linspace(-6*pi,6*pi,512); N=length(w);F=zeros(1,N); for k=1:N F(k)=quad8(sfl,-1,1,w(k); end figure(1),plo

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

当前位置:首页 > 生活休闲 > 社会民生

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