图解圆周卷积

##1.圆周卷积(circular convolution)
圆周卷积,也叫循环卷积,两个长度为N的有限场序列 x ( n ) x\left ( n \right ) x(n) h ( n ) h\left ( n \right ) h(n)的循环卷积定义为
y ( n ) = [ ∑ m = 0 N − 1 x ( m ) h ( ( n − m ) ) N ] R N ( n ) = x n ⨂ y n y\left ( n \right ) = [\sum_{m = 0}^{N-1}x\left ( m \right )h((n-m))_{N}]R_{N}(n) = x_{n}\bigotimes y _{n} y(n)=[m=0N1x(m)h((nm))N]RN(n)=xnyn

即循环卷积相当于周期延拓后的序列 x ~ ( n ) \widetilde{x}(n) x (n)做周期卷积后再取主值区间,若 x ( n ) x(n) x(n) h ( n ) h(n) h(n)的离散傅里叶变换为 X ( K ) X(K) X(K) H ( K ) H(K) H(K),则有

D F T [ y ( n ) ] = X ( K ) H ( K ) DFT[y(n)]=X(K)H(K) DFT[y(n)]=X(K)H(K)

时域中的循环卷积对应于其离散傅里叶变换的乘积,循环卷积的结果 y ( n ) y(n) y(n)长度为 N N N

图解循环卷积:

x 1 ( n ) = R 4 ( n ) , x 2 ( n ) = R 4 ( n − 2 ) x_{1}(n)=R_{4}(n),x_{2}(n)=R_{4}(n-2) x1(n)=R4(n),x2(n)=R4(n2),求 x 1 ( n ) x_{1}(n) x1(n) x 2 ( n ) x_{2}(n) x2(n)的N=6点循环卷积 x ( n ) x(n) x(n)
x 1 ( n ) x_{1}(n) x1(n) x 2 ( n ) x_{2}(n) x2(n) 波形如下

在这里插入图片描述

先将 x 2 ( n ) x_{2}(n) x2(n)做周期延拓(以N为周期),然后再反褶,得到 x 2 ( ( − m ) ) 6 R 6 ( n ) x_{2}((-m))_{6}R_{6}(n) x2((m))6R6(n),如下图

在这里插入图片描述
然后再进行循环移位,注意,现在是在对一个周期N= 6 的函数移位,因为最后只取主值区间,因此只需要移位N= 6次,即只需要得到 x 2 ( ( − m ) ) 6 R 6 ( n ) x_{2}((-m))_{6}R_{6}(n) x2((m))6R6(n) x 2 ( ( 1 − m ) ) 6 R 6 ( n ) x_{2}((1-m))_{6}R_{6}(n) x2((1m))6R6(n),……, x 2 ( ( 5 − m ) ) 6 R 6 ( n ) x_{2}((5-m))_{6}R_{6}(n) x2((5m))6R6(n),移位如下图

在这里插入图片描述

最后,将上图中的 x 1 ( m ) x_{1}(m) x1(m)在对应点与各移位图相乘累加即得到最终结果

在这里插入图片描述

附上程序

close all
N = 6;
x1 = [1,1,1,1,0,0,0,0];
x2 = [0,0,1,1,1,1,0,0];
figure
subplot(2,1,1),stem(0:7,x1)
xlim([-2,8]),ylim([0,2])
xlabel('m'),title('x_1(m)')

subplot(2,1,2),stem(0:7,x2)
xlim([-2,8]),ylim([0,2])
xlabel('m'),title('x_2(m)')

x3 = [1,1,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1];
figure,
subplot(2,1,1),
stem(-8:8,x3)
xlim([-8,8]),ylim([0,2])
xlabel('m'),title('x_2(m)以N = 6为周期延拓((x_2(m)))_6')

subplot(2,1,2),
stem(-8:8,fliplr(x3))
xlim([-8,8]),ylim([0,2])
xlabel('m'),title('x_2(m)以N = 6为周期延拓 反褶((x_2(-m)))_6')


x_m = fliplr(x3);
x4 = [1,0,0,1,1,1,x_m];
figure
for i = 0:N-1
    subplot(7,1,i+1),
    stem(0:6,x4(9-i:15-i))
    xlim([-2,8]),ylim([0,1.5])
    
    ylabelString = '(x_2(%d-m))_6';
    str = sprintf(ylabelString,i);

    ylabel(str,'rotation',90,'FontSize',8);
    %xlabel('m'),title('x_2(m)以N = 6为周期延拓 反褶((x_2(-m)))_6')
end
subplot(7,1,7)
    stem(0:6,x1(1:7))
    xlim([-2,8]),ylim([0,1.5])
    
    ylabelString = '(x_2(%d-m))_6';
    str = sprintf(ylabelString,i);

    ylabel('x_1(m)','rotation',90,'FontSize',8);
    
    
x = cconv(x1,x2,6)
figure,stem(0:5,x)
xlim([-2,8]),ylim([0,5])




评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值