[离散时间信号处理学习笔记] 14. 多采样率信号处理

多采样率信号处理一般是指利用增采样、减采样、压缩器和扩展器等方式来提高信号处理系统效率的技术(These multirate techniques refer in general to utilizing upsampling, downsampling, compressors, and expanders in a variety of ways to increase the efficiency of signal-processing systems. )本文章主要讨论多采样率技术中的两个研究成果:滤波与压缩器/扩展器的互换;多相分解。

压缩器/扩展器的时域与频域表示

尽管上一篇文章中已经讨论过这部分内容,不过由于这部分是理解本文所必须的关键知识点,这里将在时域与频域展开更详细的分析。

压缩器

假设压缩器的压缩率为$M$,那么压缩器在时域上的表示为

$x_d[n] = x[nM]$

$x[n]$的采样频率为$T$,那么$x_d[n]$的采样频率为$T_d = MT$,按照离散序列与连续信号在频域上的关系,有

$egin{align*}
X(e^{jomega}) &= frac{1}{T}sum_{k=-infty}^{infty}X_cleft[ jleft(frac{omega}{T}-frac{2pi k}{T} ight) ight ]\
X_d(e^{jomega}) &= frac{1}{MT}sum_{r=-infty}^{infty}X_cleft[ jleft(frac{omega}{MT}-frac{2pi r}{MT} ight) ight ]
end{align*}$

压缩前的序列频谱$X(e^{jomega})$与压缩后的序列频谱$X_d(e^{jomega})$之间有如下关系

$egin{align*}
X_d(e^{jomega}) &= frac{1}{MT}sum_{r=-infty}^{infty}X_cleft[ jleft(frac{omega}{MT}-frac{2pi r}{MT} ight) ight ] \
& = frac{1}{MT}left{cdotcdotcdot+X_cleft[jleft(frac{omega}{MT}-frac{-2pi}{MT} ight ) ight ] +X_cleft[ jleft(frac{omega}{MT}-frac{0}{MT} ight) ight ] + X_cleft[jleft(frac{omega}{MT}-frac{2pi}{MT} ight ) ight ]+cdotcdotcdot ight }\
& = frac{1}{MT}left{cdotcdotcdot+X_cleft[jleft(frac{omega}{MT}-frac{0}{MT} ight ) ight ]+cdotcdotcdot +X_cleft[ jleft(frac{omega}{MT}-frac{2(M-1)pi}{MT} ight) ight ] ight.\
&quadqquadqquadleft.+ X_cleft[jleft(frac{omega}{MT}-frac{2Mpi}{MT} ight ) ight ]+cdotcdotcdot+ X_cleft[jleft(frac{omega}{MT}-frac{2Mpi}{MT} -frac{2(M-1)pi}{MT} ight ) ight ]+cdotcdotcdot ight }\
end{align*}$

$egin{align*}
qquadquad &= frac{1}{MT}left{cdotcdotcdot+sum_{i=0}^{M-1}X_cleft[jleft(frac{omega}{MT}-frac{2ipi}{MT} ight ) ight ]+sum_{i=0}^{M-1}X_cleft[jleft(frac{omega}{MT}-frac{2ipi}{MT}-frac{2pi}{T} ight ) ight ]+cdotcdotcdot ight}\
&= frac{1}{MT}sum_{k=-infty}^{infty} sum_{i=0}^{M-1}X_cleft[jleft(frac{omega}{MT}-frac{2pi i}{MT}-frac{2pi k}{T} ight ) ight ] \
&=frac{1}{M}sum_{i=0}^{M-1}left{frac{1}{T}sum_{k=-infty}^{infty}X_cleft[jleft(frac{omega-2pi i}{MT}-frac{2pi k}{T} ight ) ight ] ight}\
&=frac{1}{M}sum_{i=0}^{M-1}X(e^{j(omega-2pi i)/M})
end{align*}$

如下图所示

compressor

扩展器

假设扩展器的扩展率为$L$,那么扩展器在时域上的表示为

$x_e[n] = left{egin{matrix}
x[n/L], &n=0,pm L,pm 2L,cdotcdotcdot \
0, &else
end{matrix} ight.$

扩展前的序列频谱$X(e^{jomega})$与扩展后的序列频谱$X_e(e^{jomega})$之间有如下关系

$egin{align*}
X_e(e^{jomega}) &= sum_{n=-infty}^{infty}x_e[n]e^{-jomega n}\
&=sum_{n=-infty}^{infty}x[n/L]e^{-jomega n}quad n=0,pm L,pm 2L,cdotcdotcdot\
&=sum_{k=-infty}^{infty}x[k]e^{-jomega kL}quad letting n=kL\
&=X(e^{jomega L})
end{align*}$

如下图所示

expander

滤波与压缩器/扩展器的互换

滤波器与压缩器互换

如上一篇文章所描述的减采样就是一个滤波器与压缩器的级联系统。对于这种级联方式,以下两个系统是等价的

image

证明

$egin{align*}
Y_{R}(e^{jomega})
&= frac{1}{M}sum_{i=0}^{M-1}X_b(e^{j(omega-2pi i)/M}) quad compress X_b(e^{jomega}) with M\
&= frac{1}{M}sum_{i=0}^{M-1}X(e^{j(omega-2pi i)/M})H(e^{j(omega-2pi i)/M cdot M})\
&= frac{1}{M}sum_{i=0}^{M-1}X(e^{j(omega-2pi i)/M})H(e^{j(omega-2pi i)})\
&= H(e^{jomega})frac{1}{M}sum_{i=0}^{M-1}X(e^{j(omega-2pi i)/M})quad compress X(e^{jomega}) with M\
&= H(e^{jomega})X_a(e^{jomega})\
&= Y_L(e^{jomega})
end{align*}$

这个证明过程运用了前面一小节中的压缩器频谱运算,$Y_{R}(e^{jomega}) = Y_{L}(e^{jomega})$说明右边的系统跟左边的系统是完全等价的。这两个等价系统也很容易理解,观察下图

Cinterchange

根据前面我们对扩展器的讨论,我们可以把$H(z^M)$理解为对$H(z)$做了因子为$M$的扩展。两个系统分别对应上图的第二第三行:

  • 上图第二行先对$x[n]$进行因子为$M$的压缩得到$x_a[n]$,然后级联一个滤波器$H(z)$
  • 上图第三行先用滤波器$H(z^M)$对$x[n]$进行滤波得到$x_b[n]$,然后对$x_b[n]$进行因子为$M$的压缩

滤波器与扩展器互换

如上一篇文章所描述的增采样就是一个滤波器与扩展器的级联系统。对于这种级联方式,以下两个系统是等价的

image

证明

$egin{align*}
Y_{L}(e^{jomega})
&= X_a(e^{jomega L}) quad expand X_a(e^{jomega}) with L\
&= X(e^{jomega L})H(e^{jomega L}) \
&= X_b(e^{jomega})H(e^{jomega L})\
&= Y_R(e^{jomega})
end{align*}$

这个证明过程运用了前面一小节中的扩展器频谱运算,$Y_{L}(e^{jomega}) = Y_{R}(e^{jomega})$说明右边的系统跟左边的系统是完全等价的。这两个等价系统也很容易理解,观察下图

Einterchange

同样,根据我们前面对扩展器的讨论,我们可以吧$H(z^L)$理解为对$H(z)$进行了因子为$L$的扩展。两个系统分别对应上图的第二第三行:

  • 上图第二行先用滤波器$H(z)$对$x[n]$进行滤波得到$x_a[n]$,然后对$x_a[n]$进行因子为$L$的扩展
  • 上图第三行先对$x[n]$进行因子为$L$的扩展得到$x_b[n]$,然后级联一个滤波器$H(z^L)$

多级抽取和内插

当抽取或内插率较大时,即$M$或者$L$会非常大,这种情况下对$M$或者$L$进行分解,如$M = M_1M_2$,把单级抽取转换为多级抽取将会使得系统更为高效,具体原因以后(书中第七章)讨论。如下是两级抽取器:

image

按照上面的步骤反过来,则能把一个一级抽取转换为二级抽取,该一级抽取的的滤波器的系统函数按照如下方式进行分解:

$H(z) = H_1(z)H_2(z^{M_1})$

原滤波器的脉冲响应则为分解出来的两个滤波器的脉冲响应的卷积,如下:

$displaystyle{h[n] = h_1[n]* sum_{k=-infty}^{infty}h_2[k]delta[n-kM_1]}$

按照这种方式能把一级抽取器扩展到多级抽取。同理,上述理论也能应用到内插处理中。

多相分解

对一个序列进行多相分解,就是把该序列表示成M组子序列的叠加。如下图:

multiphase

为了得到这M组子序列,可以采用以下的分解方法:

image

步骤解析如下

  • 首先是对$h[n]$进行分解能得到$color{red}{e_k[n]}$
    • 在z变换中,频域上的$H(z)cdot z^k$就相当于时域上$h[n] delta[n+k]$,即进行相位为$k$的移动,得到$h[n+k] $
    • 对$h[n+k]$进行因子为$M$的压缩,得到$e_k[n]$
  • 接下来是复原为原来的$h[n]$:
    • 对$e_k[n]$进行因子为$M$的扩展,得到$h_k[n]$
    • 分别对$M$个$h_k[n]$进行相应的移位,然后就能合并得到$h[n]$

下面是一个$M=4,k=3$的例子

MultiphaseDecomposition

该过程在频域上表示为:

$displaystyle{ H(z)=sum_{k=0}^{M-1}E_k(z^M)z^{-k} }$

即系统函数$H(z)$可以被分解成多个经过延迟的滤波器之和,因此就可以把该系统表示成如下并联结构:

image

抽取/内插滤波器的多相实现

多相分解能降低抽取以及内插实现的计算量。直观地解释就是在抽取的时候,实际上所需要的序列数量只有原序列数量的$frac{1}{M}$;在内插的时候,对$x[n]$进行因子为$L$的扩展后,每$L$个样本才会有一个非零样本,而零样本是不需要计算的。详情请看下面的分析。

抽取滤波器

原抽取滤波器有如下形式

image

把抽取滤波器多相分解成如下图左边的形式,然后滤波器与压缩器进行互换就能得到右图的形式。

image

假设输入序列$x[n]$的采样率为一个单位时间,即一个单位时间采集一个样本。假设滤波器$h[n]$为有限长度滤波器(FIR),长度为N个点,那么原抽取滤波器在每个单位时间需要进行$N$次乘法以及$N-1$次加法;在采用多相分解实现后,对每个分量来说,每$M$个单位时间才采集一次,即每一个时间单位采集$frac{1}{M}$次,并且滤波器变为$e_k[n]$,这些滤波器的长度为$frac{N}{M}$,因此对于每一个分量来说,每个单位时间的运算量为$frac{1}{M}frac{N}{M}$次乘法、$frac{1}{M}left(frac{N}{M}-1 ight)$次加法。由于共有$M$个分量,因此整个系统在每个单位时间的运算量为乘法$frac{N}{M}$次、加法$left(frac{N}{M}-1 ight)+(M-1)$次。

内插滤波器

原内插滤波器有如下形式:

image

把内插滤波器多相分解为如下图左边的形式,然后滤波器与扩展器进行互换就能得到右图的形式。

image

假设输入序列$x[n]$的采样率为一个单位时间,即一个单位时间采集一个样本。假设滤波器$h[n]$为有限长度滤波器(FIR),长度为N个点,那么在对$x[n]$进行因子为$L$的增采样后,内插滤波器在每个单位时间需要进行$NL$次乘法以及$L(N-1)$次加法;在采用多相分解实现后,对每个分量来说,每一个单位时间采集一次,并且滤波器变为$e_k[n]$,这些滤波器的长度为$frac{N}{L}$,因此对于每一个分量来说,每个单位时间的运算量为$frac{N}{L}$次乘法、$left(frac{N}{L}-1 ight)$次加法。由于共有$L$个分量,因此整个系统在每个单位时间的运算量为乘法$N$次、加法$N-L+(L-1)$次。

多采样滤波器组

这一小节主要描述了一个使用了多相抽取以及内插结构的系统。

理想双信道分解/合成系统

如下图所示为一个语音编码中常用的对音频信号进行双信道分解(analysis)以及合成(synthesis)系统的结构框图。对结构中各部分的解释如下:

  1. 系统分解部分目的是对音频进行高频以及低频的划分,两个信道的带宽分别为$|omega|<frac{pi}{2}$以及$frac{pi}{2}<|omega|<pi$,这部分的分解分别由低通滤波器$h_0[n]$以及高通滤波器$h_1[n]$完成。通常取$h_1[n] = e^{jpi n}h_0[n]$,这意味着只需要对低通滤波器频谱左移$pi$即可得到高通滤波器频谱,$H_1(e^{jomega}) = H_0(e^{j(omega-pi)})$。
  2. 由于对源信号并行进行了两组滤波,样本数增加了一倍。为了保持滤波后信号的总样本数不变,需要对滤波后的信号进行压缩,压缩倍率为2,也就是使得低频序列$v_0[n]$以及高频序列$v_1[n]$各占一半的样本数。对信号进行压缩意味着信号频谱的扩展,滤波后的信号频谱的带宽分别为$|omega|<frac{pi}{2}$以及$frac{pi}{2}<|omega|<pi$,而压缩后会使得两个信道的信号频谱都扩展到了$|omega|<pi$。
  3. 然后可以对$v_0[n],v_1[n]$进行各种处理。
  4. 系统合成部分的目的就是把两个信道的音频恢复成为全带宽的音频,对于每一个信道来说,此时的样本数只有原样本数的一半,因此需要先把样本进行2倍扩展。
  5. 最后分别通过一个低通滤波器以及高通滤波器完成重构,再把得到的信号相加即可得到全带宽音频。

image

理想情况下会有如下频谱变化:

DualSpectrum

式子推导如下:

$egin{align*}
Y(e^{jomega})&=expandigg{compressigg{X(e^{jomega})H_0(e^{jomega})igg}igg}G_0(e^{jomega})+expandigg{compressigg{X(e^{jomega})H_1(e^{jomega})igg}igg}G_1(e^{jomega})\
&=expandleft{frac{1}{2}igg[X(e^{jomega/2})H_0(e^{jomega/2})+X(e^{j(omega-pi)/2})H_0(e^{j(omega-pi)/2})igg] ight}G_0(e^{jomega})\
&quad + expand left{frac{1}{2}igg[X(e^{jomega/2})H_1(e^{jomega/2})+X(e^{j(omega-pi)/2})H_1(e^{j(omega-pi)/2})igg] ight}G_1(e^{jomega})\
&= frac{1}{2}igg[X(e^{jomega})H_0(e^{jomega})+X(e^{j(omega-pi)})H_0(e^{j(omega-pi)})igg]G_0(e^{jomega})\
&quad+frac{1}{2}igg[X(e^{jomega})H_1(e^{jomega})+X(e^{j(omega-pi)})H_1(e^{j(omega-pi)})igg]G_1(e^{jomega})\
&=frac{1}{2}igg[G_0(e^{jomega})H_0(e^{jomega})+G_1(e^{jomega})H_1(e^{jomega})igg]X(e^{jomega})\ &quad+frac{1}{2}igg[G_0(e^{jomega})H_0(e^{j(omega-pi)})+G_1(e^{jomega})H_1(e^{j(omega-pi)}) igg]X(e^{j(omega-pi)})
end{align*}$

对于上述式子,如果是理想滤波器,分频的低通滤波器$H_0(e^{jomega})$与重构的低通滤波器$G_0(e^{jomega})$的取值范围是仅在$|omega|<frac{pi}{2}$处不为0,因此$G_0(e^{jomega})H_0^{e^{j(omega-pi)}}$的值为0;同理,理想滤波器的情况下,$G_1(e^{jomega})H_1(e^{j(omega-pi)})$的值为0,所以上述式子的第二项在理想滤波器的情况下应为0。另外,第二项中的频谱包含$omega-pi$相关项,而$omega-pi$的相关项是由于信号的压缩带来的,因此这一项表征了压缩操作中潜在的混叠失真,而上述式子的第一项表征的是式子在理想情况下的分解与重构。

一种能消除混叠的重构系统

现实中不可能完全实现上述理想滤波器,不过我们也可以通过选取满足下述条件的滤波器来消除混叠:

$G_0(e^{jomega})H_0(e^{j(omega-pi)})+G_1(e^{jomega})H_1(e^{j(omega-pi)})=0$

该条件被称为混叠抵消条件,满足该式子的一组条件为

$color{red}{egin{align*}
h_1[n] = e^{jpi n}h_0[n]&Leftrightarrow H_1(e^{jomega}) = H_0(e^{j(omega-pi)})\
g_0[n] = 2h_0[n]&Leftrightarrow G_0(e^{jomega}) = 2H_0(e^{jomega})\
g_1[n] = -2h_1[n]&Leftrightarrow G_1(e^{jomega}) = -2H_0(e^{j(omega-pi)})
end{align*}}$

把这些式子代入频谱函数得到

$Y(e^{jomega}) = Big[H_0^2(e^{jomega})-H_0^2(e^{j(omega-pi)})Big]X(e^{jomega})$

因此完美重构(可能带M个样本延迟)要求

$color{red}{H_0^2(e^{jomega})-H_0^2(e^{j(omega-pi)}) = e^{-jomega M}}$

也就是说,在设计分解/合成系统的时候,如果能找到一个符合上面式子的滤波器$H_0(e^{jomega})$,就能使用前面的式子来设计$H_1(e^{jomega}),G_0(e^{jomega}),G_1(e^{jomega})$,得到一个完美重构系统。不过这只是其中的一种分解/合成系统,这类系统的频谱并不能很好地对源信号进行分频,变换过程与前面描述的理想重构系统并不一样(书中稍有涉猎)。

对于这里所描述的这种系统,可以通过多相分解来大幅降低计算量。

因为系统的压缩以及扩展的倍率为2,因此把$h_0[n]$分成两个序列分量$e_{00}[n],e_{01}[n]$,把$g_0[n]$分成两个序列分量$f_{00}[n],f_{01}[n]$,

image

结合前面的条件,有

$egin{align*}
e_{00}[n] &=h_0[2n]\
e_{01}[n] &=h_0[2n+1]\
e_{10}[n] &=h_1[2n]=e^{j2pi n}h_0[2n]=e_{00}[n]\
e_{11}[n] &=h_1[2n+1]=e^{j(2n+1)pi}h_0[2n+1]=-e_{01}[n]\
f_{00}[n] &=g_0[2n]=2h_0[2n]=2e_{00}[n]\
f_{01}[n] &=g_0[2n+1]=2h_0[2n+1]=2e_{01}[n]\
f_{10}[n] &=g_1[2n]=-2h_1[2n]=-2e_{00}[n]=-f_{00}[n]\
f_{11}[n] &=g_1[2n+1]=-2h_1[2n+1]=2e_{01}[n]=f_{01}[n]
end{align*}$

因此该系统可以优化为

image

原文地址:https://www.cnblogs.com/TaigaCon/p/8576853.html