圆周卷积是指两个周期信号的卷积,其中一个信号的周期是另一个信号的周期的整数倍。时域计算过程可以通过对两个周期信号进行周期延拓,然后进行普通卷积来实现。

假设 x1 和 x2 分别是两个周期信号,它们的周期分别为 N1 和 N2,且 N1 是 N2 的整数倍。则圆周卷积的时域计算过程如下:

  1. 对 x1 进行周期延拓,将其重复 N2/N1 次,得到 x1_ext。

  2. 对 x2 进行周期延拓,将其重复 N1/N2 次,得到 x2_ext。

  3. 对 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,以及圆周卷积的结果。

Matlab 实现圆周卷积:门函数与衰减函数的时域计算

原文地址: https://www.cveoy.top/t/topic/muo7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录