主要内容

线性和循环卷积

这个例子展示了如何建立线性卷积和循环卷积之间的等价性。

线性卷积和循环卷积是根本不同的运算。然而,在某些条件下,线性卷积和循环卷积是等价的。建立这种等价关系具有重要意义。对于两个向量,xY,循环卷积等于向量DFT乘积的逆离散傅里叶变换(DFT)。了解线性卷积和循环卷积等效的条件,可以使用DFT高效地计算线性卷积。

函数的线性卷积N-点向量,x,及L-点向量,Y,有长度N+L- 1.

关于矩阵的循环卷积xY要等效,必须用零填充向量,使其长度至少相等N+L- 1,然后再做DFT。当你将两个dft的乘积反转后,只保留第一个N+L-1要素。

创建两个向量,xY,并计算两个向量的线性卷积。

x=[21];y=[1 2 3];clin=conv(x,y);

输出长度为4+3-1。

用零填充两个向量,长度为4+3-1。获得两个向量的DFT,乘以DFT,然后获得乘积的逆DFT。

xpad=[x个零(1,6-长度(x))];ypad=[y个零(1,6-长度(y))];ccirc=ifft(fft(xpad)。*fft(ypad));

零填充向量的循环卷积,xpad伊帕德,相当于xY.您保留了ccirc因为输出的长度为4+3-1。

绘制线性卷积的输出和DFT乘积的倒数,以显示等价性。

子地块(2,1,1)茎(临床、,“填充”)ylim([0 11])标题(“x和y的线性卷积”)子批次(2,1,2)阀杆(ccirc,“填充”)ylim([0 11])标题(“xpad和ypad的循环卷积”)

图中包含2个轴对象。标题为x和y线性卷积的轴对象1包含stem类型的对象。标题为xpad和ypad循环卷积的轴对象2包含stem类型的对象。

将向量填充到长度12,并使用DFT乘积的逆DFT获得循环卷积。仅保留前4+3-1个元素,以产生与线性卷积等效的结果。

N=长度(x)+长度(y)-1;xpad=[x零(1,12-长度(x))];ypad=[y零(1,12-长度(y))];ccirc=ifft(fft(xpad)。*fft(ypad));ccirc=ccirc(1:N);

信号处理工具箱™ 软件有一个功能,cconv,返回两个向量的循环卷积。您可以获得xY对以下代码使用循环卷积。

ccirc2=cconv(x,y,6);

cconv内部使用与前一示例中所示的相同的基于DFT的过程。