学习matlab(十七)——信号处理

本文详细介绍了MATLAB中数字信号处理工具箱的应用,包括离散信号处理、信号发生器、采样率调整(低通与高通)、FIR/IIR滤波器设计、窗函数选择、功率谱估计(周期图法与Welch法)等关键概念和函数使用。
摘要由CSDN通过智能技术生成

  数字信号处理是一门非常重要的基础学科。在MATLAB中,信号处理工具箱非常的重要。本章首先介绍了常用的离散信号和信号发生器,接着介绍了如何改变信号的采样率。然后m璧滤波器是用来消除或感弱本明滤波器和IIR滤波器等。滤波器是用来消除或减弱千扰噪声,是信号处理中一个非常重要的课题。最后介绍了功率谱估计,包括非参数模型法、参数模型法和子空间法进行功率谱估计。
  MATLAB的信号处理工具箱提供了大量的函数,包含各种信号处理算法,包括波形产生、数字滤波器、模拟滤波器、线性系统变换、参数建模、线性预测、统计信号处理、倒谱分析和图形用户接口等。
  实际的信号往往是连续的,经过采样和量化以后变为离散的序列。利用MATLAB可以对离散的序列进行分析和处理。可以采用向量来表示一个有限长度的离散序列。

1.函数发生器

  在MATLAB的数字信号处理工具箱中,有多个函数用来产在MATLAB的数字信号处理工具箱中,有多个函数用来产生各种常用的信号波形,例如方波、三角波、脉冲信号等。这些函数如表所示。

函数说明
chirp扫频信号
diricDirichlet函数波形
sawtooth锯齿波或三角波信号
sincsinc函数波形
gausplus高斯调制正弦波形
square方波信号
gmonopuls高斯单脉中
tripuls三角脉冲信号
pulstran脉冲序列
vco压控振荡函数波形
rectpuls矩形脉冲信号

2.调整信号采样频率

<1>降低采样率

  在MATLAB中,函数decimate()通过低通滤波来降低信号的采样率,该函数的调用格式为:

y=decimate(x, r):

  该函数降低信号的采样率,输出信号y的长度是信号x的1/r。默认的滤波器为8阶的ChebyshevlIR低通滤波器.

y=decimate(x, r, n):

  该函数中采用n阶Chebyshev lIR滤波器。

y=decimate(x,r,‘fir’):

  该函数采用30阶FIR滤波器。

y=decimate(x, r,n, 'fir):

  该函数采用n阶FIR滤波器。

<2>提高采样率

  高信号的采样率。函数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, I, alpha):该函数设置滤波器的长度为l,默认为4,截止频率为alpha,alpha默认为0.5.[y, b]=interp(x, r, I, alpha):该函数的返回值b为滤波器的系数。

3. 滤波器

  根据信号的不同特性消除或减弱干扰噪声,提取有用信号的过程称为滤波,而实现滤波功能的系统称为滤波器。经典滤波器从功能上可以分为低通、高通、带通和带阻滤波器,每一种又有模拟滤波器和数字滤波器。对于数字滤波器又分为FIR数字波器和IIR数字滤波器。下面介绍FIR数字滤波器。
  在MATLAB中,可以采用函数wvtool()来查看窗函数的时域和频域波形。该函数的调用格式为:wvtool(winname(n)),其中参数winname为窗函数的名字,n为数据点数:1.矩形窗(Rectangular window)2、汉宁窗(Hanning window)3.海明窗( Hamming window)4、布莱克曼窗(Blackman window)
  在MATLAB的信号处理工具箱中;函数fir1()采用传函数法能够涉及低通、高通、带通、带阻的滤波器,搞算法的基本思想是,假定w(n)为指导的窗函数,理想滤波器的单位冲激响应为h(n),则得到滤波器的系数b(n)=w(n)h(n),其中1≤n≤N.
  在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为频率响应的内插点数。
IIR滤波器,即无限长冲激响应( infinite impulseresponse,lIR)滤波器,它的单位冲激响应是无限长的。设计lIR滤波器,就是寻找滤波器的各个系数 a k a_k ak b k b_k bk,数字滤波器的差分方程为:
在这里插入图片描述
  在MATLAB中,可以通过函数来确定IIR滤波器的最小的阶数。对于巴特沃兹滤波器,阶数的选择函数为buttord( )。对于Chebyshev I型滤波器,阶数的选择函数为cheb1ord( )。对于ChebyshevII型滤波器,阶数的选择函数为cheby2ord( )。对于椭圆滤波器,阶数的选择函数为ellipord().
  功率谱估计是基于有限的数据寻找信号、随机过程或系统的频率成份。它表示随机信号频域的统计特性,有着明显的物理意义,是信号处理的重要研究内容之一。由于实际中得到的随机信号长度总是有限的,用这种有限长度信号所得到的功率谱只是随机信号真实功率谱的一种估计,所以称其为功率谱估计。周期图法、Bartlett法、Welch法、Nuttall法,以及最大嫡谱估计等属于经典功率谱估计,以傅立叶变换为基础。下面介绍周期图法功率谱估计和Welch法功率谱估计。
  周期图法是最简单的非参数模型法,把随机序列×(n)的N个观测数据直接进行离散傅立叶变换,然后.县幅值的平方,并除以N,作为序列x(n)真实功率谱的估计。采用函数periodogram()进行周期图法功率谱估计。
  参数模型谱估计的方法不是直接的进行功率谱的计算,而是假设随机信号服从一个模型。通过有限的数据记录,对信号模型的参数进行估计,通过模型参数得到信号的功率谱。参数模型法功率谱估计包括:AR模型、MA模型和ARMA模型等。AR模型、MA模型和ARMA模型,从数学逼近的角度来讲,三者之间可以互相转换。估计ARMA或MA模型参数一般需要解一组非线性方程,而估计AR模型通常只需要解一组线性方程,因此,AR模型得到了深入研究和广泛应用。
  在MATLAB中,通过函数arburg()来估计AR模型的参数,该函数的调用格式为:[a, e]=arburg(data, order),其中x为输入信号,order为AR模型的阶数,a为AR模型的参数,e为方差。Burg法估计功率谱又称为最大嫡谱估计。函数pburg()采用Burg法估计AR模型的功率谱。
在MATLAB中,函数arcov()采用协方差方法来估计功率谱,该函数的调用格式为:[a, e]=arcov(x, p),其中x为输入信号,p为阶数,a为AR模型的系数,e为方差。函数pcov()采用协方差方法来估计AR模型的功率谱,该函数的调用方式和函数pburg()完全相同。
  MUSIC ( multiple signal classification,MUSIC)是多重信号分类的英文缩写。MUSIC算法功率谱估计,是基于矩阵特征分解的一种非参数模型的现代谱估计方法。MUSIC算法的基本思想使通过特征分解把信号从噪声中分离出来。在MATLAB中,函数pmusic()利用MUSIC算法进行功率谱估计。

  • 5
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值