• 11 圆周卷积


    圆周卷积

    圆周运算

    其实圆周运算是针对周期序列而言的,由于周期序列在每一个周期内的取值都相同,所以我们只关注它的主值区间,比如,如果一个序列的长度为(N)的话,那么它的主值区间就是(0leq nleq N-1)

    虽然圆周运算是源自于对周期信号的处理,但是经过一般化的扩展之后,对有限长序列也可以进行圆周运算。具体就是,你可以把有限长序列以它的长度为周期,进行周期延拓成一个周期序列,然后进行运算,然后取其主值区间进行观察得到的结果。

    圆周反褶

    圆周反褶就是一个周期序列进行反褶之后,取其主值区间序列。因为一个周期序列反褶之后还是周期序列,所以这么做是合理的。

    假设一周期信号在其主值区间的取值为$$x[n]={x[0],x[1],x[2],x[3],x[4]}$$即该序列的周期为(5),那么反褶后的信号为(只关注主值区间)

    [egin{aligned} y[0]&=x[0]=x[0] \ y[1]&=x[-1]=x[5-1]=x[4] \ y[2]&=x[-2]=x[5-2]=x[3] \ y[3]&=x[-3]=x[5-3]=x[2] \ y[4]&=x[-4]=x[5-4]=x[1] end{aligned} ]

    为了方便用数学的语言描述这种运算,首先看一种数学上的模运算运算,首先看几个模运算的例子:

    [egin{aligned} 2 \,mod \, 5 =2 \ 6 \, mod \, 5 = 1 \ -3 \, mod \, 5 = 2 end{aligned} ]

    不知道大家看出来没有,模运算其实就是求余,(2)(5)的余数就是(2)(6)对于(5)的余数是(1),而(-3)(5)的余数应该为((-3+5)\, mod\, 5=2)(加上(5)之后不影响余数的大小,因为(5)一直能整除(5)(5)(5)的余数一直是(0))

    我们把(2 \, mod\, 5)记作(<2>_5),所以我们定义圆周反褶为

    [y[n]=x[<-n>_N] ]

    其中(N)为序列(x[n])的长度。

    由上面的公式可以看出,与一般的反褶不同的是,序列下标经过了一次模运算。并且经过上面的数学化的定以后,圆周运算就不仅仅只对周期信号有效了,对一般的有限长信号都是有效的。

    用计算画图看一下进行圆周反褶后的效果:

    而一般的反褶又是什么样子的呢?还是通过计算机画图观察:

    看到这里二者发现不仅波形不一样,并且有值区间也不一样,一般反褶的有值区间变为了(-4 leq n leq 0),而圆周反褶的有值区间是(0 leq n leq 4)

    这个例子给出的就是有限长序列的圆周反褶运算,圆周运算是从周期序列扩展而来的,但不仅仅只针对于周期序列。事实上,后面的处理的圆周运算大部分都是有限长的序列。

    圆周时移

    由圆周反褶的概念,不难定义出圆周时移,即:

    [y[n]=x[<n-n_0>_N] ]

    与圆周反褶类似,(y[n])的有值区间还是与(x[n])相同。

    我们来直观的感受一下,圆周时移到底是怎么一个效果:

    这完全可以看做是将序列进行周期延拓之后,然后进行时移,取其主值区间进行观察得到的结果。

    圆周卷积

    设两周期信号( ilde{x}[n], ilde{w}[n])的周期都为(N),它们的线性卷积为

    [ ilde{y}[n]=sum_{m=-infty}^{infty} ilde{x}[m] ilde{w}[n-m] ]

    易知序列( ilde{y}[n])也为周期序列,其周期为(N)

    设序列( ilde{y}[n])的主值区间为(y[n]),( ilde{y}[n])(DFS)( ilde{Y}[k]),(y[n])(DFT)(Y[k]),由(DFS)(DFT)的关系,得到(Y[k])( ilde{Y}[k])的主值区间。

    [ ilde{Y}[k]= ilde{X}[k] ilde{W}[k] ]

    ( ilde{X}[k])为序列( ilde{x}[n])(DFS),( ilde{W}[k])为序列( ilde{w}[n])(DFS),所以得到

    [Y[k]=X[k]W[k], \, 0 leq k leq N-1 ]

    [egin{aligned} y[n]&=frac{1}{N}sum_{k=0}^{N-1}Y[k]e^{jfrac{2pi kn}{N}} \ &=frac{1}{N}sum_{k=0}^{N-1}X[k]W[k]e^{jfrac{2pi kn}{N}} \ &=frac{1}{N}sum_{k=0}^{N-1}sum_{m=0}^{N-1}x[m]e^{-jfrac{2pi km}{N}}W[k]e^{jfrac{2pi kn}{N}} \ &=sum_{m=0}^{N-1}x[m](frac{1}{N}sum_{k=0}^{N-1}W[k]e^{jfrac{2pi k(n-m)}{N}}) \ &=sum_{m=0}^{N-1}x[m]w[<n-m>_N] end{aligned} ]

    所以定义有限长序列的圆周卷积为

    [color{red}y[n]=sum_{m=0}^{N-1}x[m]w[<n-m>_N]=x[n] ext{ extcircled N}w[n] ]

    其中序列(x[n])和序列(w[n])的长度都为(N),易知卷积后的序列(y[n])的长度也为(N)

    圆周卷积与线性卷积的关系

    考虑两有限长序列(x[n]​)(w[n]​),(x[n]​)的有值区间为(0acksim N_1-1​),即其长度为(N_1​),(w[n]​)的有值区间为(0acksim N_2-1​),其长度为(N_2​),记其线性卷积为(y[n]​),则

    [y[n]=sum_{m=-infty}^{infty}x[m]w[n-m]=sum_{m=0}^{N_1-1}x[m]w[n-m]​ ]

    其长度为(M=N_1+N_2-1​)

    为了求其圆周卷积(y_{L}[n]),将(x[n])(w[n])补零延拓为长度为(L)的序列,其中(Lgeq max{N_1,N_2}),则

    [egin{aligned} y_L[n]&=sum_{m=0}^{L-1}x[m]w[<n-m>_L], \, 0 leq n leq L-1\ &=sum_{m=0}^{L-1}x[m] ilde{w}[n-m], \, 0 leq n leq L-1 \ &=sum_{m=0}^{L-1}x[m]sum_{k=-infty}^{infty}w[n-m-kL], \, 0 leq n leq L-1 \ &=sum_{k=-infty}^{infty}sum_{m=0}^{L-1}x[m]w[n-kL-m], \, 0 leq n leq L-1 \ &=sum_{k=-infty}^{infty}y[n-kL], \, 0 leq n leq L-1 end{aligned} ]

    所以L点圆周卷积是其线性卷积以周期为L进行周期延拓得到的结果。

    由上图(这里不好画离散的图,用连续的表示一下,原理是一样的)知,当(L>N_1+N_2-2=M-1)时,即(Lgeq M)时,即序列补零扩展后的长度大于线性卷积后的长度时

    [sum_{k=-infty}^{infty}y[n-kL] ]

    未发生混叠,取其主区间即是圆周卷积(y_L[n]),取圆周卷积(y_L[n])的前(N_1+N_2-1)个点就是线性卷积(y[n])的值。

    但是当(L < M)

    [sum_{k=-infty}^{infty}y[n-kL] ]

    发生了混叠,如下图

    由图可知,只有(M-L acksim L-1)(2L-M)个点未发生混叠。所以如果补零扩展得到的长度(L<M)的话,那么得到圆周卷积(y_L[n])中,只有在(M-L acksim L-1)的取值与线性卷积的取值相同。

    所以用圆周卷积计算有限长序列线性卷积的方法为:

    1. 将序列(x[n],w[n])进行补零延拓,延拓后的长度(L)应大于等于卷积后的长度(M)
    2. 将补零延拓得到的序列进行圆周卷积运算
    3. 取圆周卷积的前(M)个即为线性卷积的结果
  • 相关阅读:
    Maven入门
    sdk&jdk&jre
    常用git指令
    Spring 3.x 读书笔记
    JAVA多线程---高并发程序设计
    JAVA多线程---ThreadLocal<E>
    JAVA多线程--Thinking in java
    2017年书单
    正则表达式获取多个img src的值
    使用summernote编辑器上传图片,重写onImageUpload
  • 原文地址:https://www.cnblogs.com/LastKnight/p/10958044.html
Copyright © 2020-2023  润新知