实验二 利用DFT计算线性卷积

实验二 利用DFT计算线性卷积

ID:47491055

大小:133.72 KB

页数:7页

时间:2020-01-12

实验二  利用DFT计算线性卷积_第1页
实验二  利用DFT计算线性卷积_第2页
实验二  利用DFT计算线性卷积_第3页
实验二  利用DFT计算线性卷积_第4页
实验二  利用DFT计算线性卷积_第5页
资源描述:

《实验二 利用DFT计算线性卷积》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数字信号处理实验报告实验二利用DFT计算线性卷积一、实验目的1.掌握利用FFT计算线性卷积的原理及具体实现方法。2.加深理解重叠相加法和重叠保留法。3.考察利用FFT计算线性卷积各种方法的适用范围。二、实验设备与环境计算机、MATLAB软件环境三、实验基础理论1、线性卷积与圆周卷积设为L点序列,为M点序列,和的线性卷积为:的长度为:L+M-1,和的N点圆周卷积为:其中:此时圆周卷积等于线性卷积,而圆周卷积可利用FFT计算。2、快速卷积利用FFT计算线性卷积步骤如下:(1)为了使线性卷积可以利用圆周卷积来计算,必须选择;同时为了能使用基2-FFT完成卷积运算,要求。采用补零的办法是和的长

2、度均为N。(2)计算和的N点FFT(3)组成卷积(4)利用IFFT计算IDFT,得到线性卷积y(n)3、分段卷积我们考察单位取样响应为的线性系统,输入为,输出为,则7数字信号处理实验报告当输入序列时再开始进行卷积,会使输出相对输入有较大的延时,再者如果序列太长,需要大量的存储单元。为此,我们把,分别求出每段的卷积,合在一起其到最后的总输出。这种方法称为分段卷积。分段卷积可细分为重叠相加法和重叠保留法。重叠保留法:设的长度为,的长度为M。我们把序列分成多段N点序列,每段与前一段重叠M-1个样本。由于第一段没有前一段保留信号,为了修正,我们在第一个输入段前面填充M-1个零。计算每一段的圆周

3、卷积,则其每段卷积结果的前M-1个样本不等于线性卷积值,不是正确的样本值。所以我们将每段卷积结果的前M-1个样本舍去,只保留后面的N-M+1个正确输出样本,把这些输出样本合起来得到总的输出。利用FFT实现重叠保留法的步骤如下:(1)在前面填充M-1个零,扩大以后的序列为(2)将分为若干N点子段,设L=N-M+1为每一段的有效数据长度,则第i段的数据为:(3)计算每一段与的N点圆周卷积,利用FFT计算圆周卷积:(4)舍去每一段卷积结果的前M-1个样本,连接剩下样本,得到卷积结果。重叠相加法:设长度为M,将信号分解成长为L的子段,建议L选择与M数量级相同。以表示每段信号,则7数字信号处理实

4、验报告每一段卷积的长度为L+M-1,所以在做求和时,相邻两段序列有M-1个样本重叠,即前一段的最后M-1个样本和下一段的前M-1个序列重叠,这个重叠部分相加,再与不重叠部分共同组成输出。利用FFT实现重叠保留法的步骤如下:(1)将分为若干L点子段。(2)计算每一段与的卷积,根据快速卷积算法利用FFT计算卷积。(3)将各段(包括重叠部分)相加,得到输出。4、可能用到的MATLAB函数实验中FFT运算可采用MATLAB中提供的函数fft来实现。MATLAB提供了函数conv来计算线性卷积,实验中可以将编程计算的结果和conv函数的计算结果相比较,以验证结果的正确性,conv函数用法如下:y

5、=conv(x,h),x和h为要进行卷积运算的两个序列,y为卷积结果统计程序运行时间可以利用MATLAB提供的tic和toc两个命令,具体用法如下:tic……需要运行的程序代码toc即,在需要统计运行时间的程序代码前加上tic命令,之后加上toc命令,此时会在命令窗口中显示该程序的运行时间。四、实验内容假设要计算序列x(n)=u(n)-u(n-L),0£n£L和h(n)=cos(0.2pn),0£n£M的线性卷积,完成以下实验内容。1、设L=M,根据线性卷积的表达式和快速卷积的原理,分别编程实现计算两个序列线性卷积的方法,比较当序列长度分别为8,16,32,64,256,512,102

6、4时,两种方法计算线性卷积所需时间。(1)、线性卷积实验代码:forn0=3:10L=2^n0;x=ones(1,L);h=cos(0.2*pi.*x);7数字信号处理实验报告ticy=conv(x,h);tocendElapsedtimeis0.000511seconds.Elapsedtimeis0.000686seconds.Elapsedtimeis0.000091seconds.Elapsedtimeis0.000075seconds.Elapsedtimeis0.000098seconds.Elapsedtimeis0.000154seconds.Elapsedtimeis

7、0.000289seconds.Elapsedtimeis0.000744seconds.(2)、快速卷积实验代码:forn0=3:10L=2^n0;M=2^n0;x=[ones(1,L),zeros(1,M-1)];n2=0:M-1;h=[cos(0.2*pi*n2),zeros(1,L-1)];ticX=fft(x);H=fft(h);Y=X.*H;y=ifft(Y);tocendElapsedtimeis0.000040seconds.E

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。