1
第5章  MATLAB 信号处理基础知识
在前面的章节中,我们对MATLAB R2007a 的基本知识作了详细的介绍,目的是让读者对MA TLAB 的应用环境以及基本功能有个初步的了解。随着MATLAB 版本不断升级,其功能日益强大,应用范围更是日益广泛,覆盖了工业、电子、医疗、建筑等众多领域。特别是MATLAB 主要用于矩阵运算,在数据分析、信号处理、自动控制等方面具有非常强大的功能,已成为科研人员和工程技术人员必不可少的工具之一。
从本章开始,我们将介绍MATLAB 在特定领域内的应用。数字信号处理是当前的热门学科之一,相应的MATLAB R2007a 所提供的信号处理工具箱则对该方面的研究提供了非常全面的支持。本章将基于信号处理工具箱,介绍MATLAB 信号处理的基础知识,包括信号处理工具箱的简介、信号表示方法、数据读入方式、一些典型的离散序列和常用波形如何产生等内容。
熟悉信号处理工具箱的基本功能和特性 ❒
掌握信号的表示方法和数据的读入方式 ❒
掌握几种典型的离散序列 ❒ 掌握常用波形发生器
❒ 分别生成单位抽样序列()0δ和()5δ。
❒ 分别生成单位阶跃序列()0u 和()5u 。
❒ 生成正弦型序列()8/sin n π。
❒ 分别生成实指数序列()n 4/3和()n 3/4。用subplot函数
❒ 生成复指数序列()n j e 6/05.0π+。
❒ 产生均值为0.5,方差为0.1的白噪声序列。
❒ 将实指数序列()n 4/3扩展为具有3个周期的序列。
❒ 生成一个方波信号,要求正信号所占百分比为60%。
❒ 生成0.5s 的锯齿波和三角波信号,频率都为10Hz ,采样频率为10kHz 。
❒ 已知输入变量x ,生成sinc 函数波形。
学习目标 练习案例
第5章MATLAB信号处理基础知识
2❒生成一个线性扫频信号。
❒产生一个二次型扫频信号,要求二次型扫频信号频谱为凹状。
❒绘出狄立克莱(Dirichlet)函数图形。
❒绘出中心频率为50kHz的高斯正弦脉冲,要求相对带宽60%,包络下降到峰值的40dB之下。
❒分别产生一个对称的和一个非对称的三角脉冲。
❒产生一个矩形脉冲,要求脉冲宽度为2s。
❒产生一个锯齿形脉冲序列,要求重复频率为3Hz,锯齿宽度0.1s,信号总长度1s,采样频率1kHz。
❒产生一个幅度递减的高斯脉冲序列,每个脉冲的中心频率10kHz,带宽40%,脉冲重复频率为1kHz,采样率50kHz,脉冲序列长度为10ms,脉冲幅度每次递减0.8。
❒假设一个输入信号为三角波,绘出该信号经压控振荡器的输出波形,已知采样频率10kHz。
5.1 信号处理工具箱简介
MATLAB工具箱中包含了许多用于解决具体问题的应用程序专用M文件,而信号处理工具箱则包含了许多执行信号处理算法的函数,如滤波器设计与实现、频谱分析、加窗、转换等等。本节将简要介绍一下信号处理工具箱的基本情况。
5.1.1  什么是信号处理工具箱
信号处理工具箱(Signal Processing Toolbox)是基于MATLAB数值计算环境的一系列工具(函数)的集合。工具箱支持各种形式的信号处理操作,从波形产生到滤波器设计和实现、参数建模和谱分析等等。工具箱提供了两大类工具:命令行函数和图形用户界面(GUI),其中命令行函数主要应用于以下几个方面:
❒离散时间滤波器设计、分析和实现
❒模拟滤波器设计、分析和实现
❒线性系统变换
❒窗函数
❒谱分析和倒谱分析(cepstral analysis)
❒变换(transforms)
❒统计信号处理
❒参数建模
❒线性预测
❒多速率信号处理
❒波形产生
而交互式的图形用户界面主要应用于:
❒滤波器设计和分析
5.1 信号处理工具箱简介
3 ❒窗函数设计和分析
❒信号作图和分析
❒谱分析
❒滤波处理
5.1.2  信号的表示方法
在MATLAB环境中,大部分数据都是以数值阵列的形式表示,即将一组实数或虚数按一定顺序排列在两维或更多维空间内。因而采集到的基本信号(包括一维信号或序列、多通道信号、二维信号等)都要表示成阵列的形式。
对于一维采样信号或序列,在MATLAB中用向量表示。所谓向量是1×n或n×1的阵列,这里n是序列的采样值个数。引入一个序列的方法之一是在命令提示符后输入一列元素。例如:
x = [5 3 8 -6 0 7]
这条语句产生了一个简单的行向量,该向量由6个实数组成的序列构成。转置变换就会将该序列变成一个列向量:
x = x'
结果为:
x =
5
3
8
-6
7
对于单通道信号而言,最好采用列向量进行表示,这是因为列向量较易扩展到多通道。对于多通道数据而言,一个矩阵中的每一列都对应于一个通道,而矩阵中的每一行对应于一组采样点。一个包含x、2x和x/2的三通道信号可以表示为
y = [x 2*x x/2]
将上面的x值代入,得到结果:
y =
5.0000 10.0000    2.5000
3.0000    6.0000    1.5000
8.0000 16.0000    4.0000
-6.0000 -12.0000 -3.0000
0.0000 0.0000 0.0000
7.0000 14.0000    3.5000
第5章MATLAB信号处理基础知识
5.1.3  数据的读入方式
●在MATLAB工作环境内读入
在后续章节当中的一些具体范例,数据的获取一般通过以下两种方式:
❒直接输入,即在键盘上手动输入数据;
❒利用MATLAB或工具箱函数,例如sin、cos、sawtooth、square等等;
●在MATLAB工作环读入
在某些应用场合,可能需要从MA TLAB工作环境之外输入。根据数据的格式,可以采用以下几种方法读入:
❒利用MATLAB的‚load‛命令,从ASCII文件或MAT文件中加载数据,该函数的使用方法已在第二章中给出介绍,这里不再赘述;
❒利用一个低层文件I/O函数将数据读入MATLAB,例如‚fopen,fread,fscanf‛等;
❒开发一个MEX文件来读取数据;
●将数据转换为MAT文件
也可利用其他资源读入数据,例如高级程序语言(Fortran或者C等)可将数据写成MAT 文件形式,再用MA TLAB“load”命令读取。
提示:信号处理工具箱仅支持双精度输入。如果输入单精度浮点型或整数型数据,将得不到正确的结果。将滤波器设计工具箱与定点工具箱联合使用,可使单精度浮点和定点类型数据能够用于滤波处理及滤波器设计。
5.1.4  工具箱的核心功能
信号处理工具箱函数大部分是一些以M文件表示的算法,能够实现多种信号处理功能。这些函数是在MATLAB计算与制图环境之外的专门用于信号处理领域的功能扩展。
●信号与系统
工具箱函数所处理的基本实体是信号和系统。这些函数专门用于处理数字(或离散)信号,而非模拟(或连续)信号。工具箱支持的主要滤波器类型是单输入单输出的线性非时变滤波器。可以利用一个
或几个模型(例如传递函数、状态空间、零极点增益等)来表示线性时不变系统,当然,这些不同表达形式之间可以进行相互转换。
●滤波器设计分析与实现
信号处理工具箱提供滤波器设计功能,即按照特定需求,使用者可以自行设计滤波器。工具箱中包含的滤波器设计功能主要包括FIR和IIR滤波器设计分析和实现、滤波阶数估计、模拟滤波器原型设计与转换等。
●线性系统转换
工具箱拥有大量的转换函数,包括二次剖面、状态空间、零极点、网格或梯形函数、以及传递函数之间的转换等。
●窗函数
4
5.2 典型离散序列
5 工具箱提供了许多常用的窗函数,同时也提供了图形用户界面(GUI)以便于查看和比较这些窗函数,以及利用这些窗函数设计滤波器。
●谱分析
采用参量和非参量方法,工具箱函数可用于估计功率谱密度、均方谱和伪谱。工具箱中包含的一些谱分析方法有Burg法、协方差法、特征向量法、周期图法、Welch和Yule-Walker 法等等。其他的函数可用于计算功率谱密度平均能量和单边谱,以及将DC分量移动到谱中心位置等功能。
●变换函数
工具箱包含各种类型的变换和逆变换函数,包括傅立叶变换、Z变换、离散余弦变换、希尔伯特变换等二次剖面、状态空间、零极点、网格或梯形函数、以及传递函数之间的转换等。
●统计信号处理
工具箱包含计算相关、互相关、协方差和自相关等统计信息的函数。
●参数建模
工具箱提供了一些用于自回归参数建模的方法,有:Burg法、协方差法、Y ule-Walker 法等,同时也提供了一些函数用于拟合模拟滤波器或离散时间滤波器的频率响应。
●线性预测
工具箱包含了一些函数用于计算线性预测系数,以及自相关函数与预测多项式、反射系数和线谱频率之间的转换。
●多速率信号处理
抽取、增降采样、重采样和三次样条插值等多速率信号处理功能,在工具箱中也有相应函数来实现。
●波形产生
多种周期和非周期波形也可用工具箱中的相应函数来产生,包括线性调频脉冲、高斯射频脉冲、高斯单脉冲、脉冲串、矩形波、三角波、锯齿波、方波等等。
●其他功能
工具箱函数除了能够实现以上各种功能之外,还包括倒谱分析、调制、解调,以及各种绘图方法。
5.2 典型离散序列
在实际中的信号往往是连续的,经过采样和量化之后就变成离散的序列,才可送入计算机或数字滤波器进行处理,因此,我们这里关注的都是离散序列,或者说MATLAB处理的都是离散序列。首先给出一些常用的、比较典型的离散序列信号形式。
5.2.1  单位抽样序列
单位抽样序列的定义为
()
=
=
1
n
n
n
δ

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。