Matlab:matlab实现循环卷积计算(矩阵法)
目录
matlab实现循环卷积计算
实现代码
clear
clc
%输入基本变量x1,x2,L.
a=input('x1=');
b=input('x2=');
L=input('L=');
A=zeros(L,1);
B=zeros(L,1);
[a1m,a1n]=size(a);
[b1m,b1n]=size(b);
i=1;
k=1;
%定义最基础的x1,x2
while(k==1)
A(i,1)=a(1,i);
i=i+1;
if i>a1n
k=0;
end
end
i=1;
k=1;
while(k==1)
B(i,1)=b(1,i);
i=i+1;
if i>b1n
k=0;
end
end
i=2;
j=L;
k=1;
x=zeros(L,L);
x(1,1)=A(1,1);
%实现L点循环卷积矩阵的第一行
while(k==1)
x(1,i)=A(j,1);
i=i+1;
j=j-1;
if(j==1)
k=0;
end
end
i=1;
j=L;
k=1;
a=zeros(1,L);
%实现x的L点循环卷积矩阵
%将第一行以后的各行向右循环移一位
while(k==1)
c=x(i,:);
a(1)=c(L);
a(2:L)=c(1:L-1);
x(i+1,:)=a;
i=i+1;
if i==L
k=0;
end
end
y=x*B;
figure
grid on
stem(y)