姚力波, 刘 瑜, 董 凯, 熊 伟
(海军航空工程学院 信息融合研究所, 山东 烟台 264001)
基于矩阵理论的“数字信号处理”教学研究
姚力波, 刘 瑜, 董 凯, 熊 伟
(海军航空工程学院 信息融合研究所, 山东 烟台 264001)
本文从矩阵理论的角度出发,分析数字信号及其处理,研究了离散傅立叶变换和数字滤波器的矩阵表示,通过分析得出,矩阵理论是“数字信号处理”课程最基础的数学理论,向量和矩阵能够更有效地表达数字信号及其处理,更有利于数字信号的分析。最后结合Matlab编程语言,给出了数字信号及其处理的矩阵表示和编程方法示例。
数字信号处理;矩阵理论;Matlab
“数字信号处理”课程是一门电子信息工程、通信工程、测控仪器、计算机等本科专业必修的基础课程,同时也是上述专业研究生入学考试的专业考核基础课程之一[1]。
“数字信号处理”是在“线性代数”、“信号与系统”等课程之后,在“现代数字信号处理”、“数字图像处理”等课程之前开设的,具有极强的理论性和技术性,其显著的特点是概念抽象繁多,公式证明繁琐。
传统的“数字信号处理”教学是以傅立叶变换和采样定理为出发点,推导建立起数字信号处理的理论体系,虽然以数学变换为主线讲解,但对于数字信号处理的数学理论基础讨论较少,不利于此后进一步学习小波变换、多维数字信号处理等现代数字信号处理。同时,由于采用公式推导的方式讲解,计算结果是以解析式的方式给出,不利于与Matlab等软件编程进行结合教学。
本文从矩阵理论角度出发,分析数字信号、数字信号处理的矩阵理论基础,并结合Matlab编程软件,将先修的“线性代数”相关知识引入到“数字信号处理”课程教学中,使学生更加容易系统地理解数字信号处理的数学基础和物理意义,提高学生对数字信号处理的理论认识水平和实际设计能力。
1.1数字信号的矩阵分析
实际生活和工作中的信号大部分是模拟信号,数字信号处理则是采用专用数字信号处理芯片或者通用计算机来实现,其计算基础是布尔代数,处理对象是数字信号。因此,无论是一维的语音信号,还是二维的图像信号,或是阵列接收的多维信号,都必须先通过模数(A/D)转换器转换为数字信号,经过A/D转换后的数据都是二进制表示的数字信号,并且以向量或者矩阵的形式存储和处理的。
矩阵理论研究的对象之一是线性空间,线性空间是对集合的元素在线性运算方面所表现出来的共性加以概括而形成的概念,其元素可以是数学对象(如函数),也可以是物理对象(如力、速度)等。数字信号处理的对象是采样数字化后形成的以向量或矩阵形式表示的有限长度的数字信号,此类数字信号所属的元素集合及其加法、数乘运算也满足线性空间的要求,构成一个有限维线性空间[2]。
1.2数字信号处理的矩阵分析
“数字信号处理”课程的核心内容是离散傅立叶变换DFT(Discrete Fourier Transform)和数字滤波器设计,DFT也可以看作一种数字滤波器,数字滤波器通常是离散线性移不变LSI系统,其基本运算是相乘和卷积。假设数字滤波器的单位冲激响应h(n),其长度为N,输入信号x(n),其长度为M,输出信号y(n),长度为L,数字滤波器时域计算公式为[3]
(1)
用向量和矩阵形式可以表示为
y=xH
(2)
其中:
x=[x(0)x(1) …x(M-1)]
(3)
y=[y(0)y(1) …y(L-1)]
(4)
y(n)的下标区间为0≤n≤N+M-2,因此,可以推导出L=N+M-1。
(5)
由上式可见,H共有M行,L+M-1列,是一个Toeplitz矩阵,其各行依次等于前一行右移一个位置补零形成,平行于主对角线的各对角线元素相同。
矩阵理论另一个研究对象是线性映射,线性映射研究线性空间之间的关系。线性映射满足可加性和齐次性,线性空间上的线性映射可以用具体的矩阵来处理。“数字信号处理”课程讲解的数字滤波器满足可加性、齐次性和移不变性。以一维数字滤波器为例,如果滤波器处理的是复数信号,则输入信号x(n)是一个M维复数向量,输出信号y(n)是一个L维复数向量,即x(n)CM,y(n)CL,数字滤波器时域运算可以看作是由线性空间CM到线性空间CL的一个线性映射,该线性映射对应的映射矩阵为HCM×L,通过研究该映射矩阵的数学特性能够对应描述该数字滤波器的特性。
离散傅立叶变换DFT既可以从线性映射的角度分析,也可以从线性空间的角度进行分析。以N点有限长一维数字信号x(n)为例,其N点DFT变化公式为[4]
(6)
用向量和矩阵形式可以表示为
X=WNx
(7)
其中:
x=[x(0)x(1) …x(N-1)]T
(8)
X=[X(0)X(1) …X(N-1)]T
(9)
(10)
可以看出,X是WN列向量的线性组合,其坐标系数为x。
类似的,数字信号处理中的卷积、相关、相乘等运算都可以在矩阵理论中找到其数学理论基础。因此,数字信号处理的本质就是数学意义上的映射(变换),线性映射又可以用矩阵理论知识来研究。
“数字信号处理”课程既需要严密数学理论推导,同时其处理和分析的实现也需要大量计算才能实现。Matlab编程软件以矩阵运算为基础,拥有强大的矩阵运算能力,具有算法开发、数据可视化、数据分析、数值计算和系统模拟等功能,已经成为本科生和研究生必须掌握的一项基本能力,是高校教学应用的重要软件工具。下面以Matlab为编程环境,对基于矩阵理论的数字信号生成和处理进行仿真设计和分析。
2.1基于Matlab的矩阵信号表示
模拟信号经过采样后,形成一个有限长序列,如果满足采样定理,即采样频率大于模拟信号中最高频率成分的两倍,就能够保证采样后信号不失真。因此,通常数字信号处理的研究对象是有限长序列,可以用一个向量来表示,但是向量并没有包含采样位置的信息。因此,完全表示数字信号x(n)需要x和n两个向量,如果其长度为N,则0≤n≤N-1,而Matlab中变量下标从1开始,1≤n≤N。
例如长度N=4,起始下标n=-1的矩形序列可以表示为
x=[1,1,1,1];n=[-1,0,1,2]
(11)
2.2基于Matlab的矩阵信号运算
Matlab即“矩阵实验室”,是以矩阵为基本运算单元,直接处理向量或矩阵。Matlab中矩阵或者向量可以直接按行方式输入每个元素,并且提供了许多生成向量和矩阵的函数,例如linspace、sym、zeros、eye、ones、rand、logspace等函数。Matlab还提供了信号处理工具箱,包括数字信号分析、IIR数字滤波器设计、FIR数字滤波器设计、窗函数等,并且提供了图形可视化等用户接口[5]。
以一维数字信号x(n)离散傅立叶变换计算为例,相关矩阵Matlab计算如下:
t=linspace(1e-3,100e-3,10)%s时间序列
xn=sin(100*2*pi*t)%生成信号序列
N=length(xn)%计算序列长度
WNnk=dftmtx(N)%计算DFT系数矩阵
Xk=xn(N)*WNnk%计算DFT
可见,结合矩阵理论和Matlab能够清晰展示数字信号处理概念、性质的物理意义,并且帮助学生摆脱繁琐的数值计算,更加关注数字信号处理的方法和应用。
“数字信号处理”课程培养学生理论理解和实践分析两方面的能力,综合性较强。本文从矩阵理论的角度,对“数字信号处理”课程的教学提出了建议和方法,通过分析得出,矩阵理论是数字信号处理最基础的数学理论,向量和矩阵能够更有效地表达数字信号及其处理,更有利于数字信号的分析,更适合于运用Matlab进行程序设计和实现。
[1] 邱关源, 罗先觉主编. 电路(第四版)[M]. 北京: 高等教育出版社, 1999年6月.
[2] 张贤达. 矩阵分析与应用[M]. 北京:清华大学出版社,2013年.
[3] 程佩青. 数字信号处理(第四版)[M]. 北京:清华大学出版社,2013年.
[4] 陈怀琛. 数字信号处理教程-Matlab释义与实现[M]. 北京:电子工业出版社,2004年.
[5]罗军会,罗永江,白义臣等. Matlab7.0在数字信号处理中的应用[M]. 北京:机械工业出版社,2005年.
TheTeachingResearchofDigitalSignalProcessingBasedonMatrixTheory
YAOLi-bo,LIUYu,DONGKai,XIONGWei
(InstituteofInformationFusion,NavalAeronauticalandAstronauticalUniversity,Yantai264001,China)
This paper analyzes digital signal processing using matrix theory and studies the representation of DFT (Discrete Fourier Transform ) and digital filter using matrix (vector) form. Matrix theory is the mathematic fundamental of Digital Signal Processing course. The representation of digital signal using matrix (vector) form is more efficient for digital signal analysis and programming design. In the end, the representation of digital signal and its′ processing is designed using Matlab.
digital signal processing; matrix theory; Matlab
2016-09-27;
2017-01-08
姚力波(1980-),男,博士,讲师,主要从事卫星遥感数据处理、信息融合研究工作,E-mail:yirujiwang0511@gmail.com
G642.0
A
1008-0686(2017)05-0097-03