图解圆周卷积

##1.圆周卷积(circular convolution)
圆周卷积,也叫循环卷积,两个长度为N的有限场序列x(n)x\left ( n \right )x(n)h(n)h\left ( n \right )h(n)的循环卷积定义为
y(n)=[∑m=0N−1x(m)h((n−m))N]RN(n)=xn⨂yn 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),则有

DFT[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)长度为NNN

图解循环卷积:

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

在这里插入图片描述

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

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

在这里插入图片描述

最后,将上图中的x1(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、付费专栏及课程。

余额充值