序列的卷积和快速卷积运算的编程实现

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计任务书

学生姓名:韩新颖专业班级:电信1203班

指导教师:阙大顺王虹工作单位:信息工程学院

题目: 序列的卷积和快速卷积运算的编程实现

初始条件:

1.Matlab6.5以上版本软件;

2.课程设计辅导资料:“Matlab语言基础及使用入门”、“数字信号处理原理与实现”、“Matlab及在电

子信息课程中的应用”等;

3.先修课程:信号与系统、数字信号处理、Matlab应用实践及信号处理类课程等。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1.课程设计时间:1周(课内实践);

2.课程设计内容:序列的卷积和快速卷积运算的编程实现,具体包括:直接卷积及应用、快速卷积方

法及实现、两者的比较分析等;

3.本课程设计统一技术要求:研读辅导资料对应章节,对选定的设计题目进行理论分析,针对具体设

计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析和总结;

4.课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括:

①目录;

②与设计题目相关的理论分析、归纳和总结;

③与设计内容相关的原理分析、建模、推导、可行性分析;

④程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结;

⑤课程设计的心得体会(至少500字);

⑥参考文献;

⑦其它必要内容等。

指导教师签名:年月日

系主任(或责任教师)签名:年月日

摘要

卷积在数字信号处理中有着重要的作用。然而直接计算卷积的运算量非常大,它与序列长度的平方成反比,因此制约了卷积的应用。快速卷积是实现卷积的一种快速算法,减少了运算量,节约了时间。通过分析我们可在MATLAB里编程实现。

关键词:卷积;快速卷积;MATLAB。

目录

1、直接卷积及应用 (1)

1.1卷积的定义 (1)

1.2、卷积的运用 (1)

2、快速卷积方法及实现 (2)

2.1快速卷积运算原理 (2)

2.2实现方法 (3)

2.2.1重叠相加法 (3)

2.2.2重叠保留法 (3)

3、直接卷积和快速卷积的分析比较 (4)

4、程序设计及仿真结果分析 (4)

5、心得体会 (11)

6、参考文献 (12)

1、直接卷积及应用

1.1卷积的定义

设:f(x),g(x)是R1上的两个可积函数,作积分:

可以证明,关于几乎所有的实数x,上述积分是存在的。这样,随着x的不同取值,这个积分就定义了一个新函数h(x),称为函数f与g的卷积,记为h(x)=(f*g)(x)。1.2、卷积的运用

卷积是数字信号处理中最常见,也是最重要的运算之一,利用卷积可以实现相关计算和FIR滤波等等,正因为卷积如此重要,所以半个世纪以来,学者们提出了多种不同卷积实现结构。

设输入信号为x(t),其频谱函数为X(jΩ)该信号通过滤波器h(t)后,其输出信号y(t)的频谱函数Y(jΩ)是频谱函数x(jΩ)与滤波器的频谱函数H(jΩ)的乘积,即:

Y(jΩ)=X(jΩ)H(jΩ)

而在时域,输出信号y(t)实际是输入信号x(t)与滤波器h(t)的卷积,就是说频谱函数的乘积相当于时间函数的卷积,反之亦然,即:

y(t)=x(t)*h(t)

在数字信号处理系统中,无论在时域还是频域都离不开卷积运算和快速傅里叶运算,Matlab具有强大的矩阵运算能力。方便实用的绘图功能和语言的高度集成性。在DSP开发中,使用Matlab可以快速对系统进行仿真运算。

2、快速卷积方法及实现

2.1快速卷积运算原理

在信号处理中,许多具体的应用是以线性卷积为基础的。当满足一定条件时,可以用圆周卷积来计算线性卷积。由圆周卷积定理知道,圆周卷积可以借助DFT来运算,因此DFT的快速算法FFT就可以用来计算线性卷积。

设x1(n)与x2(n)分别是长度为N与M的有限长序列,它们的线性卷积为y l(n),L点的圆周卷积为y c(n),它们的关系为

y c(n)=∑y l(n+rL)R l(n)

由上式可知圆周卷积是线性卷积以L为周期进行延拓后,再取主值序列的结果。当满足L>M+N-1时,周期延拓不发生混叠,就可以用圆周卷积来计算线性卷积。由圆周卷积定义可知,可以用FFT分别求出x1(n)与x2(n)的L点DFT X1(k)与X2(k),即

X1(k)=DFT[ x1(n)],

X2(k)=DFT[ x2(n) ],

再用IFFT计算X1(k)X2(k)的L点IDFT得y c(n),也就是x1(n)与x2(n)的线性卷积为y l(n),即

y l(n)=y c(n)=IDFT[X1(k)·X2(k)]

下图为上述过程的示意图

x1

(n)

y c(n)=y l(n)

x2(n)

2.2实现方法

在实际应用中,常遇到的问题是参加卷积的两个序列的长度相差较大,这样长度小的序列就需补很多的零点,这样就需要大的存储量,运算时间也会变长。常用的解决方法有两种,一是重叠相加法,另一种是重叠保留法。

2.2.1重叠相加法

设序列x1(n)为无限长序列,序列x2(n)是长度为M的序列,由x1(n)构成长度为N的有限长序列

x1k(n)= x1(n), kN

= 0 其他(式2.1)

因此

x1k(n)= ∑x1k(n) (式2.2)

将式子代入卷积公式有

Y(n)=x1(n)*x2(n)=x2(n)* ∑x1k(n)

=∑x1k(n)*x2(n)= ∑y k(n) (式2.3)

式中,

y k(n)=x2(n)*x k(n)= ∑x2(m)x k(n-m) (式2.4)

式(2.3)表示,计算x1(n)与x2(n)的线性卷积y(n)时,可以先分段计算y k(n),然后再叠加起来即可。因为y k(n)的长度为M+N-1,因此y k(n)的后N-1个值与y k+1(n)的前N-1个值重叠,因此必须把y k(n)的后N-1个值与y k+1(n)前的N-1个值相加,因为称为重叠相加法。

2.2.2重叠保留法

为了克服重叠相加法中分段卷积后任然需要相加的缺点,人们提出了重叠保留法。与重叠相加法不同的是,在对无限长序列x1(n)的后M-1个抽样值与后一段x k+1(n)的前M-1个抽样值相同,且分段的长度选圆周卷积的长度L,这样形成的分段序列为

相关文档
最新文档