Design of High Speed Parallel FIR Filter Based on Polyphase Decomposition Technology
许自阳 XU Zi-yang
(北京镭航世纪科技有限公司,北京 100000)
(Beijing LION Technology Co.,Ltd.,Beijing 100000,China)
摘要:在宽带信号采样的情况下,基带部分需要进行高速数据处理,此时单通道数据处理很难满足时序要求。而并行数据处理会占用大量的FPGA资源,这就需要对并行算法进行优化。在不同的场景下输出数据速率要求不同,这就要求进行数据速率变换。本文讨论了如何对并行FIR滤波器进行优化设计,同时也论述了如何利用多相分解技术进行数据速率变换,结果说明优化后的算法能大幅减少FPGA资源的消耗,并能适应多速率数据变换的应用场景。
Abstract: In the case of wideband signal sampling, the baseband requires high-speed data processing, however, the parallel design will occupy a large amount of FPGA resources, which requires optimization of parallel algorithms. in different application scenarios, the output data rate requirements are different. This requires data rate conversion while parallel processing. This paper discusses how to optimize the parallel FIR filter, and also discusses how to use the polyphase decomposition technique for data rate conversion. The result shows that the optimized algorithm can greatly reduce the consumption of FPGA resources and can adapt to the multi-rate application.
关键词:并行FIR滤波器;多相分解;多速率变换
Key words: parallel FIR filter;polyphase decomposition;multi-rate transform
中图分类号:TN713 文献标识码:A 文章编号:1006-4311(2019)21-0197-04
0 引言
在雷达和通信领域中,高速数据采集对于宽带信号处理极为关键,并行FIR滤波器设计是高速数据处理必不可少的元素。在多数文章中,多相分解技术仅用于进行整数倍抽取的讨论。本文结合实际需求,进一步论述了如何利用多相分解技术进行速率变换,如何进行并行FIR滤波器设计和优化。
1 M倍抽取的多相分解结构
设一个因果有限脉冲响应数字滤波器的单位脉冲响应为 h(n),n=0,1,2,… N-1,则其相应的系统函数 H(Z)可以表示为:■(1)
即有:
■
可以将系统函数拆分为M组:
■
■
■(2)
其中
■
由于: ■(6)
则M倍抽取的多相分解结构如图1所示,需要注意的是X(n-1)先于X(n)到来:
如果是单路输入系统,则输入部分,可以看作一个数据分发器。由于该结构进行M倍抽取,即经过M个时钟周期,系统完成一次输入,一次输出。若输入数据速率为K,可知,输出数据速率为K/M,这就是众所周知的多相分解抽取技术。可以通过该技术可以将基带处理时钟频率降为原来的1/M,这便意味着基带处理时钟周期变为原来的M倍,这对于提高系统时序性能至关重要。
在输入数据速率比较高的情况下,单路输入很难满足时序要求,所以多数情况下采用M路并行输入系统,只要去掉图1中数据分发器,便可得到M路并行输入系统框图,该系统每个时钟周期完成M个样本点输入,一个样本点输出。如果数据速率为K,输出数据速率则为K/M。则该系统在降低时钟周期的同时,输入数据总线上的速率也同时降低。
2 数据速率变换
从上面论述中我们可知,图1所示结构是对输入进行M倍抽取,输出依次为y(n)、y(n+M),y(n+2M)…。但多数情况下要求输出频率是输入速率的K/M倍(K=1,2,…M),此时需要恢复y(n)到y(n+M)之间的样本输出,我们可以进行如下讨论:
若用公式(2)到公式(5)来表示图1中每个分支的系统函数,则可以将图1所示结构简化为图2所示结构。
由线性移不变性质可知:
■
则由公式(6)可知:
■
■
依次类推:
■(7)
其中L=0,1,2…M-1
由公式(7)可以看出,如果想要得到系统输出y(n+L),则系统输入端应为x(n-k+L)而x(n-k+L)可由x(n-k)延迟L个时钟周期得到,从而可以得到输出为y(n+L)的系统结构图3。
按照速率变换要求,输出数据速率是输入速率的K/M倍(K=1,2,…M),则系统在有M路输入的情况下,需要有K路输出,此时输出速率:
■(8)
若记图3所示结构系统函数为H(Z),为了得到公式(8)所示数据速率,系统框图需要拓展为:
对于M路并行输入系统,假如输入数据速率为:Ratain,输出速率为Rataout则系统处理需要图3所示结构数量:
■,其中■
对于基带处理(每路数据对应一组I,Q数据)而言,系统处理需要图3所示结构数量为:■
基于模块复用的理念,我们希望每个模块结构要保持一致,即各个子系统系数长度要保持一致,记为R,则系数总长度L为:
L=RM,其中R=1,2,3…(9)
此时共需要乘法器个数为:
■(10)
需要加法器个数为:
■(11)
乘法器资源消耗是评判一个算法是否优化的重要指标,在高速采样中,按照图3结构进行处理,由公式(10)可知乘法器数量规模还是比较大,而图3所示结构并没有利用系数对称的性质,如果利用系数对称性,可以进一步减少乘法器数量。
3 并行FIR滤波器设计和优化
由公式(2)到公式(5),以及图1可知,对h(n)分成M组,便可以得到每个子系统的系统函数,其中j代表第几个分支系统:
■(12)
实际应用时,n不可能取到无穷大,只需取到特定长度,设n=0,1,2…R-1则公式(12)修改为:
■(13)
从而得到各个子系统系数列表1。
表1中FIR系数通常按照带宽、采样率、滤波器类型等特定需求设定。通过MATLAB中FDATOOL 软件可以方便的完成设计,并获取系数。在此不再赘述。
通常通道个数M常取:
■(14)
因而我们只讨论M为偶数的情况(M为奇数时情况类似)。如果用n1表示系数位于表中第几行,用j1表示系数位于表中第几列则有:
■
FIR在满足因果的条件下,系数是对称的,由公式(9),公式(14),可知系数应满足偶数的偶对称。
此时有:
■
■其中■
从而可以将高位系数替换,得到系数列表2。
从表2中可以看到每个子系统的系数仍然不满足对称性质,但将第j列系数加上第M-1-j列系数后,每个子系统第n行系数和R-1-n行系数则变对称,从而我们可以构造如下对称系数列表3。
第1个子系统系数对应第1列系数,第2个子系统对应第2列,依次类推。由表3可知每个子系统中系数第n行系数和第R-1-n行系数相等,即满足对称性要求,我们已知图3所示系统满足线性移不变特性,通过简单的运算便可以得到各个子系统的输出结果。对图3构造修改后的结构如图5所示。
和图3同条件下,图5所示系统需要乘法器个数为:
■(15)
需要加法器个数为:
■(16)
对比公式(10),公式(15)可知改造后的系统乘法器个数减少为原来的1/2,对比公式(11),公式(16)可知加法器增多了■*M*4L个,FPGA乘法器资源相对于加法器资源要紧张些,由上述讨论可知,优化后的算法能大幅减少系统对乘法器要求。
4 结束语
本文详细阐述了在工程领域中,并行FIR的设计理念及其优化方法。在雷达信号处理,图像信号处理等需要高速信号的领域中,本文讨论的并行FIR设计能大幅降低系统对FPGA的时序和资源的要求,本文的论述在各个工程领域中,对高速并行FIR的设计有很大的参考价值。
参考文献:
[1]杜勇.数字滤波器的MATLAB与FPGA实现[M].北京:电子工业出版社,2017-09-01.
[2]John G.Proakis,Dimitris G.Manolakis .Digital Signal Processing,Fourth Edition. [M]北京:电子工业出版社2014-08-01.
[3]陶然,张慧云,王越.多抽样率数字信号处理理论及应用[M]北京:清华大学出版社. |