1.实验代码
%% DFT实现序列的卷积
close;clear;clc;
for n=1:20
x(n)=1.5; %生成全部为1.5的1行20列矩阵x(n)。
h(n)=2; %生成全部为2的1行20列矩阵h(n)。
end
x1=zeros(1,40); %生成1x40的零矩阵。
h1=zeros(1,40); %生成1x40的零矩阵。
for n=1:20
x1(n)=1.5; %生成全部为1.5的1行20列矩阵x1(n)。
h1(n)=2; %生成全部为2的1行20列矩阵h1(n)。
end
X=zeros(1,40); %生成1行40列的零矩阵。
H=zeros(1,40); %生成1行40列的零矩阵。
for k=1:40
for n=1:40
X(k)=X(k)+x1(n)*exp(-j*2*pi*k*(n-1)/40); %生成1行40列的矩阵X(k)。
H(k)=H(k)+h1(n)*exp(-j*2*pi*k*(n-1)/40); %生成1行40列的矩阵H(k)。
end
end
Y=X.*H;
y=zeros(1,40); %生成1行40列的零矩阵。
y1=zeros(1,40); %生成1行40列的零矩阵。
for n=1:40
for k=1:40
y1(n)=y1(n)+Y(k)*exp(j*2*pi*k*(n-1)/40);
end
y(n)=y1(n)/40;
end
for m=1:39
z(m)=y(m); %将y(m)赋值给z(m)。
end
L=0:38; %卷积长度。
stem(L,z,'filled'); %绘制序列的卷积。
disp(['z=',num2str(z)]);%打印序列的卷积。
2.实验结果