信号系统实验报告一

发布时间 : 星期六 文章信号系统实验报告一更新完毕开始阅读

实验四 利用FFT实现快速卷积

一、实验目的

1.加深理解FFT在实现数字滤波(或快速卷积)中的重要作用,更好的利用FFT进行数字信号处理。

2.掌握循环卷积和线性卷积两者之间的关系。

二、实验原理

数字滤波器根据系统的单位脉冲响应h(n)是有限长还是无限长可分为有限长单位脉冲响应(Finite Impulse Response)系统(简记为FIR系统)和无限长单位脉冲响应(Infinite Impulse Response)系统(简记为IIR系统)。

对于FIR滤波器来说,除了可以通过数字网络来实现外,也可以通过FFT的变换来实现。 首先我们知道,一个信号序列x(n)通过FIR滤波器时,其输出应该是x(n)与h(n)的卷积:

??y(n)?x(n)*h(n)?m????x(m)h(n?m)

当h(n)是一个有限长序列,即h(n)是FIR滤波器,且0?n?N?1时

y(n)??h(m)x(n?m)

m?0N?1在数字网络类的FIR滤波器中,普遍使用的横截型结构就是按这个卷积公式构成的。

应用FFT实现数字滤波器实际上就是用FFT来快速计算有限长度序列的线性卷积。 这种方法就是先将输入信号x(n)通过FFT变换为它的频谱采样值X(k),然后再和FIR滤波器的频响采样值H(k)相乘,H(k)可事先存放在存储器中,最后再将乘积H(k)X(k)通过快速傅里叶变换(简称IFFT)还原为时域序列,即得到输出y(n)。

H(k) x(n) FFT H(k)X(k) IFFT 现以FFT求有限长序列间的卷积及求有限长度序列与较长序列间的卷积为例来讨论FFT的快速卷积方法。

1.序列x(n)和h(n)的长差不多。设x(n)的长为N1,h(n)的长为N2,要求

N?1X(k) y(n) y(n)?x(n)?y(n)??h(m)x(n?m)

m?0用FFT完成这一卷积的具体步骤如下:

①为使两有限长序列的线性卷积可用其循环卷积代替而不发生混叠,必须选择循环卷积长度N?N1?N2?1,若采用基2-FFT完成卷积运算,要求N?2(m为整数)。

m②用补零方法使x(n)和h(n)变成列长为N的序列。

?x(n)0?n?N1?1 x(n)??N1?n?N?1?0?h(n)0?n?N2?1 h(n)??N2?n?N?1?0③用FFT计算x(n)和h(n)的N点离散傅里叶变换 ④完成X(k)和H(k)乘积,Y(k)?x(k)H(k) ⑤用FFT计算Y(k)的离散傅里叶反变换得

*?1??nk?N?1?1*?nk?

y(n)???Y(k)?WN????Y(k)?WN???k?0?N?k?0?N?2.当x(n)长度很长时,即N1??N2,通常不允许等x(n)全部采集齐后再进行卷积,否则使输出相对于输入有较长的延时,另外,若N1?N2?1太大,h(n)要补上太多的零点,很不经济,且FFT的计算时间也要很长。为此,采用分段卷积的方法,即把x(n)分成长度与h(n)相仿的一段段,分别求出每段卷积的结果,然后用相应的方式把它们结合起来,便是总的输出。分段卷积方法主要有两种,即重叠相加法和重叠保留法。具体内容请参考数字信号处理教材中“快速离散傅里叶变换”一章中的线性卷积的FFT算法部分,本实验这部分不作重点要求。

N?1三、主要实验仪器及材料

微型计算机、Matlab6.5教学版、TC编程环境。

四、实验内容

1.数字滤波器的脉冲响应为h(n)??1/2?RN2(n),N2取8。

n输入序列x(n)可选下列几种情况 ①x(n)?RN1(n) ,N1取8。 ②x(n)?cos2?RN1(n) ,N1取8。 N1n?1?③x(n)???RN1(n) ,N1取8。

?3?2.实验前,预先计算好x(n)*h(n)的值。

3.实验前,预先编制一个应用FFT实现数字滤波器的通用程序。 4.上机独立调试,并打印或记录实验结果。

5.将实验结果与预先笔算的结果比较,验证其正确性。

五、思考题

1.N同时取8、16、32时,线性卷积和循环卷积的结果有何不同,为什么? 2.分析直接计算线性卷积和利用FFT计算线性卷积的时间。

六、实验报告要求

1.简述实验原理及目的。

2.记录调试运行情况及所遇问题的解决方法。 3. 给出实验结果,并对结果作出分析。 4.简要回答思考题。

联系合同范文客服:xxxxx#qq.com(#替换为@)