MATLAB及其在数字信号处理中的应用_第1页
MATLAB及其在数字信号处理中的应用_第2页
MATLAB及其在数字信号处理中的应用_第3页
MATLAB及其在数字信号处理中的应用_第4页
MATLAB及其在数字信号处理中的应用_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE12MATLAB及其在数字信号处理中的应用摘要在科学技术迅速发展的今天,几乎所有的工程技术领域中存在数字信号,对这些信号进行有效处理,以获取我们需要的信息,正有力地推动数字信号处理学科的发展。MATLAB语言由于其语法的简洁性、代码接近自然数学描述方式以及具有丰富的专业函数库等诸多优点,吸引了众多科学研究工作者,越来越成为科学研究、数值计算、建模仿真以及学术交流的事实标准。随着MATLAB/SIMULINK通信、信号处理专业函数库和专业工具箱的成熟,它们在通信理论研究、算法设计、系统设计、建模仿真和性能分析验证等方面的应用也更加广泛。MATLAB软件集数值分析、信号处图形显示于一体,且界面友好、具有强大的专业函数库和工具箱,在数字信号处理的科学研究中越来越重要的计算和仿真验证工具。关键词:MATLAB数字信号处理应用abstractWiththerapiddevelopmentofscienceandtechnology,almostallengineeringtechnologyhaverelationshipwithdigitalsignaltoday.Weshouldtohandlethesesignaleffectively,inordertogettheinformationweneed.Andinthiswaythedevelopmentofdigitalsignalprocessingdisciplineisstronglypromoted.Becauseofitssuccinctgrammarandthecodegetsclosetonatureandmathematicsdescriptionwaywithabundantprofessionalfunctionlibrary,andmanyotheradvantages,MATLABlanguagehasbecameatoolofscientificresearchthatbeusedmoreandmorewidely.Itattractednumerousscientificresearchersandbecamethecriterionoftruthofnumericalcalculations,modelingsimulationandacademicexchange.Withthematureofcommunicationandsignalprocessingprofessionalfunctionlibraryandprofessionaltoolbox,theapplicationofMATLAB/SIMULINKalsomoreextensiveincommunicationtheoryresearch,algorithmdesign,systemdesign,modelingsimulationvalidationandperformanceanalysis.MATLABsoftwaresetnumericalanalysis,signalplacegraphicdisplayatanorganicwhole,andfriendlyinterface.Becauseofitsstrongprofessionalfunctionlibraryandtoolbox,itplaysamoreandmoreimportantroleindigitalsignalprocessingofscientificresearchespeciallythecalculationandsimulationvalidationtool.Keywords:MATLAB,digitalsignalprocessing,applications目录摘要 1abstract 21MATLAB简介 31.1MATLAB的主要组成部分 41.2MATLAB开发环境 52 MATLAB在数字信号处理中的应用 52.1基本信号的表示及可视化 52.2MATLAB在采样与波形发生的应用 72.3MATLAB在数字滤波器中的应用 8参考文献 131MATLAB简介MATLAB是功能强大的科学及计算软件,它不但具有以矩阵计算为基础的强大数学计算和分析功能,而且还具有丰富的可视化图形表现功能和方便的程序设计能力。MATLAB的应用领域极为广泛,除了数学计算和分析外,还被广泛地应用于自动控制、系统仿真、数字信号处理、图形图像分析、数理统计、人工智能、虚拟现实技术、通信工程、金融系统等领域,因此,MATLAB是面向21世纪的计算机程序设计及科学计算语言。1.1MATLAB的主要组成部分MATLAB系统包括5个主要部分:(1)开发环境MATLAB开发环境由一组工具和组件组成,这些工具是图形化的用户界面,包括MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、文件和搜索路径浏览器。(2)MATLAB数学函数库MATLAB集成了丰富的数学函数库,其强大的计算能力覆盖了从基本函数(如求和、正弦、余弦和复数运算等)到高级函数(如矩阵求逆、矩阵特征值、贝塞尔函数和快速傅立叶变换等)的范围。(3)MATLAB语言MATLAB语言是一种以矩阵运算为基础的高级语言,包括控制流的描述、函数、数据结构、输入输出及面向对象的编程环境,既可以编制快速使用小程序,也可以编制大型复杂的应用程序。(4)图形功能MATLAB提供了功能强大的图形系统,既可以用高级命令完成二维和三维数据的可视化、图像处理、动画和图形表达等功能,也可以通过使用图形句柄完成复杂的图形功能,实现对所有图形对象的操作。(5)应用程序接口(API)MATLAB还提供了应用程序接口库函数,允许用户使用C或FORTRAN语言编写程序与MATLAB连接,功能包括与MATLAB的动态连接、调用MATLAB作为运算引擎、读写MAT文件等。MATLAB的广泛应用促进了其本身功能的迅速发展,以特定领域的应用为主要目的的应用程序——工具箱的数量和内容在不断增多。1.2MATLAB开发环境启动MATLAB后,将显示包括命令窗口(CommandWindow)、工作空间窗口(Workspace)、命令历史窗口(CommandHistory)和当前路径窗口(CurrentDirectory)等四个窗口和主菜单组成的操作桌面(图1.1)。操作桌面缺省状态下显示三个窗口,工作空间和当前路径窗口在同一位置显示,可以通过该窗口下方的箭头或窗口标签来切换。图1.1操作桌面MATLAB在数字信号处理中的应用2.1基本信号的表示及可视化数字信号处理的基础是离散信号及离散系统,在MATLAB中可直观快速进行离散信号的显示与运算。用MATLAB表示一离散序列x[k]时,可用两个向量来表示。其中一个向量表示自变量k的取值范围,另一个向量表示序列x[k]的值,在命令窗口直接输入表示两个向量的命令语句即可。例如利用MATLAB表示单位脉冲序列δ[k-2]在-4≤k≤4范围内各点的取值,可在命令窗口输入如下语句:k=[-4:4];%确定k的取值范围x=[(k-2)==0];%当(k-n)为0时x的值为1,否则x的值为0stem(k,x);%建立坐标系,作图xlabel(‘k’);%在X轴添加标签:k程序产生的序列波形如图2.1所示。图2.1MATLAB产生的单位脉冲序列δ[k-2]在-4≤k≤4的图形又如生成余弦序列x[n]=cos(0.02πn),其中n的取值范围是[0,100],可在命令窗口直接输入如下命令语句:n=0:2:100;%确定自变量n的取值范围x=cos(0.02*pi*n);stem(x)%作图xlabel(‘n’);%在X轴添加标签:n程序产生的波形如图2.2所示图2.2余弦序列x[n]=cos(0.02πn)的图像另外,MATLAB的工具箱中还提供了大量的信号产生函数,例如:sawtooth(产生锯齿波或三角波信号)、square(产生方波信号)、chirp(产生调谐余弦信号)、gauspuls(产生高斯正弦脉冲信号)等等,调用这些函数可以方便地生成多种复杂信号。2.2MATLAB在采样与波形发生的应用数字信号处理的对象,是在采样时钟的控制之下,通过A/D转换器一定的采样频率对模拟信号进行采样得到的。根据采样定理,采样率必须大于模拟信号的最高采样率(Nyquist频率)的2倍。但是在许多情况下,要求信号以不同的频率采样,改变采样时钟虽然可行,但是并不可取。这时需要对采样数据进行处理:或者用抽取的方法降低其采样率(下采样);或者用内插的方法提高其采样率(上采样);或者两者兼有之(重采样)。在程序设计阶段,为了对程序进行调试或验证算法的正确性,需要一些特性已知的信号(简单的如正弦、方波、三角波等),所以可以由Matlab提供一些波形产生函数。例如在上节中提到的方波发生器square()、锯齿波和三角波发生器sawtooth()等。此外,对于采样处理,MATLAB也提供了一些简单的处理函数,例如函数resample()可用于改变信号的采样率、函数decimat()用于经低通滤波后信号的下采样以及函数interp()用于经低通滤波后信号的上采样等等。例如:要产生一频率为10kHz的周期高斯脉冲信号,其带宽为50%。脉冲重复的频率为1kHz,采样率为50kHz,脉冲序列的长度为10ms。重复时幅度每次衰减为原来的0.8倍。可在MATLAB的命令窗口直接输入如下命令语句:t=0:1/50e3:10e-3;%确定时间范围及步长d=[0:1/1e3:10e-3;0.8.^(0:10)]';y=pulstran(t,d,'gauspuls',10e3,0.5);%对连续函数进行采样而得到脉冲序列plot(t,y);%作图xlabel('时间/s');%给X轴加标签“时间/s”ylabel('幅值')%给Y轴加标签“幅值”程序产生的波形如图2.3所示。图2.3周期高斯脉冲信号2.3MATLAB在数字滤波器中的应用滤波器是指用来对输入信号进行滤波的硬件或软件。如果滤波器的输入、输出都是离散时间信号,则该滤波器冲击响应也必然是离散的,这样的滤波器定义为数字滤波器。数字滤波器用硬件实现的基本部件包括延迟器、乘法器和加法器;如果用软件来实现时,它即是一段线性卷积程序。软件实现的优点是系统函数具有可变性,仅依赖于算法结构,而且易于获得较理想的滤波功能。MATLAB的信号处理工具箱的两个基本组成就是滤波器的设计与实现以及谱分析。工具箱提供了丰富而简便的设计、实现FIR和IIR的方法,使原来繁琐的程序设计简化成函数调用,特别是滤波器的表达方式和形式之间的相互转换显得十分简便,为滤波器的设计和实现开辟了一片广阔的天地。数字滤波器从功能上分类,可分为低通滤波器、高通滤波器、带通滤波器、带阻滤波器。从滤波器的网络结构或者从单位脉冲响应分类,可分为IIR滤波器(即无限长单位冲击响应滤波器)和FIR滤波器(即有限长单位冲击响应滤波器)。IIR滤波器和FIR滤波器的设计方法有很多不同之处,IIR滤波器设计方法有两类,经常用到的一类设计方法是借助于模拟滤波器的设计方法进行的。其设计思路是:先设计模拟滤波器得到传输函数H(s),然后将H(s)按某种方法转换成数字滤波器的系统函数H(z)。这类方法是基于模拟滤波器的设计方法比较成熟的情况下,它不仅有完整的设计公式,也有完整的图表供查阅。更可以直接调用MATLAB中的对应的函数进行设计。另一类是直接在频域或者时域中进行设计的,设计时必须用计算机作辅助设计,直接调用MATLAB中的一些程序或者函数可以很方便地设计出所需要的滤波器。FIR滤波器不能采用由模拟滤波器的设计进行转换的方法。经常用的是窗函数法和频率采样法。也可以借助计算机辅助设计软件采用切比雪夫等波逼近法进行设计。对于每种滤波器的设计,方法也不尽相同,在此不予赘述,可查阅相关参考文献。下面,对于IIR滤波器和FIR滤波器的设计各举一例以说明。例一:利用Butterworth低通滤波器及脉冲响应不变法设计满足下列指标的数字滤波器Ωp=0.1πrad,Ωs=0.4πrad,Ap≤1dB,As≥25dB解:设计满足上述指标数字滤波器的MATLAB程序如下:%DFBWLP指标Wp=0.1*pi;Ws=0.4*pi;Ap=1;As=25;Fs=1;%抽样频率(Hz)%确定模拟BW指标Wp=WP*Fs;Ws=Ws*Fs;%确定AF阶数N=buttord(Wp,Ws,Ap,As,’s’);%由通带指标确定3-dB截频Wc=Wp/(10^(0.1*Ap)-1)^(1/2/N);%确定BWAF[numa,dena]=butter(N,Wc,’s’);%确定DF[numd,dend]=impinvar(numa,dena,Fs);w=linspace(0,pi,512);h=freqz(numd,dend,w);%幅度归一化DF的幅度响应norm=max(abs(h));numd=numd/norm;plot(w/pi,20*log10(abs(h)/norm));grid;xlabel(‘Normalizedfrequency’);ylabel(‘Gain,dB’);disp(‘Numeratorploynomial’);fprintf(‘%.4e\n’,numd);disp(‘Denominatorploynomial’);fprintf(‘%.4e\n’,dend);%计算Ap和AsW=[WpWs];h=freqz(numd,dend,w);fprintf(‘Ap=%.4f\n’,-20*log10(abs(h(1))));fprintf(‘As=%.4f\n’,-20*log10(abs(h(2))));运行结果为Numeratorploynomial0.0000e+0002.3231e-0021.7880e-0020.0000e+000Denominatorploynomial1.0000e+000-2.2230e+0001.7193e+000-4.5520e-001Ap=0.0000As=0.0000该数字滤波器的增益响应如图2.4所示。图2.4例一数字滤波器的增益响应例二:试用Kaiser窗设计满足下列指标的FIR高通滤波器Ωp=0.4πrad,Ωs=0.6πrad,δs=0.01解:设计满足上述指标数字滤波器的MATLAB程序如下:%Kaiser窗设计FIR高通滤波器Rs=0.01;f=[0.4,0.6];a=[0,1];dev=Rs*ones(1,length(a));[M,Wc,beta,ftype]=kaiserord(f,a,dev);%使滤波器为Ⅰ型M=mod(M,2)+M;h=fir1(M,Wc,ftype,kaiser(M+1,beta));omega=linspace(0,pi,512);mag=freqz(h,[1],omega);plot(omega/pi,20*log10(abs(mag)));xlabel('Normalizedfrequency');ylabel('Gain,dB');grid;图2.5画出了所设计的FIR高通滤波器的增益响应。图2.5例二所设计的FIR高通滤波器的增益响应参考文献[1].陈德树.计算机继电保护原理与技术【M】北京:水利电力出版社,1992.[2].蒋志凯.数字滤波与卡尔曼滤波【M】北京:中国科学技术出版社,1993[3].楼顺天、李博菡.基于MATLAB的系统分析与设计-信号处理【M】西安:西安电子科技大学出版社,1998.[4].胡广书.数字信号处理:理论、算法与实现【M】.北京:清华大学出版社,1997.[5].蒙以正.MATLAB5.X应用与技巧【M】北京:科学出版社,1999.[6].邵玉斌.Matlab/Sinmulink通信系统建模与仿真实例分析【M】北京:清华大学出版社,2008[7].陈后金.数字信号处理【M】北京:高等教育出版社,2004[8].李海涛、邓樱.MATLAB程序设计教程【M】北京:高等教育出版社,2002[9].Samsi,Siddharth1;Gadepally,Vijay2;Krishnamurthy,Ashok.MATLABforsignalprocessingonmultiprocessorsandmulticores.InstituteofElectricalandElectronicsEngineersInc.,March2010[10].DaiF,HYPERLINK"/DaisyOneClickSearch.do?product=WOS&search_mode=DaisyOneClickSearch&db_id=&SID=3Da

温馨提示

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

评论

0/150

提交评论