定稿-因果序列卷积的矢量乘法算法程序设计_第1页
定稿-因果序列卷积的矢量乘法算法程序设计_第2页
定稿-因果序列卷积的矢量乘法算法程序设计_第3页
定稿-因果序列卷积的矢量乘法算法程序设计_第4页
定稿-因果序列卷积的矢量乘法算法程序设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

因果序列卷积的矢量乘法算法程序设计摘要卷积是信号后期处理中的重要概念。离散信号的卷积计算在文献中有多种解法。我们提出了用矢量乘法计算离散信号卷积和的方法。与传统计算方法相比,该方法避开了繁琐的做图求和过程,使计算更简便、快速。同时,也对几种方法进行了对比和讨论。关键字因果序列卷积和矢量乘法程序设计THEVECTORMULTIPLICATIONOFTHECAUSALSEQUENCEOFCONVOLUTIONALGORITHMPROGRAMMINGABSTRACTCONVOLUTIONISANIMPORTANTCONCEPTIN“SIGNALSPOSTPROCESSING”METHODSFORCALCULATINGCAUSALSEQUENCEOFCONVOLUTIONAREGIVENTHEMETHODTOCOMPUTETHECONVOLUTIONSUMOFDISCRETESIGNALSBYUSINGMATHEMATICAISINTRODUCEDINCOMPARISONWITHTHETRADITIONALCOMPUTATION,THISMETHODAVOIDSTHECOMPLICATEDPROCEDURESSUCHASDRAWINGFINALLY,COMPARISONSANDDISCUSSIONSOFTHETHESEMETHODSAREPROVIDED。KEYWORDSCAUSALSEQUENCECONVOLUTIONSUMVECTORMULTIPLICATIONPROGRAM目录1引言111离散序列卷积的意义112卷积的用途22课题研究方法221卷积的计算机实现222课题实现工具23序列卷积常用算法及其实现思路231定义法232矩阵乘法233LISTCONVOLVE算法34卷积矢量乘法算法的程序设计35各种卷积算法优劣比较451矩阵乘法452LISTCONVOLVE算法453矢量乘法算法454FFT算法555列表比较56卷积算法程序应用实例661设计滤波器662物理实例67结语10致谢10参考文献111引言在很多人眼中,卷积这个概念是比较神秘且不容易理解的。卷积在数学、物理学、电子工程、信号处理、计算机科学中极为重要。离散信号卷积在电子通信领域的应用非常广泛,也是工程应用的基础。所以快速有效的计算离散序列的卷积,是人们一直很关心的一个问题。11离散序列卷积的意义在科学技术飞速发展的今天,现代通信正在蓬勃发展,如何快速准确、方便易行地进行远距离信息传递,这是人类追求的目标。要想实现这一目标就必须掌握离散卷积的运算。卷积是在信号与线性系统的基础上和背景中出的,卷积关系很重要的一种情况就是,在信号与线性系统中或数字信号处理中的卷积定理。因为利用该定理,可以将进行时间域或空间域中的卷积运算等价为频率域的相乘运算,从而利用FFT等快速算法,实现更有效的计算,节省运算时间,提升效率。信号通过信号放大系统就是卷积,因为系统是对信号做了线性加工。进一步推广照相系统是卷积,视觉系统也是卷积。我们看到的物体是物体本身与我们的视觉系统的卷积,因为同一个物体,视力不同的人看到的形象不尽相同。同样我们听到的声音是声源发出的声音与听觉系统的卷积。世界上所有的系统都是卷积,例如脉搏是心跳的卷积,水压的波动时泵水电机运转动力的卷积,只要系统是线性的或近似线性的。所以当我们正确认识了卷积的意义之后就会发现卷积是无处不在。但是卷积的意义建立在这两个前提之下一是任意的数字信号都可以表示成单位脉冲之线性组合,二是该系统也是线性的。实际上,我们是根据我们需要待处理信号的形式,来设计所谓的系统传递函数,那么这个系统的传递函数和输入信号,在数学上的形式就是所谓的卷积关系。12卷积的用途卷积的用途就是通过物理系统对信号进行滤波运算,然后对其信号进行幅度的放大及延时。卷积在信号中主要是时域、频域的相互转换。卷积在其它领域也有很多运用,例如在编码中,有卷积码,就是运用原码中前后序列的码字确定当前的编码输出。卷积在分析系统的零状态响应过程中也有着重要作用,2课题研究方法21卷积的计算机实现在计算机上进行卷积运算就是做一个窗口叠加运算,我们一般看的计算机信号处理方面的教材,例如数字图像处理,其中用卷积方的法就实现了图像的积分、微分、锐化、平滑、去噪声等各种运算。22课题实现工具随着计算机技术行业的发展,越来越多的计算问题都已经交给计算机来处理。MATLAB和MATHEMATICA作为优秀的科学计算的软件,在信号处理与通信、工程计算、图像处理技术等领域均得到了广泛的应用。MATLAB主要用于数据可视化、算法开发、数值计算及数据分析的交互式环境和高级计算语言。MATHEMATICS是一个教育软件,设计给MICROSOFTWINDOWS,使用户能够解决数学的科学问题。由微软开发并维护,它主要作为学生和老师的学习工具。MATHEMATICA拥有强大的符号及数值运算能力以及方便实用的绘图功能,所以应用MATHEMATICA总会让人身心舒畅。用MATHEMATICA来计算积分、求和、画图都非常容易,所以可以利用这些特点,做好计算卷积的程序包或函数,使计算过程大大简化,并可以得到精确的数值解或者解析解。3序列卷积常用算法及其实现思路31定义法离散信号的卷积和定义为1式31IYKFGKFGKI式中FK和GK为离散时间序列;I为虚设求和变量,卷积的计算结果为另一新的序列。用如下例子说明已知,求卷积。01NXAUHNUYNXH解答10MMNAYAUU当时N1YA32矩阵乘法用如下例子说明求序列X2,3,4和序列Y1,2,9,0,3,5的卷积,可以等效为矩阵和矩阵432相乘。5309210运用MATHEMATICS运算,编程如下X2,3,4;Y1,2,9,0,3,5;L8ZX1,2,9,0,3,5,0,0,0,1,2,9,0,3,5,0,0,0,1,2,9,0,3,5PRINT“Z“,Z输出结果Z2,7,28,35,42,19,27,2033LISTCONVOLVE算法LISTCONVOLVE算法是MATHEMATICS内部一个算法,主要是进行循环卷积,基本用法LISTCONVOLVEKER,LIST构造核KER和LIST的卷积。出现的新概念是核。核即指核心,便是值输入的信号。LIST自然是单位冲击信号对应的响应了。下面是在MATHEMATICS上进行的一个简单编程X2,3,4Y1,2,9,0,3,5ZLISTCONVOLVEX,Y,1,1,0PRINT“Z“,Z输出结果Z2,7,28,35,42,19,27,204卷积矢量乘法算法的程序设计运用MATHEMATICS设计矢量乘法程序,编写程序如下XTABLECOSK/171EXP00002K,K,0,9999YTABLE0999K,K,0,99999T1DATEMLENGTHXNLENGTHYLMN1ZCONSTANTARRAY0,LSJOINCONSTANTARRAY0,M1,YN11FORJ1,JL,J,SROTATERIGHTSZJXS1MT2DATEZ2LISTCONVOLVEX,Y,1,1,0T3DATEPRINT“XY“,ZPRINT“ERROR“,MAXZZ2P1LISTPLOTZ115000,PLOTRANGEALL,PLOTSTYLEPOINTSIZE0006,REDP2LISTPLOTZ2115000,PLOTRANGEALL,PLOTSTYLEPOINTSIZE0003,BLUESHOWP1,P2PRINT“矢量乘法用时“,T2T1TK,“SECNLISTCONVOLVEY用时“,T3T2TK,“SEC“5各种卷积算法优劣比较前文已主要介绍了几种求解卷积的算法,但是各种算法从运算效率和占用内存上来说肯定存在一定的差异,在工作和学习中为了选择更合适的,很有必要对各种算法进行讨论。在选择算法时我们必须本着简洁,实用,便捷的原则。51矩阵乘法TK0,0,0,3600,60,1XTABLECOSK/171EXP00002K,K,0,999YTABLE0999K,K,0,999T1DATENLENGTHXMLENGTHYLNM1Y0PADRIGHTY,LTEMY0MTEMFORJ1,JKM,YKM1,0,M,0,LENGTHX1ZNTABLEZK,K,0,LENGTHXLENGTHY2DTDATET10,0,0,3600,60,1PRINT“DT“,DTT3DATELISTCONVOLVEX,Y,1,1,0DT2DATET30,0,0,3600,60,1PRINT“DT2“,DT2运算结果DT2_0001000153矢量乘法算法TK0,0,0,3600,60,1XTABLECOSK/171EXP00002K,K,0,9999YTABLE0999K,K,0,9999T1DATEMLENGTHXNLENGTHYLMN1ZCONSTANTARRAY0,LSJOINCONSTANTARRAY0,M1,YN11L,J,FORJ1,JL,J,SROTATERIGHTSZJXS1MT2DATEZ2LISTCONVOLVEX,Y,1,1,0T3DATEPRINT“ERROR“,MAXZZ2P1LISTPLOTZ115000,PLOTRANGEALL,PLOTSTYLEPOINTSIZE0006,REDP2LISTPLOTZ2115000,PLOTRANGEALL,PLOTSTYLEPOINTSIZE0003,BLUESHOWP1,P2PRINT“矢量乘法用时“,T2T1TK,“SECNLISTCONVOLVE用时“,T3T2TK,“SEC“运算结果矢量乘法用时106316081SECLISTCONVOLVE用时00040002SEC54FFT算法XRANDOMINTEGER1,5,10000XLLENGTHXYRANDOMINTEGER1,5,20000YLLENGTHYLXLYL1T1DATEXNPADRIGHTX,LYNPADRIGHTY,LXFOURIERXN,FOURIERPARAMETERS1,1YFOURIERYN,FOURIERPARAMETERS1,1ZXYZFFTFOURIERZ,FOURIERPARAMETERS1,1PRINT“DTFFT“,DATET10,0,0,3600,60,1T2DATEZLCLISTCONVOLVEX,Y,1,1,0PRINT“DTLC“,DATET20,0,0,3600,60,1ERMAXABSZFFTZLC55列表比较表51算法复杂度比较序列一长度序列二长度计算耗时占用存储空间算法明晰度矩阵乘法算法99999901159976明晰LISTCONVOLVE算法99999999000528747明晰矢量乘法算法999999990004159976明晰FFT算法99999999001159976明晰结论矩阵乘法不适合用于长序列,否则会造成MATHEMATICS内核自动停止运行,这时就需要关闭其它程序来再一次尝试。在运行短序列时它的效率还是比较高的。正因为矩阵乘法只适合短序列所以教学过程中一般使用这个方法。LISTCONVOLVE算法不仅适用于长序列也适用于短序列,而且效率最高,非常节省时间。矢量乘法算法不仅适用于短序列,也适用于长序列,但是长序列时相当费时。FFT算法长序列和短序列都适用,较长序列一般考虑LISTCONVOLVE算法和FFT算法。相较之下LISTCONVOLVE算法最优,接下来是FFT算法,矢量乘法算法,最后是矩阵乘法。6卷积算法程序应用实例61设计滤波器滤波器设计主要是借助MATLAB,设计程序如下确定阶数255;确定通带上限频率;FPFS/MBFIR1255,WSAVEZMXBCD62物理实例为了更好的了解矢量乘法算法,我找了一份正常人的心电图作为实例来说明。首先从MATLAB调用滤波器,程序如下BIMPORT“DPROGRAMFILESMATLABR2012ABINZXMFILTERMAT“/FLATTEN记录心电图上的数据,然后调用到MATHEMATICS,程序如下SIMPORT“CUSERSADMINISTRATORDESKTOP111TXT“,“TABLE“/FLATTENYN02,005,009,01,01,01,02,03,03,02,02,02,029,029,029,021,021,03,02,13,02,01,012,012,01,018,02,021,012,011,01,009,0,001,01,012,015,01,01,02,09,05,02,015,02,01,0,015,0,002,01,01,008,005,0,0,0,01,0,001,1,03,0,002,0,0,01,02,012,01,0,01,009,009,0,0,0,01,01,0,11在MATHEMATICS上进行矢量乘法进行卷积,程序如下YNLLENGTHYNLISTPLOTYN,JOINEDTRUE,PLOTRANGEALL,ASPECTRATIO1/3BLLENGTHBNFLOORBL/2TS004FS1/TSTSBRANGE0,BL1TSPRINT“滤波器单位冲激响应时域波形“LISTPLOTTRANSPOSETSB,B,JOINEDTRUE,AXESLABEL“T“,“HT“,PLOTRANGEALL,INTERPOLATIONORDER2HFOURIERB,FOURIERPARAMETERS1,1HAABSH1NFRANGE0,BL/21FS/BLPRINT“滤波器幅频特性“LISTPLOTTRANSPOSEF,HA,JOINEDTRUE,AXESLABEL“F/HZ“,“HF“,PLOTRANGEALLLISTPLOTTRANSPOSEF,ARGH1N,JOINEDTRUE,AXESLABEL“F/HZ“,“F“,PLOTRANGEALLYNL2FLOORYNL/2TSRANGE0,YNL1004PRINT“待处理信号滤波前波形“LISTPLOTTRANSPOSETS,YN,JOINEDTRUE,AXESLABEL“T“,“YT“,PLOTRANGEALL,INTERPOLATIONORDER2YN2FOURIERYN,FOURIERPARAMETERS1,1YN1/2YAABSYN1YNL2F2RANGE0,YNL/21FS/YNLPRINT“待处理信号滤波前幅频特性“LISTPLOTTRANSPOSEF2,YA,FILLINGAXIS,AXESLABEL“F/HZ“,“YNAF“,PLOTRANGEALLPRINT“待处理信号滤波前相频特性“LISTPLOTTRANSPOSEF2,ARGYN1YNL2,FILLINGAXIS,AXESLABEL“F/HZ“,“YNF“,PLOTRANGEALLLBLYNL1T1DATEZCONSTANTARRAY0,LSJOINCONSTANTARRAY0,BL1,S2YNL11FORJ1,JL,J,SROTATERIGHTS,1ZJBS1BLRESULTZNLNN滤波器单位冲激响应采样长度BL的一半PRINT“待处理信号滤波后波形“LISTPLOTRESULT,JOINEDTRUE,INTERPOLATIONORDER2,AXESLABEL“T“,“滤波后YT“YA2FOURIERRESULT,FOURIERPARAMETERS1,1YA1/2YAAABSYA1YNL2FARANGE0,YNL21FS/YNLPRINT“待处理信号滤波后幅频特性“LISTPLOTTRANSPOSEFA,YAA,FILLINGAXIS,AXESLABEL“F/HZ“,“滤波后AF“,PLOTRANGEALLLISTPLOTTRANSPOSEFA,ARGYA1YNL2,FILLINGAXIS,AXESLABEL“F/HZ“,“滤波后F“,PLOTRANGEALLDTDATET10,0,0,3600,60,1PRINT“DT“,DT输出结果滤波器单位冲激响应时域波形如图6110510152025T01000102030405HT图611滤波器单位冲激响应时域波形滤波器幅频特性如图612024681012FHZ0204060810HF图612滤波器幅频特性波形滤波器相频特性如图61324681012FHZ3211F图613滤波器相频特性波形待处理信号滤波器波形如图614051015202530T05000510YT图614待处理信号滤波器波形待处理信号滤波前幅频特性如图615图615待处理信号滤波前幅频特性待处理信号滤波前相频特性如图616图616待处理信号滤波前相频特性待处理信号滤波后波形如图61720406080T0200020406滤波后YT图617待处理信号滤波后波形待处理信号滤波后幅频特性如图618图618待处理信号滤波后幅频特性波形待处理信号滤波后相频特性如图519图619待处理信号滤波后相频特性波形7结语毕业设计是培养我们综合运用所学知识,并发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,也是对学生实际工作能力的具体训练和考察过程。通过两个多月的全心投入和辛苦努力,终于完成了因果序列卷积的矢量乘法算法程序设计,设计的过程就是综合运用所

温馨提示

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

评论

0/150

提交评论