本节将通过一个滤波器组的设计任务说明在设计数字信号处理系统时,通过运用多个设计技巧来简化系统设计的复杂度,帮助读者理解本书后续章节的内容。通过思考这些问题,读者会发现高性能数字信号处理的实现远远比算法本身要难得多。
本节给出的设计任务是设计一个滤波器组,用于建立4个独立的通道。在该设计中,输入信号的带宽是100MHz。根据奈奎斯特采样定理,最低的采样频率是200MHz。在该设计中,每个通道的带宽是25MHz,如图2.77所示。滤波器组的输出是4个独立的通道,每个通道都包含原始信号频谱的一部分,如图2.78所示。
图2.77 4个滤波器组的频谱图
图2.78 4个滤波器组的结构
在滤波器组中,每个滤波器的特性为:
(1)通道A滤波器。设计指标为:①低通滤波器;②截止(通带边沿)频率为23MHz;③过渡带为4MHz。
(2)通道B滤波器。设计指标为:①带通滤波器;②低截止(带通边沿)频率为27MHz;③高截止(带通边沿)频率为48MHz;④过渡带为4MHz。
(3)通道C滤波器。设计指标为:①带通滤波器;②低截止(带通边沿)频率为52MHz;③高截止(带通边沿)频率为73MHz;④过渡带为4MHz。
(4)通道D滤波器。设计指标为:①高通滤波器;②截止(通带边沿)频率为77MHz。③过渡带为4MHz。
在所有情况下,目标是阻带衰减达到-50dB(考虑了量化效应)。浮点设计工具可以提供-57dB的衰减,并且通带纹波为0.1dB。
每个滤波器要求133个权值,表示为133个MAC@200MHz。对于这个最初设计,计算成本为
这是一个庞大的运算量。
根据实现这个要求的硬件,通常选择16位输入和16位权值。这样,可以估计一个MAC的操作成本为
因此,对于4个通道滤波器而言,实现532 (133+133+133+133)个MAC操作,要求:
注 :(1)计算成本表示了执行MAC操作的速度。
(2)资源成本表示了在FPGA内实现设计所要求的硬件成本,包括LUT和FF等。
很明显,计算成本和资源成本是相关的。如果计算速度不快,则可以使用串行滤波器,这将减少所消耗的硬件资源量。目前,考虑使用全并行的实现结构。
默认设计消耗136192个全加器(136192个LUT)。所要求的资源太多,因此不得不使用较大容量的FPGA器件。
前面默认使用16位的系数,真是需要这么多吗?通过对量化滤波器设计的分析,发现12位系数足够,如图2.79所示。
图2.79 所设计滤波器的频谱要求:参考和量化比较
因此,如果使用分布式乘法器,需要16×12=192个单元,而不是前面的16×16=256个单元。这样,显著降低了所需的逻辑资源量。
还有什么办法进一步进行设计优化?答案是肯定的。在这个子带结构中,对于所有的滤波器权值而言,通道A(低通滤波器)和通道D(高通滤波器)实际上有相同的幅度。不同之处在于每两个权值是相反的。这也可以用于通道B和通道C,如图2.80所示。
图2.80 不同滤波器的权值特性
因此,对通道A和通道D使用一个滤波器;对通道B和通道D使用一个滤波器,其结构如图2.81所示。很明显,优化后的滤波器结构,其资源成本降低了50%。
图2.81 未优化和优化后的滤波器结构比较
进一步观察通道C的滤波器响应特性,它的系数是对称的。事实上,对于任意FIR滤波器设计而言,这都是成立的。在滤波器结构中,通常可以利用系数对称的特性。在该结构中,将一对来自延迟线上的采样预相加,然后乘以一个相同的权值,如图2.82所示。输入x(k)和输出y(k)之间表示为
图2.82 对称系数的FIR滤波器实现结构
前面提到,乘法器是整个运算中开销最大的部分。通过利用对称系数的性质,将所需乘法器的数量减半。将该方法应用于图2.81给出的通道A和通道D的滤波器设计中,如图2.83所示。很明显,该设计只消耗了4个乘法器。类似地,可以应用到通道B和通道C中。
图2.83 将对称系数用于通道A和通道D中
对于被执行的信道化而言,可以创建4个通道,每处通道25MHz。这样,信号的带宽被限制为25MHz,所以就没有必要继续在200MHz频率进行处理。根据奈奎斯特采样定理,可以将采样率降低到50MHz。在这种情况下,4个独立通道的每个通道混叠结果的属性存在于带宽0~25MHz内,如图2.84所示。
图2.84 滤波器的带宽
现在对于每个通道的设计结构是用于滤波操作的,后面跟着降采样操作(因子为4),从200MHz降低到50MHz,如图2.85所示。从图2.85中可知,降采样率并没有减少计算成本和资源成本。
图2.85 滤波器的整体结构
对于降比为4的降采样而言,就是在每4个采样中只取一个采样,而将其他采样丢弃。很明显,这样做非常浪费。在DSP中,只计算需要的数据。因此,在这种情况下,只计算每次得到的第4个采样值。通过使用多相技术实现高效滤波,使得滤波器的运行速率为输入数据速率的1/4,其原理结构如图2.86所示。
图2.86 多相滤波器的原理结构
注 :(1)要求相同的滤波器设计,只是将滤波器运行在50MHz,而不是200MHz,这样可以节省计算资源。
(2)在这种设计结构中,降采样器和滤波器的顺序进行了调换。
本质上,多相形式是对初始滤波器版本的修改,在该设计中将权值分组到几个相位(在这种情况下,是4个相位,因为降采样比为4)。结果是4个子滤波器,前面是降采样器,如图2.87所示。采用多相形式后,权值数量减少为17个。
图2.87 多相滤波器的具体结构
每个相位由来自最初滤波器权值的子集构成。现在,所有的相位以50MHz的速度采样。因此,可以通过这个较低的运算速率降低多相滤波器的硬件成本,降比可达到4。实现方法包括:①将每相串行化处理;②在所有的4相之间共享时间。
左侧4个子滤波器用于通道A,将其时分复用到单个滤波器上,如图2.87所示。同样地,对于通道B、通道C和通道D,可以做类似的行为。
上面的优化过程涉及滤波器的设计、多速率数字信号处理理论、系数对称、定点理论、算术实现,甚至是底层的乘法器优化。所以,正如作者在本节一开始提到的:要实现满足设计要求的高性能信号处理,远远要比在MATLAB上跑算法复杂得多。