circonvt.m

来自「原名:数字信号处理基础及MATLAB实现,解压缩密码:lfjk2002@163.」· M 代码 · 共 19 行

M
19
字号
function y=circonvt(x1,x2,N)
%计算x1与x2的循环卷积,长度均为N,即y(n)=sum(x1(m)*x2(n-m)mod N)
%检查x1的长度
if length(x1)>N
    error('N必须>=x1的长度')
end
%检查x2的长度
if length(x2)>N
    error('N必须>=x2的长度')
end
x1=[x1 zeros(1,N-length(x1))];  %若长度不够补零
x2=[x2 zeros(1,N-length(x2))];  %若长度不够补零
m=[0:1:N-1];
x2=x2(mod(-m,N)+1);
H=zeros(N,N);
for n=1:1:N
    H(n,:)=cirshfit(x2,n-1,N);
end
y=x1*H';

⌨️ 快捷键说明

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