2 FPGA设计
2.1延迟和抽取
以下选用具体的例子来阐述复多相滤波器的FPGA设计方法。对于8信道的多相滤波器,其抽取因子为4的情况,经过延迟单元进入各抽取器的顺序如表1所列。
观察表1可知,进入每个子信道的数据都是4倍抽取。而且4信道比8信道延迟一个数据,3信道比7信道延迟一个数据,依此类推。这样,就可以将信道分为两部分,即1、2、3、4信道是一部分,5、6、7、8信道是另一部分。
由于每个子信道的滤波系数为12个,即每个抽取器必须同时输出12个数据与一个子信道的12个滤波系数进行乘加运算。采用可定制模块shift_tap,能够满足这样的延迟和抽取要求,它的输出即为抽取器的输出。若将shift_tap中的抽取因子设为4,一次同时输出13个数据,那么,第一次输出的13个数据为x(0)、x(4)、x(8)、……、x(56),这样可将1-12送入8信道,2-13送入4信道进行乘加运算;而第二次输出的13个数据为x(1)、x(5)、x(9)……、x(57),其中1-12送入7信道,2-13送人3信道,依此类推……这样,每个时钟节拍将得到两个信道的延迟和抽取输出,因而需要4次这样的操作才能完成一次所有信道的延迟和抽取。然后再重复执行以上操作。
2.2 滤波器的多相分量
设计多相分量时,首先可根据原低通滤波器的频率响应确定所需的滤波器类型和阶数,以求出冲击响应h(n);然后再根据式hp(m)=h(mD+p),D=8,p=0,1,…D-1来确定多相分量。
若采样频率fs为64 MHz,并把64 MHz带宽均匀划分为8路子信道,则每路通带的带宽为8MHz。图3所示是原型低通滤波器的频率响应图。