信号处理工具箱

上传人:hao****an 文档编号:245131750 上传时间:2024-10-07 格式:PPT 页数:34 大小:279.61KB
返回 下载 相关 举报
信号处理工具箱_第1页
第1页 / 共34页
信号处理工具箱_第2页
第2页 / 共34页
信号处理工具箱_第3页
第3页 / 共34页
点击查看更多>>
资源描述
,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,第19章 信号处理工具箱,数字信号处理是一门非常重要的基础学科。在MATLAB中,信号处理工具箱非常的重要。本章首先介绍了常用的离散信号和信号发生器,接着介绍了如何改变信号的采样率。然后介绍了利用MATLAB进行数字滤波,包括FIR滤波器和IIR滤波器等。滤波器是用来消除或减弱干扰噪声,是信号处理中一个非常重要的课题。最后介绍了功率谱估计,包括非参数模型法、参数模型法和子空间法进行功率谱估计。,19.1 数字信号处理理论,首先简单介绍了MATLAB的信号处理工具箱,然后介绍了常用的离散序列,包括单位抽样序列、单位阶跃序列、正弦序列、实指数序列、复指数序列、随机序列和周期序列。最后介绍了信号处理工具箱中的信号发生器,能够产生常用的矩形波和三角波等。,19.1.1 信号处理工具箱,MATLAB的信号处理工具箱提供了大量的函数,包含各种信号处理算法,包括波形产生、数字滤波器、模拟滤波器、线性系统变换、参数建模、线性预测、统计信号处理、倒谱分析和图形用户接口等。,离散信号,实际的信号往往是连续的,经过采样和量化以后变为离散的序列。利用MATLAB可以对离散的序列进行分析和处理。可以采用向量来表示一个有限长度的离散序列。,对于数字信号处理工具箱中的大多数函数,都需要一个时间向量。例如,采样率为1000Hz,时间为一秒的时间向量为:t=(0:0.001:1)。,19.1.3 波形发生器,在MATLAB的数字信号处理工具箱中,有多个函数用来产生各种常用的信号波形,例如方波、三角波、脉冲信号等。这些函数如表19.1所示。,19.2改变信号的采样率,在将信号传送到计算机进行处理时,已经变为数字信号,具有固定的采样率。有时需要改变信号的采样率,提高信号的采样率或降低信号的采样率。在MATLAB的信号处理工具箱提供很多函数来改变信号的采样率。下面进行介绍。,改变信号的采样率,在MATLAB中,采用函数resample()按有理分数来改变信号的采样率,该函数的常用调用格式为:,y=resample(x,p,q):该函数对信号x进行重新采样,采样率为原采样率的p/q倍,其中p和q必须为正整数。如果x为矩阵,则对x的每一列进行重采样。,y,b=resample(x,p,q):该函数返回在重采样时的滤波器的系数向量b。,19.2.2 降低信号的采样率,在MATLAB中,可以采用函数downsample()和函数decimate()来降低信号的采样率。函数downsample()将采样率按整数倍下降,该函数的调用格式为:,y=downsample(x,n):该函数将采样率降为原来的1/n,即每n个采样点中只取其中的第一个采样点。如果x为矩阵,则按矩阵的每一列进行。,y=downsample(x,n,phase):该函数中参数phase为相位,必须为整数,介于0到n-1之间。默认为0。,19.2.2 降低信号的采样率,在MATLAB中,,函数decimate()通过低通滤波来降低信号的采样率,该函数的调用格式为:,y=decimate(x,r):该函数降低信号的采样率,输出信号y的长度是信号x的1/r。默认的滤波器为8阶的Chebyshev IIR低通滤波器,y=decimate(x,r,n):该函数中采用n阶Chebyshev IIR滤波器。,y=decimate(x,r,fir):该函数采用30阶FIR滤波器。,y=decimate(x,r,n,fir):该函数采用n阶FIR滤波器。,提高信号的采样率,在MATLAB中,采用函数interp()和函数upsample()来提高信号的采样率。函数upsample()将信号的采样率提高整数倍,该函数的调用格式为:,y=upsample(x,n):该函数通过插入n-1个0,将信号的采样率提高n倍。输出信号y的长度为信号x的n倍。如果x为矩阵,则对矩阵的每一列来提高采样率。,y=upsample(x,n,phase):该函数中参数phase为相位,介于0到n-1之间。,提高信号的采样率,在MATLAB中,,还可以通过函数interp()来提高信号的采样率。该函数采用低通滤波器来提高信号的采样率,其调用格式为:,y=interp(x,r):该函数将信号的采样率提高r倍。,y=interp(x,r,l,alpha):该函数设置滤波器的长度为l,默认为4,截止频率为alpha,alpha默认为0.5。,y,b=interp(x,r,l,alpha):该函数的返回值b为滤波器的系数。,19.3 FIR数字滤波器,根据信号的不同特性消除或减弱干扰噪声,提取有用信号的过程称为滤波,而实现滤波功能的系统称为滤波器。经典滤波器从功能上可以分为低通、高通、带通和带阻滤波器,每一种又有模拟滤波器和数字滤波器。对于数字滤波器又分为FIR数字滤波器和IIR数字滤波器。下面介绍FIR数字滤波器。,FIR滤波器介绍,FIR滤波器有如下的优点:FIR滤波器总是稳定的;FIR滤波器能够用硬件实现;FIR滤波器具有线性相位。FIR滤波器的缺点是设计相同性能指标的数字滤波器,FIR滤波器需要比IIR滤波器高的多的阶数。FIR滤波器的系统函数只是z,-1,的多项式,IIR滤波器的系统函数采用的是有理分式。FIR滤波器可以采用窗函数法进行设计。,常用的窗函数,在MATLAB中,可以采用函数wvtool()来查看窗函数的时域和频域波形。该函数的调用格式为:wvtool(winname(n),其中参数winname为窗函数的名字,n为数据点数。,1矩形窗(Rectangular window),2汉宁窗(Hanning window),3海明窗(Hamming window),4布莱克曼窗(Blackman window),基于窗函数的FIR滤波器,在MATLAB的信号处理工具箱中,函数fir1()采用窗函数法设计FIR数字滤波器,能够设计低通、高通、带通、带阻滤波器。该算法的基本思想是,假定w(n)为指定的窗函数,理想滤波器的单位冲激响应为h(n),则得到滤波器的系数b(n)=w(n)h(n),其中1,nN,。,基于频率采样的FIR滤波器,在MATLAB中,采用函数fir2()设计基于频率采样的FIR滤波器。该函数的常用调用格式为:,b=fir2(n,f,m):该函数产生采用频率采样得到的滤波器系数。其中参数n为滤波器的阶数,f为归一化的频率向量,介于0,1,其中1对应的是奈奎斯特频率。m为每个频率点对应的幅度向量,和参数f具有相同的长度。,b=fir2(n,f,m,window):该函数设置窗函数,长度为n+1,默认为汉明窗。,b=fir2(n,f,m,npt,window):该函数中参数npt为频率响应的内插点数。,19.3.5 FIR滤波器实例分析,首先建立含有3种频率和白噪声的信号。然后,利用窗函数法设计FIR带通滤波器,并对数字信号进行带通滤波。,19.4IIR数字滤波器,IIR滤波器,即无限长冲激响应(infinite impulse response,IIR)滤波器,它的单位冲激响应是无限长的。设计IIR滤波器,就是寻找滤波器的各个系数a,k,和b,k,。下面对IIR滤波器进行详细的介绍。,19.4.1 IIR数字滤波器介绍,IIR数字滤波器的差分方程为:,IIR数字滤波器的系统函数为:,一般应满足M,N,,这类系统称为N阶系统,当MN时,可看成一个N阶IIR子系统与一个(M-N)阶的FIR子系统的级联。以下讨论都假定M,N,。设计IIR滤波器,就是获取滤波器的各个系数a,k,和b,k,。,19.4.2 IIR数字滤波器,在MATLAB中,采用函数butter()设计巴特沃兹滤波器。,函数cheby1()设计切比雪夫I型滤波器。,函数cheby2()设计切比雪夫II型滤波器。,函数ellip()设计椭圆数字滤波器。,函数yulewalk()设计递归型的IIR数字滤波器。,19.4.3 IIR数字滤波器阶数的选择,在MATLAB中,可以通过函数来确定IIR滤波器的最小的阶数。对于巴特沃兹滤波器,阶数的选择函数为buttord()。对于Chebyshev I型滤波器,阶数的选择函数为cheb1ord()。对于Chebyshev II型滤波器,阶数的选择函数为cheby2ord()。对于椭圆滤波器,阶数的选择函数为ellipord()。,19.4.4 IIR滤波器实例分析,首先建立含有3种频率(10Hz、20Hz和30Hz)正弦信号。然后设计IIR带通数字滤波器,并对数字信号进行带通滤波。,19.5 非参数法功率谱估计,功率谱估计是基于有限的数据寻找信号、随机过程或系统的频率成份。它表示随机信号频域的统计特性,有着明显的物理意义,是信号处理的重要研究内容之一。由于实际中得到的随机信号长度总是有限的,用这种有限长度信号所得到的功率谱只是随机信号真实功率谱的一种估计,所以称其为功率谱估计。周期图法、Bartlett法、Welch 法、Nuttall法,以及最大熵谱估计等属于经典功率谱估计,以傅立叶变换为基础。下面介绍周期图法功率谱估计和Welch法功率谱估计。,19.5.1 周期图法功率谱估计,周期图法是最简单的非参数模型法,把随机序列x(n)的N个观测数据直接进行离散傅立叶变换,然后取其幅值的平方,并除以N,作为序列x(n)真实功率谱的估计。,采用函数periodogram()进行周期图法功率谱估计。,19.6.2 Welch法功率谱估计,Welch法功率谱估计在周期图法的基础上进行了改进,是一种广泛应用的经典功率谱估计方法。Welch法功率谱估计能够改善谱失真现象。,采用函数pwelch()进行Welch法功率谱估计。,19.6 参数模型法功率谱估计,参数模型谱估计的方法不是直接的进行功率谱的计算,而是假设随机信号服从一个模型。通过有限的数据记录,对信号模型的参数进行估计,通过模型参数得到信号的功率谱。参数模型法功率谱估计包括:AR模型、MA模型和ARMA模型等。,AR模型、MA模型和ARMA模型,从数学逼近的角度来讲,三者之间可以互相转换。估计ARMA或MA模型参数一般需要解一组非线性方程,而估计AR模型通常只需要解一组线性方程,因此,AR模型得到了深入研究和广泛应用。,19.6.1 AR模型功率谱估计,AR模型(又称为自回归模型)是一个全极点模型,可用如下的差分方程表示:,其中,(n),为均值为0,方差为,2,的白噪声序列,p为AR模型的阶数。,19.6.2 Yule-Walker法功率谱估计,在MATLAB中,通过函数aryule()来估计AR模型的参数,该函数的调用格式为:a,e=aryule(data,order),其中x为输入信号,order为AR模型的阶数,a为AR模型的参数,e为方差。,利用函数pyulear()可以估计AR模型的功率谱。该函数首先采样Yule-Walker方法估计AR模型的参数,然后估计功率谱值。,19.6.3 Burg法功率谱估计,在MATLAB中,通过函数arburg()来估计AR模型的参数,该函数的调用格式为:a,e=arburg(data,order),其中x为输入信号,order为AR模型的阶数,a为AR模型的参数,e为方差。,Burg法估计功率谱又称为最大熵谱估计。函数pburg()采用Burg法估计AR模型的功率谱。,19.6.4 协方差法功率谱估计,在MATLAB中,函数arcov()采用协方差方法来估计功率谱,该函数的调用格式为:a,e=arcov(x,p),其中x为输入信号,p为阶数,a为AR模型的系数,e为方差。,函数pcov()采用协方差方法来估计AR模型的功率谱,该函数的调用方式和函数pburg()完全相同。,19.7 子空间法功率谱估计,子空间法功率谱估计是一种现
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!