北京邮电大学 实验报告 实验名称:用MATLAB实现线性卷积运算 学 院:信息与通信工程学院 班 级: 姓 名: 学 号: 日 期:2012 年 5 月 一、实验原理 1、算法产生背景 DFT 是连续傅里叶变换在时域和频域上都离散的形式,将时域信号的采样变换为在离散时间傅里叶变换频域的采样
在形式上,变换两端(时域和频域上)的序列是有限长的
DFT 具备明确且合理的物理含义,适合应用于数字系统,同时可以方便地由计算机进行运算
对于线性非移变离散系统,可由线性卷积表示时域输入输出关系,即 () ()*() ynxnhn 通常采用循环卷积降低运算量,但实际中往往无法满足对信号处理的实时性要求
因此,产生了重叠相加法和重叠保留法两种典型的算法,用以快速计算线性卷积,成为了DFT 的一个重要应用
2、算法基本思想 1)重叠相加法 重叠相加法是将待过滤的信号分割成长为N 的若干段,如图1 所示,每一段都可以和有限时宽单位取样响应作卷积,再将过滤后的各段重叠相加
具体算法实现原理如图2 所示,建立缓存序列,每次输入N 点序列,通过计算x(n) 和h(n) 的循环卷积实现线性卷积运算,将缓存的M-1 点序列和卷积结果相加,并输出前N 点作为计算结果,同时缓存后M-1 点,如此循环,直至所有分段计算完毕,则输出序列y(n)为最终计算结果
2)重叠保留法 重叠保留法相当于将x l(n)和h( n)作循环卷积,然后找出循环卷积中相当于线性卷积的部分
在这种情况下,将序列 y(n)分为长为 N 的若干段(如图 3 所示),每个输入段和前一段有M-1个重叠点
此时只需要将发生重叠的前 M-1个点舍去,保留重叠的部分并输出,则可获得序列 y(n),算法如图 4 所示
二、流程图设计 1、重叠相加法 2 、重叠保留法 三、MATLAB源代码 1、重叠相加源码 2
重叠保留源码 2、四、实