⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ovrlpsav.m

📁 %realize overlapped-save method %y:output sequence %x:input seqence %h:filter impulse response s
💻 M
字号:
function [y]=ovrlpsav(x,h,N)
%realize overlapped-save method
%y:output sequence 
%x:input seqence
%h:filter impulse response sequence 
%N:length of each segment
%重叠保留法实现分段卷积
Lenx=length(x);M=length(h);
M1=M-1;L=N-M1;
h=[h,zeros(1,N-M)];              %将序列h(n)补零到长度为N
%x(n)的前面补上M1-1个零,以修正第一段中的前面M-1个样本,
%在x(n)的后面补零,使得下面循环语句的索引不会超过范围
x=[zeros(1,M1),x,zeros(1,N-1)];
K=floor((Lenx+M1-1)/(L));          %确定分成多少段
Y=zeros(K+1,N);
for k=0:K
    xk=x(k*L+1:k*L+N);           %取出每一段对应的输入序列
    Y(k+1,:)=circonv2(xk,h,N);    %对每一段分别进行处理
end
Y=Y(:,M:N)';
y=(Y(:))';                       %重叠保留
y=y(1:Lenx+M-1);                 %取出实际的输出序列
if ~any(imag(h))&~any(imag(x))
    y=real(y);                   %判断是否为实数序列
end

     


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -