1、 课课 程程 设设 计计 报报 告告 课程名称 _数字信号处理_ 设计题目 _ 用 FFT实现快速卷积_ _ 专 业 _通信工程_ 班 级 _x x x x x _ 学 号 _xx x xx x _ 姓 名 x x xx 完成日期 _ 2014 年 6 月 27 日_ 课课 程程 设设 计计 任任 务务 书书 设计题目:设计题目:_用 FFT 实现快速卷积_ 设计内容与要求:设计内容与要求:FFT 的出现,使 DFT 在数字通信、语音信号处理、图像处理、 功率谱估计、系统分析与仿真、雷达信号处理、光学、地震及数值分析等各个领域 都得到广泛应用。然而,各种应用一般都以卷积和相关运算为依据。在实际
2、应用中, 为了分析时域离散 LTI 系统或者序列滤波时,需要计算两个序列的线性卷积。为了 提高运算速度,可以利用 FFT 来实现。 要求:参考课本上第 90 页的内容(3.4.1 用 DFT 计算线性卷积),设计并编 写程序来实现重叠相加法计算线性卷积。 课课 程程 设设 计计 评评 语语 成绩:成绩: 指导教师:_ 年 月 日 目录 第 1 章 设计原理 1 1.1 设计思想 1 1.2 计算循环卷积的过程 . 1 1.3 重叠相加法的图示 . 2 第 2 章 设计过程 3 2.1 循环卷积子函数流程图 . 3 2.2 主函数流程图 . 4 2.3 循环卷积子函数源程序: . 4 2.4 主
3、函数源程序: . 6 第 3 章 结果与验证 9 第 4 章 界面设计 . 11 第 5 章 分析与总结 . 12 参考文献 . 13 1 第 1 章 设计原理 1.1 设计思想 运用分段处理方法中的重叠相加法计算两个序列的卷积运算。 设一个给定序列是长度为n1的A,另一个导入序列是长度为n2 的B,其中B序 列是相对 A 序列比较长的,所以可以把 B 分为和 A 一样长的若干段段,即 B 分后 每一小段长度为 n1。根据书上的公式: )()(*)()(*)()(*)()( 000 nynxnAnBnAnBnAny k k k k k k 可知将 B 序列的每一小段与 A 序列做现行卷积,然后
4、将所有的 n2/n1 段的线性卷 积结果相加起来就是整个 B 序列和 A 序列的线性卷积结果,而又在本设计中,B 序 列的一小段和 A 序列的线性卷积又可由循环卷积来实现,只要让循环卷积的点数 121nnL,循环卷积的结果就和线性卷积的结果等价,在本实验中取 112nL,故 A 序列和 B 序列的线性卷积可认为是由 A 序列和 B 的每一小段做 112nL点的循环卷积的最终累加和, 另外还有两个个问题需要考虑,首先是做循环卷积时要对 A 序列和 B 序列的 那一小段补零做卷积后,最终做累加的时候要考虑重叠的片段,必须将重叠的两 段加起来。不重叠的片段直接赋值。其次是如果 B 序列长度 n2 不
5、是 A 序列长度 n1 的整数倍时,必须将 B 序列余下的那几个数补零后和 A 序列做L点循环卷积再 加到最终的结果的相应位置。 1.2 计算循环卷积的过程 在本次课设题中序列 A 和 B 序列的某一小段做循环卷积,由于已知 A 序列的 长度为 n1,故可取 B 序列的每一小段都和 A 序列相等长度,并且取循环卷积的点 数为112nL,这就保证每一组的循环卷积都等效于线性卷积。做循环卷积可 运用课本上 82 页上的循环卷积矩阵做, 其第一步是将 A 序列和 B 序列的某一小段 补零到长度为112nL,然后把 A 序列通过变换生成列行 LL的循环卷积矩阵, 将补零后的 B 的某一小段转置,然后用循环卷积矩阵乘以它就可以得到循环卷积 的结果,在此也即线性卷积。 2 1.3 重叠相加法的图示 重叠相加法的图示如图 1-1 所示: 图 1-1 重叠相加法的图示 M 0 N MM x1(n )x0(n )x2(n ) N M 1 N M 1 y0(n ) y1(n ) N M 1 y 2(n ) 2MM 3M N 1 0 N 1 y(n ) y 0(n ) y 1(n ) y 2(n ) n n n n n n h (n ) 3 第 2 章 设计过程 2.1 循环卷积子函数流程图 开始 输入 A 序列和 B 序列 若 A 或 B 序列的长度