Matlab:matlab实现循环卷积计算(矩阵法)

版权声明:本博客内容均归Jason Niu版权所有 https://blog.csdn.net/qq_42229253/article/details/80353419
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)

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页