电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

Matlab重叠保留法、重叠保留法程序

Matlab重叠保留法、重叠保留法程序_第1页
1/2
Matlab重叠保留法、重叠保留法程序_第2页
2/2
计算一长一短两个序列的线性卷积时,假如直接使用 FFT 以及 IFFT 进行快速变换,则需要在较短的序列后面补很多个零,增加了计算量。因此在此种情况下,一般采纳重叠相加法和重叠保留法来计算,可以有效减少计算量,具体原理此处不涉及,只提供这两种方法的matlab程序,供参考。overlap_add 重叠相加法的程序overlap_save 重叠保留法的程序lin_conv 用 FFT 和 IFFT 快速计算线性卷积的程序,被以上两个程序调用建议:将这三段程序保存成分开的三个 。m 文件%% 重叠相加法,重叠保留法 实现长短序列的线性卷积function y=overlap_add(x,h,M,choice)% x为较长的输入序列,h为较短的系统函数,M为分段大小% choice为’add’或’save’,选择重叠相加法或重叠保留法%---—--——-前期处理——-——-—-——----——--—N=length(h); % 序列h(n)的长度Lx=length(x); % 序列x(n)的长度if N>M % 算法要求 N<=M M=N+1;endL=M+N—1; % 用每段循环卷积计算线性卷积所需点数T=ceil(Lx/M); % 分段数,ceil向上取整t=zeros(1,N—1); % 缓存序列初始化x=[x,zeros(1,(T+1)*M—Lx)]; % 最后一个不足M的分段补零y=zeros(1,(T+1)*M); % 生成输出序列y(n)%—--————----—-核心算法--—--——---———————--- for i=0:T xi=i*M+1; x_seg=x(xi:xi+M—1); % 低点数计算时的分段x(n) y_seg=lin_conv(x_seg,h,L); % 计算 i 分段和 h 的循环线性卷积 y_seg(1:N—1)=y_seg(1:N-1)+t(1:N—1); % 与前一段卷积的后N-1位重叠相加 t(1:N—1)=y_seg(M+1:L); % 缓存序列更新 y(xi:xi+M-1)=y_seg(1:M); % 每卷积一段输出M个点 endy=y(1:Lx+N-1) ; % 最终输出序列end%% 重叠保留法 实现长短序列的线性卷积function y=overlap_save(x,h,M)% x为较长的输入序列,h为较短的系统函数,M为分段大小% choice为’add’或'save',选择重叠相加法或重叠保留法%------—--前期处理—----——---—-——--———N=length(h); % 序列h(n)的长度Lx=length(x); % 序列x(n)的长度if N〉M % 算法要求 N〈=M M=N+1;endL=M+N-1; % 用每段循环卷积计算线性卷积所需点数T=ceil(Lx/M); % 分段数,ceil向上取整t=zeros(1,N—1); % 缓存序列初始化x=[x,zeros(1,(T+1)*M-Lx)]; % 最后一个不足M的分段补零y=zeros(1,(T+1)*M); %...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

Matlab重叠保留法、重叠保留法程序

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部