MATLAB基础与实例进阶-12_第1页
MATLAB基础与实例进阶-12_第2页
MATLAB基础与实例进阶-12_第3页
MATLAB基础与实例进阶-12_第4页
MATLAB基础与实例进阶-12_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2023/2/4机械工业出版社Page1第12章MATLAB信号处理【学习目标】了解信号处理的概念领会与掌握用信号处理工具箱提供的各种方法设计滤波器理解统计信号处理的概念及应用会用信号处理GUI对信号进行分析与处理全面了解工具箱中的其他信号处理方法2023/2/4机械工业出版社Page2第12章MATLAB信号处理信号处理工具箱基础12.1滤波器设计与实现12.2

统计信号处理

12.3

信号处理GUI12.4

工具箱中的其他常用处理方法12.52023/2/4机械工业出版社Page312.1信号处理工具箱基础信号处理工具箱是一个基于MATLAB环境的工具集合,可以解决诸如波形产生、滤波器设计及实现、参数建模和谱分析等一大类信号处理问题。2023/2/4机械工业出版社Page41.工具箱简介1)命令行函数MATLAB信号处理工具箱提供了命令行函数用于解决诸如数字滤波器的设计、分析及实现、模拟滤波器的设计、分析及实现、线性系统变换、窗函数、谱分析和倒谱分析、变换、统计信号处理、参数建模、线性预测、多速率信号处理和波形产生等信号处理问题。2023/2/4机械工业出版社Page52)图形用户界面MATLAB信号处理工具箱提供的交互式图形用户界面用于解决以下3种问题:◆滤波器设计和分析◆窗的设计和分析◆信号的作图及分析、谱分析和滤波2023/2/4机械工业出版社Page63)支持的数据类型信号处理工具箱仅支持双精度类型的输入数据。若输入数据为单精度浮点型或单精度整型,则大多数情况下会产生错误的结果。滤波器设计工具箱与定点工具箱结合在一起,可用于单精度浮点型和定点型的滤波问题和滤波器设计问题。2023/2/4机械工业出版社Page72.交互式工具由于以下直观易用的交互式工具的使用,信号处理工具箱的功能得以极大扩充。1)滤波器设计和分析工具(FDATool)滤波器设计和分析工具(FDATool)和Filterbuilder为滤波器设计提供了一个功能完善的平台。FDATool和Filterbuilder为其他的滤波器设计方法、量化特点、C代码生成和其它增强过滤的滤波器设计工具箱产品提供了无缝连接。若配备有FilterDesignHDLCoder软件,则可以由FDATool和Filterbuilder

生成HDL代码。2023/2/4机械工业出版社Page82)滤波器可视化工具(fvtool)提供用于查看、注释和打印滤波器响应曲线的图形环境。3)信号处理工具(sptool)提供用于信号观察、滤波器设计和谱分析的丰富的图形环境。4)窗函数涉及和分析工具(wintool)提供用于设计和对比窗函数的环境。5)常函数可视化工具(wvtool)提供用于查看、注释和打印窗函数曲线的图形环境。2023/2/4机械工业出版社Page93.基本的信号处理概念1)信号的表示数字阵列:MATLAB环境中的中央数据结构,一个二维或多维的有序实数集合或复数集合。所涉及的基本数据类型(一维信号或序列、多通道信号和二维信号)通常都适于用阵列描述。向量表示:MATLAB通常用1×n维或n×1维的向量表示一维的采样信号或序列,n是采样点数。在MATLAB中产生一个序列的一种方法是在命令窗口直接将序列元素罗列出来。2023/2/4机械工业出版社Page102)波形产生时间向量:假设产生信号所用的采样频率为1000Hz,则可用下面的代码产生一个时长为1秒(间隔1毫秒)的时间信号:>>t=(0:0.001:1)';产生一个由两个正弦信号(频率为50Hz和120Hz,幅度为1和2)构成的采样信号y:>>y=sin(2*pi*50*t)+2*sin(2*pi*120*t);2023/2/4机械工业出版社Page11对信号y加离散的正态分布的白噪声,并画出其前50个点>>randn('state',0);>>yn=y+0.5*randn(size(t));>>plot(t(1:50),yn(1:50))2023/2/4机械工业出版社Page12下面的代码用来产生单位脉冲信号、单位阶跃信号、单位斜坡函数和方波:>>t=(0:0.001:1)';>>imp=[1;zeros(99,1)];%单位脉冲信号>>unit_step=ones(100,1);%单位阶跃信号>>ramp_sig=t;%单位斜坡信号>>quad_sig=t.^2;%时间信号的二次波>>sq_wave=square(4*pi*t);%占空比为50%的方波2023/2/4机械工业出版社Page13多通道信号:可由MATLAB中的矩阵描述。例如,下面代码用以产生上面的代码中最后三个信号构成的3通道信号:>>z=[ramp_sig

quad_sig

sq_wave];多通道信号也可由下面的方法产生:先产生一个列向量,再将列向量进行复制以构成一个矩阵,该矩阵就代表一个多通道信号。例如,下面的代码先产生一个6元素的列向量(首元素为1,其他5个元素为0),再将该向量复制构成一个3通道信号:2023/2/4机械工业出版社Page14>>a=[1zeros(1,5)]';>>c=a(:,ones(1,3))c=111

000000000000000常用的周期信号信号处理工具箱提供了用于产生广泛应用的周期信号的函数,如:◆sawtooth产生锯齿波,幅度为±1,周期为2π;使用该函数时,可以用参数“width”指定信号的最大值出现的位置。◆square产生周期为2π的方波;使用时,可以指定方波的占空比(方波信号的正值所占周期的比例)。2023/2/4机械工业出版社Page154.信号产生实例1.序列的产生:分别用行向量和列向量表示序列>>x=[437-91]x=437-91>>x=x'%序列的转置x=437-912023/2/4机械工业出版社Page16对于单通道信号而言,通常用列向量表示,因为列向量容易扩展到多通道状态。对于多通道信号,矩阵的每一列代表一个通道的信号,而矩阵的每一行则对应一个采样点。例如,在例12-1的基础上产生下面的3通道信号,代码如下:>>y=[x2*xx/pi]y=4.00008.00001.27323.00006.00000.95497.000014.00002.2282-9.0000-18.0000-2.86481.00002.00000.31832023/2/4机械工业出版社Page17若信号值中有复数元素,则转置操作将对复元素取共轭。因此,若想在对一个由复数元素构成的行向量进行转置时,复元素不取共轭,可以用“.'”实现。例如:>>x=[1-i3+i2+3*i4-2*i];>>x1=x'x1=1.0000+1.0000i3.0000-1.0000i2.0000-3.0000i4.0000+2.0000i>>x2=x.'x2=1.0000-1.0000i3.0000+1.0000i2.0000+3.0000i4.0000-2.0000i2023/2/4机械工业出版社Page182.周期信号的产生:产生一个时长为1.5秒、频率为50Hz、采样频率为10kHz的锯齿波信号,并画出前0.2秒的波形。>>fs=10000;>>t=0:1/fs:1.5;>>x=sawtooth(2*pi*50*t);>>plot(t,x);>>holdon;>>axis([00.2-11]);2023/2/4机械工业出版社Page1912.2滤波器设计与实现滤波器设计是根据指定的滤波性能要求确定滤波器系数的过程,滤波器的实现则是根据这些系数选择合适的滤波器结构。滤波器的设计和实现都完成以后,即可对输入数据进行滤波。本节介绍如何利用信号处理工具箱设计和实现滤波器。2023/2/4机械工业出版社Page201.滤波器的实现和分析1)卷积和滤波滤波的数学基础就是卷积运算。MATLAB中的函数conv可以用来实现两个一维向量的卷积运算,下面的代码可以实现序列和其自身的卷积:>>conv([111],[111])

ans=123212023/2/4机械工业出版社Page21假设一个滑动平均滤波器的单位脉冲响应为输入序列x(k)为一个长度为5的随机向量,若在MATLAB中分别用变量h和x描述,则用下面的代码即可计算出滤波器的输出y:>>x=randn(5,1);>>h=[1111]/4;>>y=conv(h,x);2023/2/4机械工业出版社Page222)滤波器和传递函数若用Y(z)和X(z)分别表示数字滤波器的输出序列y(n)和输入序列x(n)的Z变换,H(z)表示滤波器的脉冲响应的Z变换,则式子即是滤波器的传递函数。b(i)和a(i)是滤波器的系数,滤波器的阶数则由n和m中的较大者描述。2023/2/4机械工业出版社Page23滤波器的系数和名字n=0:b为一个标量,滤波器称为无限脉冲响应(IIR)滤波器、全极点型滤波器、递归系统或自回归(AR)滤波器。m=0:a为一个标量,滤波器称为有限脉冲响应(FIR)滤波器、全零点型滤波器、非递归系统或滑动平均(MA)滤波器。n和m都大于0:滤波器是一个IIR、零极点型的递归系统或自回归滑动平均(ARMA)滤波器。2023/2/4机械工业出版社Page24用函数filter进行滤波若某单极点数字滤波器(低通)的传递函数为则该滤波器在MATLAB中可用向量b和a描述>>b=1;>>a=[1-0.9];假设滤波器的输入为x,则用下面的代码即可得到滤波器的输出y:y=filter(b,a,x);2023/2/4机械工业出版社Page252.频率响应数字滤波器的频率响应可由MATLAB中的函数freqz求解,若一个数字滤波器的频率响应用下式描述:下面的代码求出滤波器的p点复频率响应:[h,w]=freqz(b,a,p);2023/2/4机械工业出版社Page26函数freqz还可以指定采样频率或任意的频率点数。例如:若要求一个12阶切比雪夫I型滤波器的256点频率响应,且指定采样频率为1000Hz,实现代码如下:>>[b,a]=cheby1(12,0.5,200/500);>>[h,f]=freqz(b,a,256,1000);若采样频率用Fs描述,则上述代码中的返回值f是一个256点的频率向量,其元素在0到Fs/2之间。2023/2/4机械工业出版社Page27若要画出滤波器的幅度相应和相位响应,则在调用函数freqz时省去输出即可。例如,一个9阶的巴特沃斯低通滤波器的截止频率为400Hz,采样频率为2000Hz,求其256点的复频率响应,并画出其幅度相应和相位响应,实现代码如下:>>[b,a]=butter(9,400/1000);>>freqz(b,a,256,2000)2023/2/4机械工业出版社Page282023/2/4机械工业出版社Page29观察滤波器的幅度响应和相位响应也可以经由fvtool完成。在MATLAB的命令窗口输入下面的代码:fvtool(b,a)在打开的窗口中单击工具栏上的,即可在同一窗口中观察滤波器的幅度相应和相位响应,如下图所示。2023/2/4机械工业出版社Page302023/2/4机械工业出版社Page313.滤波器的设计1)IIR滤波器设计2023/2/4机械工业出版社Page32下面的代码分别设计了不同类型的低通、带通、高通和带阻滤波器:[b,a]=butter(5,0.4);%巴特沃斯低通滤波器[b,a]=cheby1(4,1,[0.40.7]);%切比雪夫I型带通滤波器[b,a]=cheby2(6,60,0.8,'high');%切比雪夫II型高通滤波器[b,a]=ellip(3,1,60,[0.40.7],'stop');%椭圆型带阻滤波器2023/2/4机械工业出版社Page33传统的IIR数字滤波器设计包括下面3个步骤:1)设计截止频率为1的模拟低通滤波器(归一化模拟低通滤波器),并将该原型滤波器转换为实际的模拟滤波器;2)将模拟滤波器变换到数字域;3)将滤波器离散化。在上述设计过程中所用到的函数及功能如下:2023/2/4机械工业出版社Page34模拟低通原型滤波器设计buttap:设计巴特沃斯型低通模拟原型滤波器;cheb1ap:设计切比雪夫I型低通模拟原型滤波器besselap:设计Bessel型低通模拟原型滤波器;ellipap:设计椭圆型低通模拟原型滤波器;cheb2ap:设计切比雪夫II型低通模拟原型滤波器频率变换lp2lp:将低通模拟原型滤波器转换为模拟低通滤波器lp2hp:将低通模拟原型滤波器转换为模拟高通滤波器lp2bp:将低通模拟原型滤波器转换为模拟带通滤波器lp2bs:将低通模拟原型滤波器转换为模拟带阻滤波器离散化bilinear:双线性变换法设计IIR数字滤波器impinvar:脉冲响应不变法设计IIR数字滤波器2023/2/4机械工业出版社Page352)FIR滤波器设计信号处理工具箱提供了许多用于FIR滤波器设计的函数,如:fir1、fir2、kaiserord、firls、firpm、firpmord、fircls、fircls1、cfirpm和firrcos等。在这些函数中,cfirpm可以设计任意一种线性相位滤波器和非线性相位滤波器,而其他的函数都只能设计线性相位滤波器。2023/2/4机械工业出版社Page36以函数fir1为例,fir1是用窗化法设计FIR滤波器,其语法形式为:b=fir1(n,Wn)b=fir1(n,Wn,win)Wn:截止频率(取值在[0,1]之间,1对应奈奎斯特频率);b:长为n+1的行向量;win:长为n+1的向量,win省略则默认使用海明窗2023/2/4机械工业出版社Page374.滤波器设计实例用双线性变换法设计一个IIR数字带通滤波器。clc;clear

all;closeall;[z,p,k]=cheb1ap(5,3);[b,a]=zp2tf(z,p,k);fs=2;u1=2*fs*tan(0.1*(2*pi/fs)/2);u2=2*fs*tan(0.5*(2*pi/fs)/2);Bw=u2-u1;Wo=sqrt(u1*u2);[bt,at]=lp2bp(b,a,Wo,Bw);[bz,az]=bilinear(bt,at,fs);fvtool(bz,az);2023/2/4机械工业出版社Page382023/2/4机械工业出版社Page39设计一个48阶带通滤波器,通带为>>b=fir1(48,[0.350.65]);>>fvtool(b,1)2023/2/4机械工业出版社Page405.用Filterbuilder

GUI设计滤波器

用filterbuilder设计一个带通IIR滤波器的步骤1)在MATLAB的命令窗口输入filterbuilder,打开如图所示的滤波器响应类型选择对话框;2023/2/4机械工业出版社Page412)在列表框中选择【Bandpass】,然后单击,打开如图所示的带通滤波器设计界面;2023/2/4机械工业出版社Page423)将【Impulseresponse】项选为“IIR”,【Ordermode】项选为“Minimum”,【Designmethod】项选为“Butterworth”,单击窗口右上角的,即可观察设计出的IIR滤波器的幅频响应。2023/2/4机械工业出版社Page436.滤波器设计和分析GUI1)用FDATool设计滤波器以设计FIR带通滤波器为例,步骤如下:◆在MATLAB的命令窗口输入fdatool,打开滤波器设计窗口;◆指定滤波器的类型、设计方法和各种设计指标;◆单击窗口下方的,即在窗口中显示滤波器的幅频响应曲线。2023/2/4机械工业出版社Page442023/2/4机械工业出版社Page452)用FDATool分析滤波器◆改变图像显示区域所显示的曲线种类菜单项【Analysis】的下拉菜单用来显示滤波器的各种响应类型。其中,下拉菜单项【OverlayAnalysis】可用来同时显示多种响应类型。工具栏上的按钮组也可用来改变图形显示区域所显示的响应类型,从左到右依次是:幅度相应、相位响应、幅度和相位响应、群时延、相时延、脉冲响应、阶跃响应、零极点图、滤波器系数、滤波器信息、幅度相应估计和舍入噪声功率谱。2023/2/4机械工业出版社Page46◆显示数据点信息在曲线的某一点上单击鼠标右键,即可显示该点的数据信息,已显示信息的点用黑色方块标注;在黑色方块上再次单击鼠标右键,即可通过右键单击菜单改变数据信息的显示位置、字体大小、是否可移动选项、插值方法、是否将信息输出到变量空间选项、删除该数据点信息选项和删除所有数据点信息选项。2023/2/4机械工业出版社Page47◆改变分析参数和采样频率用鼠标右键单击图形显示区域的空白处,显示下拉菜单【AnalysisParameters】、【SamplingFrequency】和【''What’sThis?''】,分别用来设置分析参数、改变采样频率和显示帮助信息。◆在独立窗口显示响应曲线单击菜单【View】→【FilterVisualizationTool】即可打开fvtool,用独立的窗口显示滤波器的响应曲线。2023/2/4机械工业出版社Page48◆滤波器的其他分析方法在滤波器设计窗口的左边界下部有一个如下图所示的工具栏(设计窗口上是由上至下显示的),从上到下依次是:创建多速率滤波器、滤波器类型转换、设置量化参数、滤波器实现模型、零极点编辑器和从变量空间导入滤波器。2023/2/4机械工业出版社Page4912.3统计信号处理统计信号处理是指,利用信号与干扰的不同统计特性,从统计的观点出发,研究如何对这种随机性观测结果进行处理,以便尽可能地抑制干扰而提取有用的信号。统计信号处理是一个重要的科学分支,其主要内容是信号的检测理论、估计和滤波理论及应用。2023/2/4机械工业出版社Page501.相关和协方差两个随机过程的互相关和互协方差可由函数xcorr和xcov计算,特殊地,函数xcorr和xcov也可以计算自相关和自协方差。与卷积的计算类似,相关的计算函数xcorr采用的算法思想也是FFT。不同的是,在进行相关计算前,应先将两个子序列中的一个序列进行翻转。2023/2/4机械工业出版社Page512.谱估计2023/2/4机械工业出版社Page52用非参数化方法中的周期图法,对叠加噪声的两个正弦信号的和xn做功率谱估计。clc;clear

all;closeall;fs=1000;t=(0:fs)/fs;A=[12];f=[150;140];xn=A*sin(2*pi*f*t)+0.1*randn(size(t));Hs=spectrum.periodogram('Hamming');psd(Hs,xn,'Fs',fs,'NFFT',1024,'SpectrumType','onesided');2023/2/4机械工业出版社Page532023/2/4机械工业出版社Page5412.4信号处理GUI在MATLAB的命令窗口输入sptool,得右图。2023/2/4机械工业出版社Page551.信号观察器信号观察器完成的工作如下:分析和对比向量信号或阵列(矩阵)信号放大信号的一部分测量信号数据的多种特征对比多通道信号在音频硬件上播放部分信号打印信号波形2023/2/4机械工业出版社Page56观察信号的步骤1)选中【Signals】列表框中的一个信号(例如chirp);2)单击下方的显示的波形如右图所示。2023/2/4机械工业出版社Page572.滤波器可视化工具FVTool的启动是从SPTool开始的,方法如下:◆单击SPTool窗口上的【Filters】列表框下方的:此时FVTool显示已选择滤波器的幅度相应,且和SPTool相联系,SPTool中的任何改变将引起FVTool中相应的改变。◆单击FVTool中的菜单【File】→【NewFilterAnalysis】:此时FVTool是一个独立的窗口,与SPTool没有任何联系。2023/2/4机械工业出版社Page583.频谱观察器频谱观测器可以完成下列工作:◆分析和对比谱密度曲线◆用不同的谱估计方法(Burg、协方差、FFT、修正协方差、MTM、MUSIC、Welch和Yule-WalkerAR)创建功率谱◆修改功率谱密度参数(如FFT长度、窗的类型和采样频率)◆打印谱曲线2023/2/4机械工业出版社Page59若要查看SPTool窗口的【Spectra】列表框中已有信号的功率谱,则将该信号选中,然后单击下方的即可。若【Spectra】列表框中没有要查看的信号,则创建步骤如下:1)在【Signals】列表框中选择一个信号(如

mtlb);2)单击【Spectra】列表框下方的3)在打开的频谱观测器窗口中单击左下方的2023/2/4机械工业出版社Page602023/2/4机械工业出版社Page614.噪声的滤波和分析1)从SPTool中导入一个信号◆在命令窗口输入下面的代码;>>randn('state',0);>>x=randn(5000,1);◆输入sptool打开SPTool;◆单击菜单【File】→【Import】;◆在打开的ImporttoSPTool窗口中选择信号x,单击,将x导入到右侧的【Data】区域,在右下方的【SamplingFrequency】处输入5000,在【Name】处输入noise,单击。2023/2/4机械工业出版社Page622)设计滤波器单击SPTool中【Filters】列表框下方的以默认滤波器名“filt1”打开FDATool,按右图设计一个FIR带通滤波器。2023/2/4机械工业出版社Page633)将设计的滤波器应用于信号noise◆选择信号noise[vector]和滤波器fir1[design];◆单击【Filters】列表框下方的打开ApplyFilter窗口,如下图所示;◆在【OutputSignal】处输入blnoise;◆单击2023/2/4机械工业出版社Page644)分析信号

对比信号noise和blnoise。◆按下Shift键的同时依次用鼠标单击信号noise和blnoise,将它们同时选中;◆单击【Signals】列表框下方的打开信号观察器;◆单击信号观察器工具栏上的“”,在打开的窗口中选择信号blnoise,然后单击,信号观察器中即同时显示出noise和blnoise,如下图所示。2023/2/4机械工业出版社Page652023/2/4机械工业出版社Page665)观察信号noise和blnoise的功率谱◆选择信号noise,单击【Spectra】列表框下方的;◆在打开的SpectrumViewer窗口中单击,即显示出信号noise的功率谱密度;◆同样的方法显示信号blnoise的功率谱密度,在

SPTool的【Spectra】列表框中显示出spect1[auto]和spect2[auto]。◆重新激活SPTool窗口,同时选中spect1[auto]和spect2[auto],单击【Spectra】列表框下方的,即在图形显示区同时显示了noise和blnoise的功率谱密度,如下图所示。2023/2/4机械工业出版社Page672023/2/4机械工业出版社Page6812.5工具箱中的其他常用处理方法

除了滤波器的设计和实现以及统计信号处理外,信号处理工具箱还提供了多种多样的函数,用于其它常用的信号处理理论,如:窗函数、参数建模、重采样、倒谱分析、通信中的调制与解调以及几种特殊的信号变换等。2023/2/4机械工业出版社Page691.窗窗的选择在滤波器的设计和谱估计中起着非常重要的作用,主要用来抑制对无限长序列进行截短所产生的吉布斯效应的影响。信号处理工具箱提供了用于设计和分析窗的图形用户界面工具wintool和窗的实现工具wvtool。以wintool为例,在MATLAB的命令窗口输入wintool,即打开窗的设计和分析窗口,默认显示海明窗,如下图左所示。

wintool可用来同时显示多个窗函数的波形及幅度响应,下图右将FlatTop窗、汉宁窗、布莱克曼窗和海明窗同时显示出来以作对比。2023/2/4机械工业出版社Page702023/2/4机械工业出版社Page712.参数建模参数建模用于寻找一个数学模型的参数来描述一个信号、系统或过程,用系统的已知信息创建模型。参数建模的应用包括语音和音乐合成、数据压缩、高分辨率谱估计、通信、工业和仿真。1)可用的参数建模函数时域建模:arburg、arcov、armcov、aryule、

lpc、levinson、prony和stmcb。频域建模:invfreqz和invfreqs。2023/2/4机械工业出版社Page722)时域建模线性预测建模假设信号x(k)的每一个输出样本均是过的去n个输出的线性组合,即则,信号x的一个n阶全极点模型可以用下面的代码产生:a=lpc(x,n);用下面的代码产生一个全极点滤波器的脉冲响应序列,并添加噪声:>>randn('state',0);>>x=impz(1,[10.10.1

0.10.1],10)+randn(10,1)/10;2023/2/4机械工业出版社Page73则,系统的一个4阶全极点模型的系数可由下面的代码生成:>>a=lpc(x,4)a=1.00000.25740.16660.12030.25983)频域建模◆设计一个低通巴特沃斯滤波器;>>[b,a]=butter(4,0.4)b=0.04660.18630.27950.18630.0466a=1.0000-0.78210.6800-0.18270.0301◆计算滤波器的频率响应;>>[h,w]=freqz(b,a,64);2023/2/4机械工业出版社Page74◆建模>>[b4,a4]=invfreqz(h,w,4,4)b4=0.04660.18630.27950.18630.0466a4=1.0000-0.78210.6800-0.18270.0301频率向量w的单位是rad/s,不一定要均匀划分。对于计算出来的w,函数invfreqz可以设计任意阶次的滤波器与之相对应。例如,下面的代码建立一个3阶模型:>>[b4,a4]=invfreqz(h,w,3,3)b4=0.04640.17850.24460.1276a4=1.0000-0.95020.7382-0.20062023/2/4机械工业出版社Page75函数invfreqz用下式来确定所建立的模型是最好的其中,A(w(k))和B(w(k))是多项式系数向量a和b的傅里叶变换,n是频率向量w和脉冲响应h(k)的长度,wt(k)是不同频率之间的相对误差的加权。此时,模型的建立可由下面的代码实现:invfreqz(h,w,n,m,wt);但是,此模型的稳定性不能确保。2023/2/4机械工业出版社Page76函数invfreqz提供了一种使实频率响应点之间的均方误差加权和最小的算法,即继续在MATLAB的命令窗口输入下面的代码以建立新的模型:>>wt=ones(size(w));>>[b30,a30]=invfreqz(h,w,3,3,wt,30)b30=0.04640.18290.25720.1549a30=1.0000-0.86640.6630-0.1614此时,所建立的模型总是稳定的。2023/2/4机械工业出版社Page77将由上述两种方法所得到的模型的频率响应和原始巴特沃斯滤波器的频率响应,同时用fvtool显示出来并加以比较,如下图所示。2023/2/4机械工业出版社Page783.重采样信号处理工具箱提供了许多函数,用于以较高的采样率或较低的采样率对信号进行重采样,有:upfirdn:将重采样应用于FIR滤波器spline:三次样条插值decimate:抽取interp:插值interp1:一维插值resample:以新的采样率重采样2023/2/4机械工业出版社Page79以函数resample为例进行说明,其语法形式为:y=resample(x,p,q);即,函数以原始采样频率的p/q倍速率对信号x进行重采样,返回结果y的长度是x长度的p/q倍。MATLAB中有一长度为4001的音频信号向量,采样率为7418Hz,可在命令窗口通过下面的命令查看>>clear>>loadmtlb>>whosNameSizeBytesClassAttributesFs1x18double

mtlb4001x132008double>>FsFs=74182023/2/4机械工业出版社Page80若要以8192Hz的采样率将此信号播放出来,需对其进行重采样。首先,用函数rat获得重采样所需的因子p和q,重采样后进行放音。代码如下:>>[p,q]=rat(8192/Fs,0.0001)p=127q=115>>y=resample(mtlb,p,q);>>sound(y,8192)2023/2/4机械工业出版社Page814.倒谱分析及实例倒谱分析可由工具箱中的函数cceps完成,用以估计输入序列的复倒谱,其语法形式为:xhat=cceps(x)返回值xhat是一个和输入序列x同长度的实序列。以100Hz的采样率产生一个45Hz的正弦波>>t=0:0.01:1.27;>>s1=sin(2*pi*45*t);在信号开始后的0.2秒给信号加一个回音,幅度为信号幅度的一半s2=s1+0.5*[zeros(1,20)s1(1:108)];2023/2/4机械工业出版社Page82>>c=cceps(s2);>>plot(t,c)计算新信号的复倒谱:2023/2/4机械工业出版社Page835.通信应用及实例1)调制信号处理工具箱中的函数modulate可实现对信号的调制,常用的语法形式为:y=modulate(x,fc,fs,'method',opt)[y,t]=modulate(x,fc,fs,'method',opt)其中,x是原信号,fc是载波频率,fs是采样频率,method是调制方法选择参数,opt其他的参数选项。2023/2/4机械工业出版社Page842)解调解调由函数demod实现,常用的语法形式为:x=demod(y,fc,fs,'method',opt)各参数的含义同modulate。若y是一个矩阵,则dem

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论