资源描述:
《快速卷积地MATLAB实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用标准文档摘要在信号处理中,许多具体的应用是以线性卷积为基础的。当序列点数较少时可以直接计算线性卷积,然而当序列长度很长时,直接计算卷积的运算量非常庞大。快速卷积是实现卷积的一种快速算法,减少了运算量,节约了时间,给我们计算卷积提供了很大的便利。本课程设计是以Matlab为基础,完成序列的卷积和快速卷积运算的编程实现,以及相应的分析和比较。关键字:Matlab卷积快速卷积文案大全实用标准文档目录1.基于设计题目的原理简介11.1序列卷积的定义11.2快速傅里叶变换FFT概念11.3快速卷积方法
2、及实现12.程序设计及运行结果分析32.1题目一32.2题目二42.3题目三73.心得体会10参考文献11专业综合课程设计成绩评定表12文案大全实用标准文档1.基于设计题目的原理简介卷积是数字信号处理(DSP)系统中最常见的,也是最重要的运算之一,无论在时域或频域都离不开卷积运算,FFT是DFT的快速算法,当满足一定条件时可用来计算线性卷积,称为快速卷积。Matlab具有强大的矩阵运算能力,方便实用的绘图功能和语言的高度集成性,在DSP开发中,使用Matlab可以快速对系统进行仿真运算。1.1序
3、列卷积的定义设x(n)和h(n)是两个离散序列,进行下列求和运算:这样,随着n的不同取值,这个求和公式就定义了一个新序列y(n),称为序列x(n)与h(n)的卷积,记为y(n)=x(n)*h(n)。由于DSP主要依靠计算机完成,而计算机无论在时域或频域只能处理有限长的离散信号。此时只需令上述公式中的n在一个范围内取值即可。1.2快速傅里叶变换FFT概念DFT就是对序列频谱的离散化,在数字信号处理中有着重要的作用,但直接计算DFT的运算量非常大,它与序列长度的平方成正比,因此制约了DFT的应用。快
4、速傅里叶变换FFT是实现DFT的一种快速算法,能使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N越多,FFT算法计算量的节省就越显著。因而FFT也有重要的作用,下面一节要介绍的快速卷积就是其应用之一。1.3快速卷积方法及实现在信号处理中,许多具体的应用是以线性卷积为基础的。我们知道,当满足一定条件(L≥M+N-1)时,可以用圆周卷积来计算线性卷积。由圆周卷积定理知道,圆周卷积可以借助DFT来运算,因此DFT的快速算法FFT就可以用来计算线性卷积。设x1(n)与x2(n
5、)分别是长度为N与M的有限长序列,它们的线性卷积为yl(n),L点的圆周卷积为yc(n),它们的关系为:文案大全实用标准文档yc(n)=∑yl(n+rL)RL(n)快速卷积算法过程的示意图如图1.1所示。在实际应用中,常遇到的问题是参加卷积的两个序列的长度相差较大,这样长度小的序列就需补很多的零点,这样就需要大的存储量,运算时间也会变长。常用的解决方法有两种,一是重叠想加法,另一种是重叠保留法。这里不作介绍。图1.1快速卷积示意图1.4直接卷积和快速卷积分析比较快速卷积,顾名思义,其重点在一个“
6、快”,如果对卷积速度要求较高,快速卷积无疑是理想的工具。当然,为了提高速度,就要牺牲面积和功耗。而且由上一节的介绍可知,快速卷积运算的步骤较多,因而当序列较短时快速卷积运算并没有优势,直接进行卷积运算反而更简便。卷积计算的方法选择要视实际情况而定。文案大全实用标准文档2.程序设计及运行结果分析2.1题目一已知线性非移变系统的h(n)=[6,2,3,6,4,2],输入为x(n)=[1,2,3,4,5];(1)用人工计算系统输出y(n);(2)编写程序输出y(n),并作图。2.1.1人工计算长度为N
7、=6的序列h(n)和长度为M=5的序列x(n),卷积y(n)的序列长度为(M+N-1)=10, 计算过程如下: y(1) = h(1)•x(1) =6 y(2) = h(1)•x(2)+h(2)•x(1) =14 y(3) =h(1)•x(3)+h(2)•x(2)+h(3)•x(1) = 25 … y(n) = h(1)•x(n)+h(2)•x(n-1)+ … +h(n)•x(1) … y(M+N-1) = h(1)•
8、x(M+N-1)+h(2)•x(M+N)+h(3)•x(M+N+1)+…+h(M+N-1)•x(1) =10所得的结果为y(n)=[6,14,25,36,63,50,55,52,28,10]。2.1.2程序设计在Matlab中实现卷积的函数conv,可以直接调用。设计程序如下:h=[6,2,3,6,4,2];x=[1,2,3,4,5];y=conv(h,x);%调用conv函数直接计算线性卷积stem(y);%画出卷积结果h(n)的序列图title('y(n)')2.1.3运行结果及分析程序运行