ovrlpadd.m
来自「matlab例子」· M 代码 · 共 21 行
M
21 行
function [y]=ovrlpadd(x,h,N)
%用重叠相加法作分段卷积
%--------------------
%[y]=ovrlpadd(x,h,N)
%y=输出序列
%x=输入序列
%h=脉冲响应
%N=段长>=2*length(h)-1
%
%y=zeros(1,2*length(x)-1);
K=floor(length(x)/N)
x=[x,zeros(1,(K+1)*N-length(x))];
h=[h,zeros(1,2*N-length(h))];
y=zeros(1,(K+2)*N);
for k=0:K
xk=[x(k*N+1:k*N+N),zeros(1,N)];
X=dft(xk,2*N);
H=dft(h,2*N);
y(k*N+1:k*N+2*N)=y(k*N+1:k*N+2*N)+real(idft(X.*H,2*N));
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?