MATLAB数字信号处理课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《MATLAB数字信号处理课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 数字信号 处理 课件
- 资源描述:
-
1、第5章 使用MATLAB实现数字信号处理 本章主要内容如下:51 数字信号处理基本内容及相应的MATLAB工具 52 信号通过系统的时域分析 53 信号通过系统的频域和Z域分析 54 滤波器设计 55 频谱分析 5.1 数字信号处理基本内容及相应的MATLAB工具数字信号处理的基本内容通常分为两部分:离散时间信号与系统分析 主要涉及离散时间信号与系统的时域、频域表示,以 及信号通过系统的时域、频域分析及其变换域分析。MATLAB函数库中提供了filter,conv,convmtx,fft,ifft,freqz,impz,zplane等等与之相应的函数。数字滤波器设计和谱分析 数字滤波器设计包括
2、了无限冲激响应(IIR)和有限冲激响应(FIR)滤波器设计,谱分析又可进一步分为线性谱分析和非线性谱分析。MATLAB为此提供了多种成熟算法的相应函数以及极为丰富的设计工具。5.2 时域分析卷积,滤波,单位冲激响应5.2.1 卷积 MATLAB提供 conv函数实现标准的一维信号卷积:例如,若系统h(n)为h=1 1 1输入序列x(n)为x=1 1 1则x(n)经过系统h(n)后的MATLAB实现为:conv(h,x)或 conv(1 1 1,1 1 1)执行后即得到y(n)为ans=1 2 3 2 1注意:使用conv 函数时,h(n)和x(n)都必须是有限长的,,否则不能使用conv 函数
3、。例5-1 时域离散序列的卷积计算与图形显示 例5-1(教材p63):已知离散信号x(n)和h(n),求y(n)=x(n)*h(n),并用图形表示。)()(nRnx101)()(5nRnx102)()(nRnx101)(.)(nR90nh20n1)(.)(nR90nh20n2)()()(nhnxny111)()()(nhnxny222例5-1的MATLAB程序Nh=20;Nx=10;m=5;%设定Nx,Nh和位移值mn=0:Nh-1;h1=(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
4、+1:m+Nx%产生x2(n)=x1(n-m)x2(k)=x1(k-m);end%产生x2(n)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)%绘图(以下省略)5.2.2 滤波 数字滤波器的系统函数H(z)用如下式表示:在MATLAB中,用向量b,a来表示滤波器的系数b(i)和 a(i)。m1n1z1maz2a1az1nbz2b1bzH)()()()()()()(滤波器分类 当n=0,m0时,
5、称为AR滤波器,即自回归(Auto Recurrence)滤波器,具无限冲激响应(IIR),也即其单位采样响应h(n)具无限长度;若m=0,a(1)0,称为MA滤波器,即滑动平均(Moving Average)滤波器,其单位采样响应h(n)是有限长度,故称有限冲激响应(FIR)滤波器;如果n、m都大于零,称为ARMA滤波器,而其冲激响应也为IIR。filter函数 MATLAB提供了 filter函数来对离散信号进行滤波,表达信号通过系统后的结果。与conv不同的是,filter函数可适用于无限冲激响应系统的情况,但信号仍须是有限长的。例如,一个单极点的低通滤波器系数如下:b=1;%分子系数向
6、量b(i)a=1-0.9;%分母系数向量a(i)如果用filter函数实现对信号x滤波,只要调用:y=filter(b,a,x);就可给出输入x经过滤波以后的输出y。5.2.3 单位冲激响应 数字滤波器的单位冲激响应定义为输入为单位样本序列时数字滤波器的响应,即:h(n)=T(n)其中:1n01n1)n(单位冲激响应的MATLAB实现 MATLAB近似实现单位采样信号的方法为:imp=1;zeros(p,1);%zeros(p,1)产生 p个零元素组成的列向量,p是正整数。使用imp后,滤波器的冲激响应可近似得到为:h=filter(b,a,imp);impz 函数可以直接求出数字滤波器的单位
7、冲激响应,即:impz(b,a)该命令将同时绘出滤波器的单位冲激响应,教材p66图5-2。53 频域和Z域分析 频率响应,零极点分析 5.3.1 频率响应 MATLAB数字信号处理工具箱有很多函数提供对模拟和数字滤波器的频率响应分析。其中,freqz 函数和freqs 函数分别返回数字和模拟滤波器的频率响应。工具箱中通常使用的单位频率是Nyquist频率,即采样频率的1/2。注意:就数字滤波器函数来说,其频域指标中的所有频率都以Nyquist频率进行归一化。因此Nyquist频率也称归一化频率。关于Nyquist频率的说明 例如例如:系统采样频率为1000Hz,则若数字滤波器的截止频率等于30
8、0Hz,经Nyquist频率归一化后,其归一化频率就是300/500=0.6。若将归一化频率转换成数字信号处理教科书中所使用的数字频率(rad),需乘以;反之,若乘以采样频率fs的一半,则将归一化频率转换回了模拟域频率(Hz)。归一化频率f 应满足0f1。对于频率响应而言,归一化频率和模拟频率都可使用。freqz命令 freqz 函数提供了基于FFT算法所得到的数字滤波器H(z)的频率响应 最常用的形式:h,w=freqz(b,a,p)其意义是,对于数字滤波器:freqz 函数接受滤波器系数向量b和a,以及一个用于指定所需计算的频率响应样点数的整数p,返回一个与由p个频率样本点构成的实频率向量
9、相对应的复频率响应向量h。m1n1z)1m(az)2(a)1(az)1n(bz)2(b)1(b)z(Hfreqz的命令形式 h=freqz(b,a,w)采用上面的形式时,需先对频率样本点向量w作出定义。通常的做法是使用linspace函数。h,w=freqz(b,a)w和p没有定义,默认w由(0)上均分的512点构成,频率单位为rad/sample。h,w=freqz(b,a,p,whole)使用带参数whole选项的命令形式 h,w=freqz(b,a,p,fs)用参数选项指定采样频率fs linspace的命令形式 linspace函数的命令形式有两种:linspacelinspace(x
10、1,x2)%产生x1,x2范围内经线性分割得到的100点的向量linspacelinspace(x1,x2,N)%产生x1,x2范围内经线性分割得到的N点的向量例如:例如:w=linspace(0,pi)%w由(0,pi)上100个等分点组成 w=linspace(0,1000)%w由(0,1000)上100个等分点组成freqz函数无返回输出参数格式的调用 freqz函数还能以无返回输出参数的格式调用:freqz(b,a,256)或 freqz(b,a,256,2000)无返回输出参数调用freqz函数的好处是,MATLAB能够自动绘出频率在(0)范围内的幅频特性和相频特性图。注意,无返回输
11、出参数调用freqz函数绘出的相频特性不能正确给定在 处的值,这是因为在MATLAB中,属于下半个单位圆。频率响应的实例 例:先构成一个截止频率为400Hz的9阶巴特沃思(Butterworth)低通数字滤波器,求出其系数b,a,再求出其256点频率响应。指定的采样频率fs=2000Hz。实现1:先调用butter函数,再调用freqz函数;实现2:无返回输出参数,调用freqz函数;实现3:为得到完整的(0)范围内的幅相特性图,可用带返回输出参数的格式调用freqz,在得到各频率点上的频率响应的数值后,使用MATLAB所提供的abs函数和angle函数分别提取幅频特性与相频特性。注意:为了得
12、到连续的相频曲线,需要使用unwrap函数,该函数通过在发生跳变后的各处自动加上,从而除去了相位的跳变,这称为相位的“解卷绕”。实现1b,a=butter(9,400/1000);%括号中第一个输入是阶数,第二个是归一化截止频率h,f=freqz(b,a,256,2000);或h=freqz(b,a,256,2000);实现2 实现1中第二条命令的形式可改写为 freqz(b,a,256)或freqz(b,a,256,2000)可自动绘出频率在(0)范围内的幅频特性和相频特性图。注意无返回输出参数调用freqz函数绘出的相频特性不能正确给定在=处的值,因为=属于下半个单位圆。实现3b,a=bu
13、tter(9,400/1000);w=linspace(0,1000);h=freqz(b,a,w,2000);mag=abs(h);pha=angle(h);%提取滤波器频率响应的幅度mag和相位phasemilogy(w,mag);title(Magnitude);figure;plot(w,pha);title(Phase);出现了幅度为2的跳变卷绕解卷绕:unwrap函数 为了得到连续的相频曲线,需要使用unwrap函数,该函数通过在发生2跳变后的各处自动加上2,从而除去了相位的跳变,这称为相位的“解卷绕”。解卷绕freqs函数 freqs函数用于求取由b和a系数向量定义的模拟滤波器H
14、(s)的频率响应。使用方法类似freqz函数。与第二章(p32例2-1)采用数组相除方法求取频率响应相比,使用freqs 函数要方便很多。5.3.2 零极点分析 zplane 函数用于画出线性系统在Z平面上的零极点。有两种使用方法:1、在已知零极点时,例如某滤波器的零点为-1/2,一对共轭极点为 和 时,只要输入命令zer=-0.5;pol=0.9*exp(j*2*pi*-0.3 0.3);zplane(zer,pol)即可画出零极点。(见p70图5-6))3.0(2je9.0)3.0(2je9.0用zplane函数绘制零极点图 另一种情况:已知系统的系统函数系数向量b 和 a,则可通过调用
15、zplane(b,a)绘出零极点。这种情形下,zplane 函数先求得系统函数的零点和极点,然后绘出零极点图。5.4 滤波器设计滤波器技术指标,IIR滤波器设计,FIR滤波器设计5.4.1 滤波器的技术指标 设计滤波器之前,要定义一组滤波器的技术指标。滤波器的技术指标通常采用幅度指标给出,以保证物理上的可实现性。幅度指标以容差方式给出,如p71图5-7所示。具体指标:通带截止频率Wp;阻带截止频率Ws;通带波纹p;阻带衰减s。其中通带波纹和阻带衰减也可以用分贝数给出)1log(20pp)log(20ss滤波器以容差方式给出的幅度指标|H(j)|10通带通带过渡带过渡带阻带阻带p s s p 1
16、 5.4.2 IIR 滤波器设计 MATLAB工具箱提供了几种模拟滤波器原型的产生函数,如巴特沃思(Butterworth),切比雪夫(Chebyshev)滤波器等。还提供了从模拟低通滤波器原型转换为高通、带通和带阻的转换函数,模拟滤波器转换为数字滤波器的双线性变换法和冲激响应不变法,模拟IIR滤波器的阶数选择函数以及数字滤波器直接设计函数等等,使用起来非常方便。本节以巴特沃思滤波器为例 介绍 MATLAB工具箱提供的滤波器设计函数 使用方法。1巴特沃思滤波器设计函数 b,a=butter(n,Wn,options)缺省情况下,返回一个用有理分式表示的低通数字滤波器系统函数的分子分母系数向量b
17、和a。设计的技术指标只需要指定一个归一化截止频率Wn(这里Wn的单位为:Nyquist 频率=1 Hz)。参数选项options:选项空缺返回低通滤波器;high则表示返回的是高通数字滤波器;至于带通和带阻滤波器设计,则输入的Wn必须是二个元素的向量;选项options 空缺返回带通滤波器,带阻滤波器需加参数options为stop。Butter函数举例 B,A=butter(N,Wn)返回系统函数的长度为N+1的分子系数B和分母系数A。式中Wn为归一化截止频率,0 Wn 1.0。B,A=butter(N,Wn,high)设计一个高通数字滤波器。如果Wn=W1 W2,且options空缺,则返
18、回一个2N阶的带通滤波器,其通带为:W1 W W2。B,A=butter(N,Wn,stop),且Wn=W1 W2 设计2N阶的带阻滤波器。butter(N,Wn,s),butter(N,Wn,high,s)或 butter(N,Wn,stop,s)调用butter()函数附加一个options为s时,表示设计的是一个模拟滤波器,而指定的截止频率Wn单位此时必须为rad/s。2.巴特沃思滤波器阶次选择函数 buttord函数用于给出满足给定频域指标要求的最小阶次滤波器的设计。其调用格式为:n,Wn=buttord(Wp,Ws,Rp,Rs)%用于数字滤波器 n,Wn=buttord(Wp,Ws,
19、Rp,Rs,s)%用于模拟滤波器 该函数返回符合技术指标的最小阶数N以及Butterworth滤波器3dB截止频率Wn。设计指标同前:通带起伏不超过Rp,阻带衰减不小于Rs,Wp和Ws分别为归一化通带和阻带截止频率。Buttord函数应用:例5-1 例:设计一个数字带通滤波器,通带为1000 到 2000 Hz,止带的起始位置离开通带两边500Hz,也即分别为500 Hz和2500Hz,设采样率为10KHz,通带起伏为1dB,止带最小衰减为60dB。解 MATLAB实现如下:n,Wn=buttord(1000 2000/5000,500 2500/5000,1,60)得到:n=12Wn=0.1
20、951 0.4080 因此b,a=butter(n,Wn);给出了满足要求的最小阶次巴特沃思带通滤波器。3经典的IIR滤波器设计方法 一种常用的IIR滤波器设计方法是利用已经很成熟的模拟滤波器设计结果。设计步骤如下:(1)按照一定规则将给出的数字滤波器的技术指标转换为模拟低通滤波器的技术指标。(2)根据转换后的技术指标设计模拟低通滤波器的H(s)。(3)再按一定规则将H(s)转换成H(z)。步骤(3)中最常用的方法:冲激响应不变法(也克称为脉冲响应不变法)和双线性变换法。冲激响应不变法的原理 冲激响应不变法是通过对模拟滤波器的单位冲激响应ha(nTs),进行采样,将其作为数字滤波器的单位冲激响
21、应h(n)。即:据此设计得到的数字滤波器的频率响应 与模拟滤波器的频率响应 之间的关系为:因此存在着频率混迭。从而限制了其适用范围。)nT(h)n(hsa)Tk2jTj(HT1)e(Hsksasj)e(Hj)j(Ha注意:S域频率轴与Z域单位圆之间不存在一一对应关系。冲激响应不变设计的impinvar()函数 impinvar()函数的调用格式是:Bz,Az=impinvar(Bs,As,fs)这一函数把具有Bs,As模拟滤波器的转换成了采样频率为fs的数字滤波器的Bz,Az。如果没有给定采样频率fs,函数默认为1Hz。双线性变换法原理 双线性变换法所定义的s平面与z平面的映射关系为:给定模拟
展开阅读全文