北邮《数字信号处理》Matlab实验——实现重叠相加和重叠保留算法完成线性卷积的分段计算_第1页
北邮《数字信号处理》Matlab实验——实现重叠相加和重叠保留算法完成线性卷积的分段计算_第2页
北邮《数字信号处理》Matlab实验——实现重叠相加和重叠保留算法完成线性卷积的分段计算_第3页
北邮《数字信号处理》Matlab实验——实现重叠相加和重叠保留算法完成线性卷积的分段计算_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验题目1:线性卷积的分段计算实验目的:实现重叠相加和重叠保留算法,完成线性卷枳的分段计算(可任意指定x(n)及h(n)o试验内容:1、对算法的概括性说明重叠相加法是将待过滤的信号分割成长为N的若干段,每一段都可以和冇限时宽单位 取样响应作卷积,再将过滤后的各段觅叠相加。建立缓存序列,每次输入N点序列,通过 计算x(n)和h(n)的循坏卷枳实现线性卷积运算,将缓存的M-1点序列和卷积结果相加,并 输出前N点作为计算结果,同时缓存后点,如此循环,直至所有分段计算完毕,则输在这种情况下,将序列y(n)分为长N的若干段,每个输入段和前一段仃个巫叠点。此 时只盅要将发生重叠的前个点舍去,保留重叠的部分

2、并输出,则可获得序列y(n)o2、流程图及源代码function y = circular_conv( xlf x2# L )%利用循环卷积计算线性卷积%循环卷积采用频域计算方法,已FFT代薛DFT,降低运篦戢Xlk = fft(xl#L);龟xl 做 L点 FFTX2k = fft(x2/L);电xl 做 L点 FFTYk Xlk.*X2k; *频域相乘y = ifft(Yk); %FFT反变换得循环卷积结果 endfunction y = overlap_add( x, hf N )令堪叠相加法实现咎核心为将高点数DFT转化为低点数DFT. R用循环卷积计算线性卷积M = length(h

3、); *获得人5)的长度if N < M &为N选择介适的值保证运算正确N = M+1;endL = M+N-1;电循环卷枳与线性卷枳结果相同时需耍进行运算的赠少点数Lx = length(x);乌获得x(n)的长度T = ceil(Lx/N);乌确定分段数Tt zerosd/M-l);靱初始化序列t(n)x = x.zerosd, (T+1)*N-Lx) ; %不足的分段补零y = zerosd, (T+1)*N); $生成输出序列y(n),长度足勢长 for i = 0:1:Txi = i*N+l;x_seg = x(xi:xi+N-l);卡选择低点数计算时的分段x(n)y_

4、seg = circular_conv(x_seg, h, L);乌调用循环卷积计算线性卷积 y_seg(l:M-l) = y_seg(1:M-l) +t (1:M-l);%完成重叠相加 y_seg(N+l:L); *重新对t(n)赋ff为保留的后点y(xi :xi+N-l) = y_seg( 1 :N);为II接输出前 N 个点 endy=y(l:Lx+M-l); *収岀協终的输出序列endfunction y = overlap_save( x, h# N )%重叠保留法实现駢亥心为将高点数DFT转化为低点数DFT. II用循环卷积计算线性卷枳Lx = length(x);労获得x(n)的

5、长度M = length(h); *获得 h(n)的长度if N < M先为N选择合适的值保证运算正确N - M+1;endL = N+M-1; *为降低点数,取M+N-1点循环卷积即可t = zerosfl/M-l); *初始化序列 t(n)T - ceil(Lx/N);乌确定分段数x = xrzeros(lf (T+1)*N-Lx);电为不足的分段补牢y = zerosfl, (T+l)*N);for i = 0:1:Txi = i*N4-l;X_seg = (trx(xi:xi+N-l);舎确定每个低点数卷积的分段x(n)t = x_seg(N+l:N+M-l);勒为t(n)重新赋

6、值为后M-l个点的值y_seg = circular_conv(x_seg,h,L); *循环卷积计算线性卷积 y(xi:xi+N-l) y_seg(M:N+M-l) ;%接取出后N个点作为一次计算的输出 endy=y(l:Lx+M-l); *収出实际的输出序end3、实验结果输入(参考教材例3.4、3.5): n - 0:9;xn = n+1;hn = d,0,-l;N = 6;yl = convfhn/ xn)y2 = overlap_add(xn, hn, N)y3 = overlap_save(xnr hnr N)输出: yi 22-9-10y2 =Columns 1through 1

7、01.00002.00002.00002.00002.00002.00002.00002.00002.0000 2.0000Columns 11 through 12-9.0000 -10.0000Columns 1 through 101.0000 2.0000 2.00002.00002.00002.00002.00002.00002.0000 2.0000Columns 11 through 12-9.0000 -10.0000町见,用重叠相加法和重叠保留发分别计算的卷枳结果与直接利用线性卷枳计算的结果 一致。算法正确性得以验证。4、结合教材351节作运算量分析若有限长因果序列x(n)和h(n)的长度分别为N和计算其线性卷积y(n),需MN次乘 法运算,(M4)(N-1)次加法运算。如果利用循环卷积方法,按基2时域抽选法实现L点FFT和IFFT,需logzL+LI 2y次乘法运算,3厶log二厶次加法运算。可以看出:(1)当M、N取值较大且相近时,可实现对线性卷枳的快速计算:(2)当M. N有较大差异时.线性卷积 和循坏卷积运算最相当,此时若希盥降低线性卷枳计算开销,需采用重叠相加法或审叠保留 法。重叠保留法和相加运行效率与分段长度关性较强。分段数和卷积运算的序列长度为非线 性关系,在实际应用中,觅腔保留和相加主

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论