圆周卷积是指在两个离散信号之间进行卷积运算时,将其中一个信号进行周期延拓,然后再进行卷积运算。圆周卷积的时域计算过程如下:

  1. 将信号x1和x2的长度补齐为N,使得N >= length(x1) + length(x2) - 1。

  2. 对信号x1进行周期延拓得到x1_ext,即将x1重复延拓N/length(x1)次。

  3. 对信号x2进行周期延拓得到x2_ext,即将x2重复延拓N/length(x2)次。

  4. 对延拓后的信号x1_ext和x2_ext进行普通的线性卷积运算,得到圆周卷积结果y。

下面是使用MATLAB实现的圆周卷积的代码:

% 信号x1
x1 = [zeros(1, 10), ones(1, 5), zeros(1, 10)];

% 信号x2
x2 = exp(-0.1*(0:19));

% 信号x1和x2的长度
N = max(length(x1), length(x2));

% 对x1进行周期延拓
x1_ext = repmat(x1, 1, ceil(N/length(x1)));

% 对x2进行周期延拓
x2_ext = repmat(x2, 1, ceil(N/length(x2)));

% 圆周卷积计算
y = ifft(fft(x1_ext) .* fft(x2_ext));

% 绘制结果
figure;
subplot(3, 1, 1);
stem(x1);
title('x1');

subplot(3, 1, 2);
stem(x2);
title('x2');

subplot(3, 1, 3);
stem(real(y));
title('Circular Convolution');

以上代码中,x1为一个长度为25的门函数信号,x2为一个长度为20的衰减函数信号。通过对x1和x2进行圆周卷积计算,得到了结果信号y,并通过绘图显示了信号x1、x2和y的波形。

MATLAB圆周卷积:门函数与衰减函数的时域计算及演示

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

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