已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,1,Matlab语言及其在 电子信息工程中的应用,主讲:朱世东 (V1.1),朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,2,第七讲 MATLAB在信号与系统中的应用,一、信号及其表示 二、信号处理工具箱中的常用信号产生函数 三、线性时不变系统的常用表示方法 四、线性时不变系统的时域响应 五、滤波器设计,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,3,第七讲 MATLAB在信号与系统中的应用,一、信号及其表示,1、单位脉冲信号 x=zeros(1,N); x(1)=1; %注:Matlab下标从1开始。,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,4,第七讲 MATLAB在信号与系统中的应用,一、信号及其表示,2、单位阶跃信号 x=ones(1,N); %注:Matlab下标从1开始。,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,5,第七讲 MATLAB在信号与系统中的应用,一、信号及其表示,3、均匀分布的随机信号 x=rand(1,N); %产生0,1上均匀分布的随机信号。,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,6,第七讲 MATLAB在信号与系统中的应用,一、信号及其表示,4、高斯分布的随机信号 x=randn(1,N); %产生均值为0,方差为1的高斯分布随机信号(即白噪声信号)。,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,7,第七讲 MATLAB在信号与系统中的应用,二、信号处理工具箱中的常用信号产生函数,1、sawtooth函数 产生锯齿波或三角波 例: 产生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); subplot(311); plot(t,x1); subplot(312); plot(t,x2); subplot(313); plot(t,x3);,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,8,第七讲 MATLAB在信号与系统中的应用,二、信号处理工具箱中的常用信号产生函数,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);,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,9,第七讲 MATLAB在信号与系统中的应用,二、信号处理工具箱中的常用信号产生函数,3、sinc函数 产生sinc波形或sin(t)/(t)波形 例: t=linspace(-10,+10,200); x=sinc(t); plot(t,x);,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,10,第七讲 MATLAB在信号与系统中的应用,二、信号处理工具箱中的常用信号产生函数,(其它信号产生函数自行上机验证!),朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,11,第七讲 MATLAB在信号与系统中的应用,二、信号处理工具箱中的常用信号产生函数,4、数字信号的基本运算 在Matlab中,向量的下标从1开始,不能取0或负值。因此,在Matlab中对数字信号进行基本运算时,应适当对信号补0。 例1:信号的相加、相乘 oldN1s=-5; oldN1e=4; oldX1=ones(1,(oldN1e-oldN1s+1); oldN2s=0; oldN2e=9; oldX2=ones(1,(oldN2e-oldN2s+1); newNs=min(oldN1s,oldN2s) newNe=max(oldN1e,oldN2e) newX1=zeros(1,(oldN1s-newNs), oldX1, zeros(1,(newNe-oldN1e) newX2=zeros(1,(oldN2s-newNs), oldX2, zeros(1,(newNe-oldN2e) Y1=newX1+newX2 Y2=newX1.*newX2,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,12,第七讲 MATLAB在信号与系统中的应用,二、信号处理工具箱中的常用信号产生函数,4、数字信号的基本运算 在Matlab中,向量的下标从1开始,不能去0或负值。因此,在Matlab中对数字信号进行基本运算时,应适当对信号补0。 例1:信号的相加、相乘 k=newNs:newNe; subplot(411); stem(k,newX1,.); subplot(412); stem(k,newX2,.); subplot(413); stem(k,Y1,.); subplot(414); stem(k,Y2,.);,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,13,第七讲 MATLAB在信号与系统中的应用,二、信号处理工具箱中的常用信号产生函数,4、数字信号的基本运算 在Matlab中,向量的下标从1开始,不能去0或负值。因此,在Matlab中对数字信号进行基本运算时,应适当对信号补0。 例2:信号的时移 oldN1s=-5; oldN1e=4; oldX1=ones(1,(oldN1e-oldN1s+1); oldX2=(1/2).oldN1s:oldN1e %指数序列 k=3; %k0:右移;k0:左移 newNs=oldN1s+k; newNe=oldN1e+k; newX2=oldX2;,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,14,第七讲 MATLAB在信号与系统中的应用,二、信号处理工具箱中的常用信号产生函数,4、数字信号的基本运算 在Matlab中,向量的下标从1开始,不能去0或负值。因此,在Matlab中对数字信号进行基本运算时,应适当对信号补0。 例2:信号的时移 old_k=oldN1s:oldN1e; new_k=newNs:newNe; subplot(211); stem(old_k,oldX2,.); subplot(212); stem(new_k,newX2,.);,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,15,第七讲 MATLAB在信号与系统中的应用,二、信号处理工具箱中的常用信号产生函数,4、数字信号的基本运算 例3:信号的折叠 oldN1s=-5; oldN1e=4; oldX1=ones(1,(oldN1e-oldN1s+1); oldX2=(1/2).oldN1s:oldN1e %指数序列 newNs=-oldN1e; newNe=-oldN1s; newX2=fliplr(oldX2); old_k=oldN1s:oldN1e; new_k=newNs:newNe; subplot(211); stem(old_k,oldX2,.); subplot(212); stem(new_k,newX2,.);,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,16,第七讲 MATLAB在信号与系统中的应用,二、信号处理工具箱中的常用信号产生函数,(信号的功率和能量自学!),朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,17,第七讲 MATLAB在信号与系统中的应用,三、线性时不变(LTI)系统的常用表示方法,1、传递函数表示法 在Matlab中,传递函数用分子、分母两个多项式的系数表示,系数为降幂排列。,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,18,第七讲 MATLAB在信号与系统中的应用,三、线性时不变(LTI)系统的常用表示方法,1、传递函数表示法 在Matlab中,传递函数用分子、分母两个多项式的系数表示,系数为降幂排列。 分子(Numerator) :B=b(1) b(2) b(m+1) 分母(Denominator):A=a(1) a(2) a(n+1) 例: num=1 0.2 1; den=1 0.5 1;,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,19,第七讲 MATLAB在信号与系统中的应用,三、线性时不变(LTI)系统的常用表示方法,2、零极点模型表示法 在Matlab中,增益系数、零点向量、极点向量用三个列向量表示。,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,20,第七讲 MATLAB在信号与系统中的应用,三、线性时不变(LTI)系统的常用表示方法,2、零极点模型表示法 在Matlab中,增益系数、零点向量、极点向量用三个列向量表示。 增益系数(Gain) :k 零点向量(Zero):z=z1 z2 zn 极点向量(Pole):p=p1 p2 pn sys=zpk(z,p,k) %获得零-极点模型表达式,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,21,第七讲 MATLAB在信号与系统中的应用,三、线性时不变(LTI)系统的常用表示方法,3、状态空间模型表示法 连续系统状态空间方程: 离散系统状态空间方程: 状态向量:x 输出向量:y 激励向量(输入向量):u 在Matlab中,用矩阵A、B、C、D表示系统的状态空间模型。,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,22,第七讲 MATLAB在信号与系统中的应用,三、线性时不变(LTI)系统的常用表示方法,4、线型系统模型的变换函数 例1:将以下系统转换为状态空间模型 b = 0 2 3; 1 2 1; a = 1 0.4 1; A,B,C,D = tf2ss(b,a),朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,23,第七讲 MATLAB在信号与系统中的应用,三、线性时不变(LTI)系统的常用表示方法,4、线型系统模型的变换函数 例2:将以下系统转换成零-极点模型 b = 2 3 0; a = 1 0.4 1; z,p,k = tf2zp(b,a) (自学其它变换函数),朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,24,第七讲 MATLAB在信号与系统中的应用,四、线性时不变系统的时域响应,1、impulse函数 求连续系统的单位冲击响应。,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,25,第七讲 MATLAB在信号与系统中的应用,四、线性时不变系统的时域响应,*2、impz函数 求离散系统(数字滤波器)的单位冲击响应。 (注:Matlab 7.0不再支持dimpulse函数),也可以用以下方法实现: n=50; imp=1 zeros(1,n-1); y=filter(b,a,imp); stem(y);,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,26,第七讲 MATLAB在信号与系统中的应用,五、滤波器设计,1、IIR滤波器设计 butter函数:Butterworth滤波器设计 (通带具有最大平坦幅度) 语法格式: b,a = butter(n,Wn) b,a = butter(n,Wn,ftype) b,a = butter(n,Wn,s) b,a = butter(n,Wn,ftype,s) z,p,k = butter(.) A,B,C,D = butter(.) n 滤波器阶数; Wn 归一化截至频率(0Wn1,Wn=1对应Nyquist频率) ftype 滤波器类型(缺省:低通 / high:高通 / bandpass:带通(2n) / stop:带阻(2n)) s 设计模拟滤波器(缺省为设计数字滤波器),朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,27,第七讲 MATLAB在信号与系统中的应用,五、滤波器设计,1、IIR滤波器设计(有反馈) butter函数:Butterworth滤波器设计 例1:设计一个6阶的Butterworth滤波器,从一段含噪声语音信号(04kHz,Fs=8kHz)中提取出60500Hz的子带信号。 x,Fs,Bit=wavread(test1.wav); %读取语音信号 W1=60/(Fs/2); W2=500/(Fs/2); %频率归一化 Wn=W1, W2; n=6; b,a=butter(n/2,Wn,bandpass); %获取滤波器参数 y=x+0.1*randn(size(x); %加入随机噪声 z=filter(b,a,y); %滤波。(60Hz4000Hz) subplot(311); plot(x); subplot(312); plot(y); subplot(313); plot(z);,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,28,第七讲 MATLAB在信号与系统中的应用,五、滤波器设计,1、IIR滤波器设计 butter函数:Butterworth滤波器设计 例2:从多种频率成分叠加的信号中,提取出某一频带的信号。例如:从500Hz、1kHz、2kHz三种频率成分叠加的信号中,提取出频带为800Hz1.5kHz的信号。要求:阻带衰减不低于10dB,通带衰减不高于3dB。 t=0:1/(40000):1/200; x1=1.8*sin(2*pi*500*t+pi/6); x2=2.0*sin(2*pi*1000*t-pi/10); x3=2.2*sin(2*pi*2000*t+pi/12); y=x1+x2+x3; %先选择滤波器阶数,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,29,第七讲 MATLAB在信号与系统中的应用,五、滤波器设计,1、IIR滤波器设计 butter函数:Butterworth滤波器设计 例2:从多种频率成分叠加的信号中,提取出某一频带的信号。例如:从500Hz、1kHz、2kHz三种频率成分叠加的信号中,提取出频带为800Hz1.5kHz的信号。要求:阻带衰减不低于10dB,通带衰减不高于3dB。 %先选择滤波器阶数 Fs=5000; %Fs2*2kHz Wp=800 1500/(Fs/2); Ws=600 1700/(Fs/2); Rp=3; Rs=10; n,Wn = buttord(Wp,Ws,Rp,Rs); %再进行滤波器设计 b,a=butter(n,Wn,bandpass); z=filter(b,a,y);,subplot(511);plot(x1); subplot(512);plot(x2); subplot(513);plot(x3); subplot(514);plot(y); subplot(515);plot(z);,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,30,第七讲 MATLAB在信号与系统中的应用,五、滤波器设计,1、IIR滤波器设计 cheby1函数:Chebyshev 型滤波器设计 (通带等纹波) cheby2函数:Chebyshev 型滤波器设计 (阻带等纹波) (用法类似butter函数,自行看Help文件!),朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,31,第七讲 MATLAB在信号与系统中的应用,五、滤波器设计,1、IIR滤波器设计 滤波器的频率响应。 freqs函数:求模拟滤波器的频率响应 freqz函数:求数字滤波器的频率响应 例1:绘出模拟低通滤波器的频率响应曲线。 Fs=8000; n=6; Wn=1000/(Fs/2); b,a=butter(n,Wn,s); freqs(b,a);,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,32,第七讲 MATLAB在信号与系统中的应用,五、滤波器设计,1、IIR滤波器设计 滤波器的频率响应。 freqs函数:求模拟滤波器的频率响应 freqz函数:求数字滤波器的频率响应 例2:绘出数字低通滤波器的频率响应曲线。 Fs=8000; 采样频率 n=6; Wn=1000/(Fs/2); b,a=butter(n,Wn); l=128; %绘图点数 freqz(b,a,l,Fs);,朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,33,第七讲 MATLAB在信号与系统中的应用,五、滤波器设计,2、FIR数字滤波器设计(无反馈) fir1函数:基于窗函数的FIR滤波器设计 标准频率响应 语法格式: b = fir1(n,Wn) b = fir1(n,Wn,ftype) b = fir1(n,Wn,window) b = fir1(n,Wn,ftype,window) high for a highpass filter with cutoff frequency Wn. low stop for a bandstop filter, if Wn = w1 w2. The stopband frequency range is specified by this interval. bandpass Wn = w1 w2 w3 w4 w5 . wn DC-1 to make the first band(0 w1) of a multiband filter a passband. DC-0 to make the first band of a multiband filter a stopband.(缺省),朱世东 2019/7/6,Matlab语言及其在电子信息工程中的应用,34,第七讲 MATLAB在信号与系统中的应用,五、滤波器设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论