循环卷积

两个函数的圆周卷积是由他们的周期延伸所来定义的。周期延伸意思是把原本的函数平移某个周期 T 的整数倍后再全部加起来,所产生的新函数。x(t) 的周期延伸可以写成

x_T(t) / /stackrel{/mathrm{def}}{=} / /sum_{k=-/infty}^{/infty} x(t - kT) = /sum_{k=-/infty}^{/infty} x(t + kT).

两个函数 x(t) 与 h(t) 的圆周卷积 x(t) /otimes h(t) 可用两种互相等价的方式来定义

/begin{align}y(t) &= /int_{t_o}^{t_o+T} h_T(/tau)/cdot x_T(t - /tau)/,d/tau //&= /int_{-/infty}^{/infty} h(/tau)/cdot x_T(t - /tau)/,d/tau/quad = /quad x_T(t) /star h(t),/end{align}

其中 /star 表示原本的(线性)卷积


类似的,对于离散信号(数列),可以定义周期 N 的圆周卷积 x[n] /otimes h[n]

/begin{align}x_N[n] /star h[n] &= /sum_{m=-/infty}^{/infty} h[m] /cdot x_N[n-m] //&= /sum_{m=-/infty}^{/infty} h[m] /cdot /sum_{k=-/infty}^{/infty} x[n -m -kN]./,/end{align}


离散信号的圆周卷积可以经由圆周卷积定理使用快速傅立叶转换(FFT)而有效率的计算。因此,若原本的(线性)卷积能转换成圆周卷积来计算,会远比直接计算更快速。考虑到长度 L 和长度 M 的有限长度离散信号,做卷积之后会成为长度 L + M − 1 的信号,因此只要把两离散信号补上适当数目的零(zero-padding)成为 N 点信号,其中 N/ge L+M-1/, ,则它们的圆周卷积就与卷积相等。即可接着用 N 点 FFT 作计算。

用以上方法计算卷积时,若两个信号长度相差很多,则较短者须补上相当多的零,太不经济。而且在某些情况下,例如较短的 h[n] 是一个 FIR 滤波器而较长的 x[n] 是未知长度的输入(像语音)时,直接用以上方法要等所有的输入都收到后才能开始算输出信号,太不方便。这时可以把 x[n] 分割成许多适当长度的区块(称为 block convolution),然后一段一段的处理。经过滤波后的段落再仔细的连接起来,借由输入或输出的重叠来处理区块连接的部份。这两种做法分别称为重叠-储存之卷积法重叠-相加之卷积法

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值