
数字信号处理MATLAB实现及综合应用.ppt
80页第7章 数字信号处理MATLAB实现及综 合应用 7.1 数字信号处理MATLAB实现7.2 在双音拨号系统中的应用7.3 在wav信号分析方面的应用7.4 在自适应滤波器方面的应用随着信息学科和计算机学科的飞速发展 ,数字信号处理的重要性日益显著,数字信 号的处理已成为电子信息学科中的工程技术 人员必不可少的知识由于数字信号处理的概念比较抽象,再 加上其数值计算又比较繁琐,因此,国外很 早就开始把MATLAB用于数字信号处理的教学 过程,并取得了很好的经验,现在MATLAB已 经成为解决数字信号处理问题的公认的标准 软件为了使读者更好地掌握数字信号处理的基 本概念和基本理论,本章首先在7.1节给出前 面各章的MATLAB典型例题通过这些例题,帮助读者弄清一些重要的 概念,加深对课程基本概念和基本原理的理解 ,学会利用计算机软件解决在理论学习中不易 解决的问题然后在7.2节~7.4节分别给出了数字信号 处理技术在通信、信号分析、自适应滤波等方 面的实际应用,并给出了MATLAB仿真程序和结 果分析,这些内容可以扩宽读者数字信号处理 技术应用的知识面,促进理论与实际相结合本章和下一章上机实验都是课程学习的 重要实践环节,它不仅能帮助同学们理解和 掌握课程的重要概念和基本内容,而且也有 益于读者深入学习和应用信号处理知识来解 决实际问题。
7.1 数字信号处理MATLAB实现 7.1.1 MATLAB简介 7.1.2 离散时间信号与系统分析应用 举例 7.1.3 离散傅里叶变换应用举例 7.1.4 IIR滤波器设计常用函数及举例 7.1.5 FIR滤波器设计常用函数及举 例 7.1.1 MATLAB简介MATLAB是由美国MathWorks公司推出的软 件产品,“MATLAB”是Matrix Laboratory( 矩阵实验室)的缩写MATLAB是一个完整的并可扩展的计算机环 境,是一种进行科学和工程计算的交互式程 序语言它的基本数据单元是不需要指定维数的 矩阵,解决同样的数值计算问题,使用 MATLAB效率要提高许多倍MATLAB采用开放式的环境,你可以读到 它的原码、了解它的算法,并能改变当前的 函数或增添自己编写的函数目前,在国内外大学和研究机构中, MATLAB是一种非常流行的计算机语言,许多 重要的学术刊物上发表的论文均是用MATLAB 来分析计算和绘制各种图形它还是一种有力的教学工具,在大学的 线性代数、自动控制理论、数字信号处理、 动态系统仿真等课程的教学中,已成为标准 的教学工具1.变量 2.基本操作符 3.输入、输出语句 4.库函数 5.绘图操作表表7-1 7-1 MATLABMATLAB的常用的常用绘图绘图绘图绘图 命令及功能命令及功能实际的图形显示有多种情况,下面分别 加以说明。
1)需要用多个图形窗显示多个图形时 ,应在图形显示语句之前加上图形窗指令 figure;(2)在一个图形窗中显示多个图形时, 应在图形显示语句之前调用图形窗分块函数 subplot( );(3)在一个图形坐标系中显示多条曲线 时,要在plot( )语句前先执行指令hold on 用以保持当前曲线,显示完成之后,再执行 指令hold off;(4)需要选择坐标轴尺寸时,在plot( )语句之后调用axis( )函数信号处理工具箱覆盖了经典信号处理的 大多数内容,是一个非常优秀的算法研究、 辅助设计工具它提供了大量的工具函数、滤波器分析 和设计工具,常用的函数有以下几种1)设计IIR滤波器相关函数buttord、butter、cheblord、cheb2ord 、ellipord、cheby1、cheby2等6.用于数字信号处理的工具箱—— SIGNAL(2)设计FIR滤波器相关函数fir1、fir2、firls、remezord、remez 等;窗函数:boxcar、hanning、hamming、 blackman、kaiser3)傅里叶变换相关函数FFT(一维快速傅里叶变换)、IFFT(一 维快速傅里叶逆变换)、FFT2(二维快速傅 里叶变换)、abs(绝对值或模)、angle( 相角)等。
4)频率变换相关函数freqz、freqs、lp2lp、lp2hp、lp2bp、 lp2bs5)频率响应相关函数freqz、freqs7.1.2 离散时间信号与系统分析应用举例1.zplane(b,a)函数或pzplotz(b,a)函数 2.freqz函数 3.filter函数图图图图7-1 7-1 零极点零极点图图图图图图图图7-2 7-2 频频频频率响率响应图应图应图应图图图图图7-3 7-3 仿真波形仿真波形7.1.3 离散傅里叶变换应用举例在MATLAB中,可用函数dft来实现离散傅 里叶变换运算而且,在实用中,MATLAB还提供了内部函 数来快速进行离散傅里叶变换运算它采用了优化的算法,并且程序是用目的 码编写的,使得它有极高的运算速度,命名 为fft,反变换是ifft调用方式为y=fft(x) 或 y=fft(x, N)图图图图7-4 47-4 4点点DTFTDTFT和和DFTDFT图图图图图图图图7-5 DFT7-5 DFT图图图图((N=8N=8,,N=16N=16))图图7 7- -6 6 x x( (n n) )的前的前1010点数据对应的点数据对应的x x( (n n) )、、X X(e(ej jw w) )、、X X( (k k) ) 图图7 7- -7 7 x x( (n n) )补零至补零至100100点对应的点对应的x x( (n n) )、、X X(e(ej jw w) )、、X X( (k k) ) 图图7 7- -9 1289 128点点x x( (n n) )对应的对应的x x( (n n) )、、X X(e(ej jw w) )、、X X( (k k) )7.1.4 IIR滤波器设计常用函数及举例1.最小阶数选择函数[n,wn]=buttord/cheb1ord/cheb2ord/ellipord(wp, ws,Rp,Rs,'s')1.最小阶数选择函数[z,p,k]=buttap(n)/cheb1ap(n,Rp)/cheb2ap(n,Rs) /ellipap(n,Rp,Rs)2.模拟低通原型函数(1)低通到低通的频频率变换变换 [b1,a1]=lp2lp(b,a,w0),其中,w0为为低通滤滤 波器的截止频频率(rad/s)。
(2)低通到高通的频频率变换变换 [b1,a1]=lp2hp(b,a,w0),其中,w0为为高通滤滤 波器的截止频频率(rad/s)3.频率变换函数(3)低通到带通的频率变换 [b1,a1]=lp2bp(b,a,w0,Bw) ,其中,w0为带通 滤波器的中心频率,Bw为带通滤波器的带宽当滤波器通带的下截止频率为w1,上截止 频率为w2时,w0=sqrt(w1*w2),Bw=w2-w14)低通到带阻的频率变换 [b1,a1]=lp2bs(b,a,w0,Bw) ,其中,w0为带阻 滤波器的中心频率,Bw为带阻滤波器的带宽当滤波器通带的下截止频率为w1,上截止 频率为w2时,w0=sqrt(w1*w2),Bw=w2-w1MATLAB信号处理工具箱还提供了模拟滤波 器设计的完全工具函数:butter、cheby1、 cheby2、ellip、besself用户只需一次调用就可自动完成全部设计 过程,编程十分简单这些工具函数既适用于模拟滤波器设计, 也适用于数字滤波器4.完全设计函数(1)巴特沃思滤波器:[b,a] = butter(n,wn,'ftype','s') 其中,n为滤波器阶数;wn为滤波器截止频率 ;'s'为模拟滤波器,缺省时为数字滤波器。
2)切比雪夫滤波器:[b,a] = cheby1(n,Rp,wn,'ftype','s')或[b,a] = cheby2(n,Rs,wn,'ftype','s')(3)椭圆滤波器:[b,a] = ellip(n,Rp,Rs,wn,'ftype','s')[bz,az]=impinvar/ bilinear (b,a,fs)5.脉冲响应和双线性变换函数其中,b、a分别为模拟滤波器的分子和 分母多项式系数向量;fs为采样频率,单位 为Hz,缺省时fs默认为1Hz;bz,az分别为数 字滤波器分子和分母多项式系数向量图图图图7-10 7-10 不同采不同采样频样频样频样频 率率对对对对所所设计设计设计设计 数字数字滤滤滤滤波器波器频频频频率响率响应应应应的影响的影响图图图图7-11 Chebyshev7-11 ChebyshevⅠⅠ型数字高通型数字高通滤滤滤滤波器幅波器幅频频频频特性特性图图图图7-12 77-12 7阶阶阶阶ChebyshevChebyshevⅡⅡ型数字低通型数字低通滤滤滤滤波器幅度和相位波器幅度和相位图图图图7.1.5 FIR滤波器设计常用函数及 举例1.窗函数法设计FIR滤波器(2)计算截止频率为wc的理想低通滤波 器的单位脉冲响应hd(n),语句如下hd=ideal_lp(wc,N)(3)h(n)为h=hd.* win。
4)已知h(n),为了得到频率响应的幅 度、相位及群时延,需用语句如下[db,mag,pha,grd,w]=freqz_m(h,1)图图图图7-13 7-13 设计设计设计设计 的的实际实际实际实际 低通低通滤滤滤滤波器波器结结结结果果(1)h(n)为h=real(ifft(H,N))2)MATLAB程序中,可以用freqz计算 频率响应,但不能从中确定振幅响应这是因为在MATLAB函数中,不存在与abs 函数功能相当而能找到振幅的函数但在MATLAB中,提供了4种扩展函数,可 以计算FIR 4种类型滤波器的振幅响应● Hr_type1 ● Hr_type2 ● Hr_type3 ● Hr_type42.频率采样法设计FIR滤波器前面介绍的窗函数法设计FIR滤波器,完 全是根据窗函数法的设计思路和设计流图一 步一步进行的,这有助于掌握方法的原理在实际应用中,还可以采用另外一种方法 ——直接利用MATLAB中的内部函数来进行FIR 滤波器的设计MATLAB信号处理工具箱提供了两个用窗函 数法设计FIR滤波器的函数,见表7-2值得一提的是,FIR滤波器的窗函数设计 法不仅可以设计标准频率响应(低通、高通 、带通及带阻)滤波器,还可设计任意频率 响应的多带滤波器。
3.直接采用MATLAB内部函数设计 FIR滤波器表表7-2 7-2 用窗函数法用窗函数法设计设计设计设计 FIRFIR滤滤滤滤波器的内部函数波器的内部函数函数名函 数 功 能 fir1用窗函数法设计具有标准频率响应的FIR滤波器fir2用窗函数法设计具有任意频率响应的多带FIR滤波器图图图图7-14 7-14 例例7-107-10运行运行结结结结果果图图图图((1 1)函数)函数fir1fir1例7-11 设计一个低通滤波器,通带0~ 200Hz,阻带300~1000Hz,通带波动7%,阻 带衰减60dB,采样频率为2000 Hz图图图图7-15 7-15 例例7-117-11滤滤滤滤波器幅度和相位波器幅度和相位图图图图((2 2)函数)函数fir2fir2图图图图7-16 7-16 被被污污污污染信号的染信号的频谱频谱频谱频谱 特性特性 图图图图7-17 7-17 设计设计设计设计 的多的多带滤带滤带滤带滤 波器幅波器幅频频频频特性特性图图图图7-18 7-18 原始信号、原始信号、污污污污染信号及染信号及滤滤滤滤波后信号的比波后信号的比较较较较7.2 在双音拨号系统中的应用 7.2.1 的双音拨号系统 7.2.2 Goertzel算法 7.2.3 检测DTMF信号的DFT参数 选择 双音多频(Dual Tone Multi Frequency ,DTMF)是用按键进行拨号的制式,它 不单单用在中,还可以用于传输十进制。
