1、 课课 程程 设设 计计 报报 告告 课程名称 _数字信号处理_ 设计题目 _用 FFT实现快速卷积_ 专 业 _通信工程_ 课课 程程 设设 计计 任任 务务 书书 设计题目:设计题目:_用 FFT实现快速卷积_ _ 设计内容与要求:设计内容与要求: FFT 的出现,使 DFT 在数字通信、语音信号处理、图像处理、功率谱估计、系统 分析与仿真、雷达信号处理、光学、地震及数值分析等各个领域都得到广泛应用。 然而,各种应用一般都以卷积和相关运算为依据。在实际应用中,为了分析时域离 散 LTI系统或者序列滤波时,需要计算两个序列的线性卷积。为了提高运算速度, 可以利用 FFT 来实现。 要求:参考
2、课本上第 90 页的内容(3.4.1 用 DFT 计算线性卷积),设计并编 写程序来实现重叠相加法计算线性卷积。 课课 程程 设设 计计 评评 语语 成绩:成绩: 指导教师:_ 年 月 日 目 录 第 1 章 设计任务 4 1.1 原理 5 1.1.2 算法基本思想 . 5 第 2 章 程序设计 8 2.1 程序设计思路 8 2.1.1 函数 juanji(x1,x2,L)设计 . 8 21.2 函数 chongdie(x,h,N)设计 8 2.2 程序流程图 9 第 3 章 分析与测试 . 10 3.1 循环卷积设计 10 3.1.1 程序 10 3.1.2 测试 10 3.1.3 分析 1
3、2 3.2 线性卷积设计 12 3.2.1 程序 12 3.2.2 测试 12 第 4 章 实验结果 . 14 4.1 实验结果 . 14 第 5 章 总结. 15 第 6 章 参考文献 . 16 第第 1 章章 设计任务设计任务 计算 1 个给定序列与输入序列的卷积。 功能: 对给定的数据进行卷积运算,要求分段卷积由循环卷积实现。要求设计有数据导入界 面,各种参数从软件界面可以输入,其中给定序列可以由界面输入,对运算前后的数据绘 制曲线。 要求: 1) 初步完成总体设计,搭好框架,确定人机对话的界面,确定函数功能,控制参数的输入 方法; 2) 设计线性卷积的实现方案; 3) 编写两序列作循环
4、卷积的程序; 4) 通过直接做线性卷积来检验最后结果。 设计步骤: 1) 用结构化设计方法。一个程序划分成若干模块,每一个模块的函数功能要划分好,总体 设计应画出流程图; 2) 输入输出界面要友好; 3) 源程序书写要规范,加必要的注释; 4) 要提供通过直接卷积进行检验的结果; 5) 程序一定要要能运行起来。 1.1 原理原理 1.1.1 算法产生背景算法产生背景 DFT 是连续傅里叶变换在时域和频域上都离散的形式,将时域信号的采样变换为在离散时 间傅里叶变换频域的采样。在形式上,变换两端(时域和频域上)的序列是有限长的。DFT 具 备明确且合理的物理含义,适合应用于数字系统,同时可以方便地
5、由计算机进行运算。 对于线性非移变离散系统,可由线性卷积表示时域输入输出关系,即 y(n)=x(n)*h(n) 通常采用循环卷积降低运算量,但实际中往往无法满足对信号处理的实时性要求。因此,产 生了重叠相加法和重叠保留法两种典型的算法,用以快速计算线性卷积,成为了 DFT 的一个重 要应用。 1.1.2 算法基本思想算法基本思想 重叠相加法是将待过滤的信号分割成长为 N 的若干段, ,每一段都可以和有限时宽单位取 样回应作卷积,再将过滤后的各段重叠相加。 在实际应用中利用 FFT 来计算两个序列的圆周卷积从而实现计算其线性卷积,但是常遇到 的问题是参加卷积的两个序列的长度相差较大, 这样长度小
6、的序列就需要补很多的零点, 这样就 需要大的存储量,运算时间也会变长。所以常用重叠相加法来解决。 如以下情况: h(n)长度为 N,x(n)长度为无限长 x(n)取 M 点,且与 N 尽量接近 可采用如下方法来解决 图 1-1 重叠相加法的卷积示意图 重叠相加法的步骤如下 (1)将 h(n)补零延长到 L =M+ N -1,并计算长为 L 的 FFT,得到 H(k)。 (2)分别将 xk(n)补零延长到 L =M+ N -1,并计算长为 L 的 FFT,得到 Xk(k) k k nxnx)()( )()()(kMnRnxnx Mk x(n)与h(n)的卷积为 )(*)()(*)()(nxnhnhnxny k k