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

📄 ovrlpadd.m

📁 realize overlapped-add method %[y]=overlpadd(x,h,Nfft) %y:output sequence %x:input sequence %h
💻 M
字号:
function [y]=ovrlpadd(x,h,Nfft)
%realize overlapped-add method
%[y]=overlpadd(x,h,Nfft)
%y:output sequence 
%x:input sequence 
%h:filter impulse response sequence
%Nfft:points of each DFT operation
%重叠相加法实现分段卷积
Lenx=length(x);
M=length(h);
N=Nfft-M+1;                     %确定每一个分段的大小
x=[x,zeros(1,N-1)];             %填充序列使得循环中对序列的索引不会超出范围
K=floor(Lenx/N);                %确定分段数
y=zeros(1,Lenx+Nfft-1);         %初始化输出序列
for i=0:1:K
    ix=i:N;
    x_seg=x(ix+1:ix+N);          %取出每一个分段
    y_seg=circonv2(x_seg,h,Nfft);%对每一个分段进行处理
    y(ix+1:ix+Nfft)=y(ix+1:ix+Nfft)+y_seg(1:Nfft);   %重叠相加
end
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 + -