Matlab 实现圆周卷积:门函数与衰减函数的时域计算
圆周卷积是指两个周期信号的卷积,其中一个信号的周期是另一个信号的周期的整数倍。时域计算过程可以通过对两个周期信号进行周期延拓,然后进行普通卷积来实现。
假设 x1 和 x2 分别是两个周期信号,它们的周期分别为 N1 和 N2,且 N1 是 N2 的整数倍。则圆周卷积的时域计算过程如下:
-
对 x1 进行周期延拓,将其重复 N2/N1 次,得到 x1_ext。
-
对 x2 进行周期延拓,将其重复 N1/N2 次,得到 x2_ext。
-
对 x1_ext 和 x2_ext 进行普通卷积,得到圆周卷积结果 y。
下面是使用 Matlab 实现圆周卷积的代码:
% 输入信号 x1 和 x2
N1 = 8; % x1 的周期
N2 = 32; % x2 的周期
L = N1 + N2 - 1; % 卷积结果的长度
x1 = zeros(1, N1); % 门函数
x1(1:4) = 1;
x2 = exp(-0.1*(0:N2-1)); % 衰减函数
% 周期延拓
x1_ext = repmat(x1, 1, N2/N1);
x2_ext = repmat(x2, 1, N1/N2);
% 普通卷积
y = conv(x1_ext, x2_ext);
% 绘制结果
figure;
subplot(3,1,1);
stem(0:N1-1, x1);
title('输入信号 x1');
xlabel('n');
ylabel('x1[n]');
subplot(3,1,2);
stem(0:N2-1, x2);
title('输入信号 x2');
xlabel('n');
ylabel('x2[n]');
subplot(3,1,3);
stem(0:L-1, y);
title('圆周卷积结果');
xlabel('n');
ylabel('y[n]');
运行以上代码,将会绘制出输入信号 x1 和 x2,以及圆周卷积的结果。
原文地址: https://www.cveoy.top/t/topic/muo7 著作权归作者所有。请勿转载和采集!