《数字信号处理》利用DFT计算并绘制两序列的卷积

《数字信号处理》利用DFT计算并绘制两序列的卷积_第1张图片

 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.实验结果

《数字信号处理》利用DFT计算并绘制两序列的卷积_第2张图片

 《数字信号处理》利用DFT计算并绘制两序列的卷积_第3张图片

 

你可能感兴趣的:(matlab,数字信号处理,matlab,数字信号处理)