MATLAB在数字信号处理中的应用

  • 投稿
  • 更新时间2018-06-23
  • 阅读量4次
  • 评分0
  • 0
  • 0

  随着我国的科学技术水平进一步提高,诸多领域都应用到了数字信号,对信号的处理以及获得有价值的信息,都能促进应用领域的发展,对数字信号处理学科的进一步发展也有着促进作用。通过对MATLAB的应用,能提高对数字信号处理的质量和效率,这也是对现代数字电子技术发展基础。本文先就MATLAB的应用优势和数字信号处理算法理论简要阐述,然后对基于MATLAB的数字信号处理平台架构和处理目标详细分析,最后对数字信号处理中MATLAB的应用进行探究。希冀能通过此次理论研究,对数字信号处理中MATLAB的应用效率提高起到促进作用。


  【关键词】数字信号MATLAB应用


  MATLAB是当前比较流行的工程类交互式可视化应用软件,有着比较先进的计算环境和算法,对数字信号处理以及数值分析等,都能发挥积极重要作用。MATLAB计算软件的功能比较强大,用户操作界面也比较大方,对多种硬件平台数学计算应用软件适应,所以在应用的价值层面也比较突出。


  1MATLAB的应用优势和系统结构组成


  1.1MATLAB的应用优势体现


  1.1.1高效的编程效率优势


  MATLA主要是应用于商业的数学软件,也是当前比较流行的数学软件,对数据分析以及可视化和算法的开发能发挥积极作用。主要分成MATLAB和Simulink重要部分。这一软件的功能优势比较突出,如链接库模块的封装,以及通过逻辑表达式控制有效变量,CommunicationsSystemToolboSphere解码器和Constellation框图系统对象等,MATLAB软件都支持。从对MATLAB的应用情况来看,其自身也有着鲜明的优势,高效编程效率是比较突出的。MATLAB应用软件流程控制语句和C语言相比较比较简单,在运算表达上也比较灵活,这对初学者的学习效率提高就有着保障,并且也比较方便修改等。


  1.1.2优化的人机界面优势


  MATLAB应用软件的优势还体现在人机界面层面,其桌面环境集成了命令窗口以及工作空间浏览器等界面内容,能够为用户提供良好文字处理功能。这一优化的人机界面和接近数学表达式的自然化语言,对使用者的学习效率提高和快速的掌握就提供了条件。对专门领域也开发了强大功能的模块集以及工具箱,应用评估就不用自己编写代码,工具箱中的模块应用也比较方便。


  1.1.3处理能力优越优势


  MATLAB应用软件包含着诸多计算算法集合,这就为数字处理工作的开展提供了保障。有六千多工程中的数学运算函数都囊括其中,所以在计算处理的能力是比较强大的。函数所使用的算法也是科研以及工程计算的最新研究成果,经过容错处理以及优化处理,就能代替底层编辑语言,常见的有C语言和C++语言等。从简单函数到复杂函数都包含其中,能进行多维数组的操作和建模仿真等。


  1.1.4图形处理和扩展优势


  MATLAB应用软件在图形处理能力上比较突出,能方便数据可视化,能把向量以及矩阵通过图形进行表现,并进行二维或者是三维的可视化。这样在科学计算以及工程绘图当中就能发挥很大促进作用。图形功能的逐渐完善下,也有着特殊要求,如图形对话等,这些都能通过MATLAB应用软件加以实现。另外,对于MATLAB软件的可扩展性强的优势也表现比较突出,允许用户开发某一应用领域第三方工具箱等。这些优势的体现就使得MATLAB应用软件的应用范围比较广泛。


  1.2MATLAB系统结构组成


  1.2.1开发环境系统


  MATLAB系统结构是多个子系统构成的,开发环境是比较重要的组成部分。这是方便用户使用的函数以及文件工具集,诸多工具是图形化用户的借口,是集成用户工作空间,能有效提供M文件集成编译以及调试环境。其中包含的内容比较多样,如命令窗口以及在线帮助文档等诸多的内容。


  1.2.2语言系统


  MATLAB系统组成中的语言是比较关键的部分,这是高级的基于矩阵的语言,程序流控制以及函数等都是其比较有特色的特征,通过这一矩阵或者数组的语言方式,对迅速建立简单运行快的程序就有着积极作用,不仅如此,也能建立复杂程序。


  1.2.3应用程序接口系统


  MATLAB应用软件的应用程序接口组成部分,这是使得MATLAB语言和其他高级编程语言交互的函数数据库,在动态链接库的应用下能有效实现文件数据交换。


  1.2.4图形处理系统


  这一子系统主要就是实现矩阵以及向量的图形化呈现,以及标注和打印等。


  2基于MATLAB的数字信号处理算法理论和平台架构


  2.1数字信号处理算法理论简述


  数字信号的处理过程中,通过对MATLAB软件的应用就能发挥积极作用,对数字信号处理的探讨,先对算法处理理论基础进行简要的阐述,以便更好的理解数字信号处理的价值。先是对滤波器方案的选择,滤波是信号处理的基础,信号当中都会带有无用的信号,滤波器就能够把信号当中干扰的部分进行清理,然后对有价值的信号加以筛选,结合数字滤波器单位脉冲响应的时域特性,就能把数字滤波器分成不同的类型,有FIR有限长冲击响应滤波器以IIR无限长冲击响应滤波器,前者系统函数极点位于原点,通过较高阶数能实现优良选择,成本就比较大。后者可低阶数实现较好选频特性,存储单元也相对少。


  对数字滤波实现的方法就要运用到相应算法,其中的FFT算法是比较常用的,实际数字信号处理算法以及系数分析和设计实现当中,DFT发挥着关键性作用。DFD是可计算变换,对其进行改善需要对WNnk周期性以及对称性加以利用。其算法主要原理就是把单长度为N序列离散傅里叶变换,分解成短序列离散傅里叶变化进行计算。把序列分成N2長度为N1小序列,通过对小N1点的利用,组成大DFT。这样就能将编号中的n以及k编成如下算法式:2.1基于MATLAB的数字信号处理平台架构


  数字信号的处理过程中,对MATLAB软件的应用能大大提高处理效率。MATLAB数字信号处理平台的构架(如图1所示)。是对USB数据采集卡传输到上位机数据的数字信号处理,进行换算成集装箱堆高数据,并在GUI界面进行显示。MATLAB软件的应用在数字信号处理中不能对USB接口直接数据操作,为能获得原始数据,就要通过M文件作为主要程序接口,从而实现数据信号的读写操作,对数字信号实时处理。处理中通过调用数字信号处理函数来对多通道数据分别处理,设置数字信号处理参数,最后将结果输出。进行数据获得的时候,主要是调用M文件来接收USB接口传输数据。M文件是动态链接子程序,被多种硬件接口控制,能实现MATLAB功能实现部分调用。而其编译的环境主要是通过C++语言设计的,主要的配置如在Linker选项下附加库目录中加入MATLAB的\extern\lib/win32\microsoft路径。


  入口程序以及文件控制实现方面,其入口程序主要提供MATLAB和M控制实现部分软件接口,入口函数有几个重要参数nrhs,prhs,nlhs,plhs。此次设计当中物输入参数,故此该数列是空。而在控制实现层面主要是进行调用USB驱动模块,将USB设备打开之后对其发送控制命令实施数据读取,然后把读取数据写入缓冲区当中。主要的流程就是先进行创建USB设备对象,然后调用VendorlD,ProductID等函数获得对象信息,监测设备是不是连接上位机成功,对open函数进行调用,并打开USB设备,接着对ControlEndPt函数进行调用创建控制端点对象,设置其属性向设备发送VenderCMD进行存储采样数据。进行创建初始大小数组,把采样数据存入缓冲区数组当中。


  3数字信号处理中MATLAB的应用


  对数字信号的处理过程中,采用MATLAB软件主要就是获得多通道采样数据,并对数字信号处理,对各通道的数字信号频率值进行获取。要充分重视多通道采样数据整理工作,在M文件完成对USB数据读取以及存储后,就会获得原始数据。所获得的数据是交织起来的,单个采样数据长度是十六位,其中的D[7:0]是数据位,D[10:8]是地址位,D[15:ll]是零。這就需要对各通道信号信息进行获取,要对原始数据加以分类整理,结合单个采样数据的格式,根据地址位不同把每个通道数据放入到各自数组当中,对各通道数据后续数字的信号加以处理。


  MATLAB软件应用对数字信号的实际处理过程中,信号处理工具就给出多种型号的数字滤波器设计函数,设计中就可对这些函数进行直接调用。在诸多的数字滤波器设计函数当中的Butterworth型通常是带有内等波纹,阻带内单调。而对于椭圆滤波器阻带以及通带内是等波纹,通带到阻带过度的速度就较为迅速,所给性能指标当中,椭圆滤波器能以低阶数试下,这样就能发挥椭圆滤波器的积极优势。通过其进行设计函数就能够得到:[N,Wn]=ellipord(Wp,Ws,Rp,Rs);[b,a]=ellip(n,Rp,Rs,Wn);[b,a]=ellip(n,Rp,Rs,Wn,ftype}。在这一函数式当中的Wn就是归一化频率,而[b,a]=ellip(n,Rp,Rs,Wn)设计截止频率就是Wn的n阶椭圆数字低通滤波器。对滤波器设计完成之后,就要进行输入相应滤波算法,在对MATLAB软件的应用下,对信号处理工具箱所给的滤波函数算法,就能进行计算。计算的方式如下:


  y=filter(b,a,x)这一计算式子当中y就是滤波后输出的结果序列,而x就是输入信号序列,以及b、a就是滤波器传递函数分子以及分母系数向量。在这一滤波过程在差分方程的表达方面是:a(l)*Y(n)=b(l)*x(n)+b(2)*x(n-l)+…+b(nb+l)*x(n-nb)-a(2)*y(n-1)+···+a(na+1)*y(n-na)。对于原始数字的滤波处理前,就要先把模拟频率转换成数字频率,进行仿真得到椭圆滤波器需要阶数N是六阶。为能够对滤波器应用的有效加以验证,就可通过一叠低频干扰正弦波采样信号模拟随机信号,来对滤波器性能实施仿真测试。如果是输入原始信号是lOKHz低频信号和140KHZ高频叠加,滤波前后输入输出信号幅值低于截止频率第分量信号被滤波,智能通过140KHZ高频信号。


  MATLAB软件在复杂的模型处理当中进行应用能发挥积极作用。数字信号处理通过系统函数求解,采用工具箱中的梅森公式加以应用,进行求取复杂的函数,这就能大大提高计算的效率。MATLAB的软件应用就能大大提高计算的准确率。将MATLAB在数字信号处理当中的应用,就要能充分注重保障其处理程序的规范性,这样才能保障信号处理的整体质量。MATLAB软件应用中,对数字信号处理调用M文件得到USB接口传输到上位机数据,把通道数据放入各自数组当中,为减少此次程序干扰信号,就进行设置阈值电压判断机制,结合采样数据换算电压幅值有助后续数字信号处理工作正常开展。


  对于MATLAB软件的应用过程当中,软件的界面设计是通过几个重要部分组成的,其中的控制按钮控件以及参数设计编辑框等,都要能结合实际的应用进行完善设计,发挥其积极作用。对滤波器的设计也要注重方法的科学掌握,调用MATLAB信号处理工具箱函数,通过窗函数法对滤波器加以确定,从MATLAB中来产生窗函数,主要就有矩形窗以及三角窗和汉宁窗等等。例如海宁窗的调用格式就是w=hanning(n),根据长度n产生一个汉宁窗w。


  4结语


  综上所述,对数字信号处理的效率提高,就要选择高效的应用软件,MATLAB软件的应用就能发挥积极作用,其与高级语言程序相比有着比较突出的优势,能进行快捷方柏霓设计严格线性相位系统,能有效节省编程时间,大大提高编程的效率。通过此次对MATLAB软件应用的情况研究,就能为数字信号处理的效率提高提供相应参考。


  参考文献 

  [1]段文斌.对数字信号处理技术的应用和发展的探讨[J].电子测试,2017(06). 

  [2]于东亮.数字信号处理技术的发展与探讨[J].电子技术与软件工程,2016(13). 

  [3]王志强.数字信号处理的发展[J].电子制作,2015(01). 

  [4]陈文灵.数字信号处理技术的发展及其思考[J].电子技术与软件工程,2015(01). 

  [5]李影.浅析数字信号处理的发展与应用[J].科技与企业,2015(13). 

  [6]孙炳.关于数字信号处理技术的应用与发展研究[J].信息通信,2015(07). 

    作者:赵海君