升、降采样的滤波器组实现形式
引言
现代通信系统的收发机部分已经广泛地采用数字信号处理技术,实现信号处理。而实现这种替代的首要问题便是将之前的调制,滤波等技术变为数字处理。滤波的数字处理时通过设计FIR或IIR滤波器实现的,其设计方法是《数字信号处理》这门课程的重点之一,再次不加赘述。然而使用滤波器解决的实际问题便是匹配滤波。匹配滤波要求将一个方形的码元变化成升余弦型,而方形的码元,为了简便起见,在前序处理中是用单值表示的,但升余弦型码元肯定需要更多的值来描述,因此这里涉及到了高采样率的滤波器通过一个低采样率的信号的问题。对于这种实际问题,我们可以采用多采样率信号处理技术,也即引入“升/降采样”,对信号进行处理。
然而,在数字系统中,我们首先希望降低运算量,提高系统的效率,我们发现使用升采样的系统,如果采用直接实现方式,升采样中大量的0将会参与计算,这将提升计算的冗余度,因此,从公式推导中我们发现了一种低运算量的实现方式。
升采样具体推导
记号
为了区分不同采样率的信号,我们需要在信号右下角给出采样间隔:
原始采样间隔: T T T,升采样采样间隔: T L T_{L} TL,满足: T = L T L T=LT_{L} T=LTL
信号 s [ n ] L s[n]_{L} s[n]L为原始采样速率的信号,而 s [ n ] 1 s[n]_{1} s[n]1代表升采样后的信号。
推导
直接实现方式
令 c [ n ] 1 c[n]_{1} c[n]1为处理完成的信号,它由 s [ n ] L s[n]_{L} s[n]L经过了如下处理:
- 以按整数因子L升采样得到信号 s [ n ] 1 s[n]_{1} s[n]1,并有关系: s [ n L ] 1 = s [ n ] L s[nL]_{1}=s[n]_{L} s[nL]1=s[n]L,且当 n ≠ k L , k ∈ Z n\neq kL,k\in Z n̸=kL,k∈Z时, s [ n ] 1 = 0 s[n]_{1}=0 s[n]1=0
- 通过低通滤波器 g t x [ n ] 1 g_{tx}[n]_{1} gtx[n]1,使得波形更加连续,得到信号 c [ n ] 1 c[n]_{1} c[n]1
则信号通过滤波器可以写作如下卷积:
c [ n ] 1 = s [ n ] 1 ∗ g t x [ n ] 1 = ∑ m = − ∞ + ∞ s [ m ] 1 g t x [ n − m ] 1 = ∑ k L = − ∞ + ∞ s [ k L ] 1 g t x [ n − k L ] 1 = ∑ k = − ∞ + ∞ s [ k ] L g t x [ n − k L ] 1 \begin{aligned} c[n]_{1} &= s[n]_{1}*g_{tx}[n]_{1} \\ &=\sum^{+\infty}_{m=-\infty}s[m]_{1}g_{tx}[n-m]_{1}\\ &=\sum^{+\infty}_{kL=-\infty}s[kL]_{1}g_{tx}[n-kL]_{1}\\ &=\sum^{+\infty}_{k=-\infty}s[k]_{L}g_{tx}[n-kL]_{1} \end{aligned} c[n]1=s[n]1∗gtx[n]1=m=−∞∑+∞s[m]1gtx[n−m]1=kL=−∞∑+∞s[kL]1gtx[n−kL]1=k=−∞∑+∞s[k]Lgtx[n−kL]1
滤波器组实现方式
拆分信号
我们希望把最后一个式子写作两个原始采样率的信号的卷积,于是有了下面的记号:
记 c l [ n ] L = c [ n L + l ] 1 l = 0 , 1 , ⋯   , L − 1 记 g t x l [ n ] L = g t x [ n L + l ] 1 l = 0 , 1 , ⋯   , L − 1 c l [ n ] L = ∑ k = − ∞ + ∞ s [ k ] L g t x [ ( n L + l ) − k L ] 1 = ∑ k = − ∞ + ∞ s [ k ] L g t x [ ( n − k ) L + l ] 1 = ∑ k = − ∞ + ∞ s [ k ] L g t x l [ n − k ] L \begin{aligned} \text{记}c^{l}[n]_{L}&=c[nL+l]_{1}\quad l=0,1,\cdots,L-1\\ \text{记}g_{tx}^{l}[n]_{L}&=g_{tx}[nL+l]_{1}\quad l=0,1,\cdots,L-1\\ c^{l}[n]_{L}&=\sum^{+\infty}_{k=-\infty}s[k]_{L}g_{tx}[(nL+l)-kL]_{1}\\ &=\sum^{+\infty}_{k=-\infty}s[k]_{L}g_{tx}[(n-k)L+l]_{1}\\ &=\sum^{+\infty}_{k=-\infty}s[k]_{L}g_{tx}^{l}[n-k]_{L}\\ \end{aligned} 记cl[n]L记gtxl[n]Lcl[n]L=c[nL+l]1l=0,1,⋯,L−1=gtx[nL+l]1l=0,1,⋯,L−1=k=−∞∑+∞s[k]Lgtx[(nL+l)−kL]1=k=−∞∑+∞s[k]Lgtx[(n−k)L+l]1=k=−∞∑+∞s[k]Lgtxl[n−k]L
这样就得到了 c [ n ] 1 c[n]_{1} c[n]1中的L个子集,这些子集是由低采样率的信号卷积组成的。接下来的任务是找到L个子集拼接成 c [ n ] 1 c[n]_{1} c[n]