FPGA是实现数字信号处理的一种高效手段。在实现高带宽信号处理领域,FPGA技术可以通过一个芯片上的多级运算单元来获得比通用DSP芯片更高的运算速度[2]。由于采样率变换能用一种并行的方法实现,使用FPGA来实现就可以利用其硬件本身的并行性得到较高的效率。
1 有理数采样率变换器的原理
从概念上讲,采样率变换器可以通过数/模转换,再对模拟信号进行给定频率的模/数转换得到。在实际的系统中,通过在数字域利用抽取和内插运算实现是一种更为合理和有效的手段。
抽取是降低采样率的方法。在时域上,D倍(D为抽取因子)抽取就是从原始序列中每隔D-1个样点取出一个构成新的数字序列。在频域上,这一运算可以看成是频谱的压缩, 即原来以Ω sat1为周期的频谱变为以Ω sat2为周期的频谱。为避免可能引起的混迭失真,抽取前应使原信号通过一个低通滤波器。其抽取的示意图及实现框图如图1所示。
内插是提高采样率的方法。实际的内插系统由两部分构成:(1)零值插值器。设插值因子为I, I倍零值内插就是在原始序列任意两个样本间加入I-1个零值样本。在频域上,频谱进行了扩张,即原来以Ω sat1为周期的频谱变为以Ω sat2为周期的频谱。从Ω c到Ω sat2-Ω c的频带被称为镜像频谱。(2)低通滤波器。信号经过此滤波器后,镜像频谱被滤去,从而得到采样率提高的信号序列。内插图示及实现框图如图2所示。
利用抽取系统和内插系统的级连,就可以得到有理数采样率转换器的基本方案。一般地,对于 I/D 倍数的有理数采样变换,通过先内插后抽取的方法,可以得到如图3所示的实现框图。图3(a)中的第二部分和第三部分是两个低通滤波器的级连,因而总的滤波效果等效为通带边缘较低的低通滤波器,合并后得到框图3(b)。
然而,对于上述三个系统,利用原始框图直接实现并不是一个很好的方案。如从图3可以看出,该系统最主要的运算量在滤波器的实现部分,图3(b)中滤波器的采样率为 F3=I,F1=DF2, 滤波运算是在最高采样率的部分实现的,这是不经济的。换一种说法,比如对后两级的系统,经滤波后的序列每D个样本中仅有一个是实际需要的,而D-1样本的运算被丢弃了。
2 FIR滤波器的多相分解与多采样率系统网络变换
利用FIR滤波器的多相分解[1~2]及多采样率系统网络结构的变换[1],可以得到降低了运算代价的采样率变换器的多相结构。
FIR滤波器的多相分解是指将数字滤波器H(z)可分解为若干个不同的组。设H(z)的转移函数为:
式中,N为滤波器长度,设N为D的整数倍, 即N/D=Q, Q为整数,可将冲激响应h(n)分成D个组,且有:
对于多采样率网络,存在下面几个等效变换:
T1: 抽取与乘常数可以换位。
T2: 零值插值和乘常数可以换位。
T3:两个信号先分别抽取然后相加,以及先相加然后抽取等效。
T4:抽样率相同的两个信号先分别零值内插(内插因子相等)然后相加,以及先相加然后零值内插等效。
T5:如果I和D 互质,则抽取与内插可以交换。
此外,Nobel关系式[3]给出了抽取/内插与滤波器级连时如图4所示的等效变换。