罗兰C前端数字带通滤波器设计与实现

您所在的位置:网站首页 fpga数字滤波器应用 罗兰C前端数字带通滤波器设计与实现

罗兰C前端数字带通滤波器设计与实现

2024-05-23 07:54| 来源: 网络整理| 查看: 265

    罗兰C导航系统是一种采用脉冲相位调制的陆基中远程低频无线电导航系统,是我国独立控制的唯一大型陆基无线电导航系统,也是全球罗兰C系统网的重要组成部分。目前已作为我国卫星定位导航授时(PNT)的最重要备份手段。又由于其工作在低频段,因此具有较强的抗干扰能力和水下接收的可能[1]。研究罗兰C的数字化接收技术对提高罗兰C的利用率和提高军事应用能力具有很大价值。其射频前端的数字带通滤波器是实现数字化接收机的重要组成部分。为此,本文针对罗兰C数字接收机前端滤波的要求,就如何在FPGA上实现罗兰C数字带通滤波器进行了研究。

1.2 FIR滤波器的计算机辅助设计     利用MATLAB信号处理工具箱(fdatool),选取least-squares模式,采样率为1 MHz,按照本设计要求,输入通带(90 kHz~110 kHz)和阻带频率(80 kHz~120 kHz)参数值。为满足其阻带要达到25 dB以上衰减的要求,设计滤波器阶数为127阶,可以得出满足要求的128个滤波器系数,利用FIR滤波器系数的对称性,选取前64个系数并乘212取整后的滤波器参数如表1所示。

2 硬件设计与实现 2.1 硬件电路结构设计     要实现前端数字滤波,首先要对天线接收来的信号进行数字化处理。由于天线端接收的信号非常微弱,进行数字化处理之前必须放大处理。系统硬件设计是以Altera公司的EP2C8Q208C芯片为核心,由磁天线接收的罗兰C信号经过以运算放大器MAX4418为核心的低噪声放大(LNA)后,经过12 bit的ADC芯片AD9235转换成数字信号输入到FPGA芯片内,经FPGA内部运算实现信号的数字滤波,输出经由12 bit的DAC芯片AD9752转换成模拟信号,经过平滑处理送往罗兰C接收机,也可以直接数字输出到数字接收机或者数据采集计算机,从而实现接收机定位和数据采集分析的目的。电路结构图如图2所示。

    FIR滤波器只在原点处存在极点,所以具有全局稳定性,由一个“抽头延迟线”、加法器、乘法器的集合构成,是一个典型的乘累加结构,很方便进行FPGA实现。乘累加运算的次数由滤波器的阶数来决定,但乘法运算十分耗费资源。利用传统的MAC方式只能实现较低阶的数字滤波器,而要满足罗兰C前端的滤波要求则需要高达127阶的高阶滤波器,如此作为主芯片的EP2C8Q208C就很难满足其资源要求。可以考虑采用分布式算法(Distributed Arithmetic)来实现,以达到节约资源和提高运算速度的目的。2.3 分布式算法原理     分布式算法是在30年前被首次提出的,但直到Xilinx公司发明FPGA的查找表结构以后,DA算法才广泛应用在计算乘积和之中。对于FIR滤波器,其基本结构是一个分节的延时线,每一节的输出加权累加,得到滤波器的输出。其输出y就是输出x与系数h的内积[4]:  2.4 改进的分布式算法     查找表(LUT)的大小是由滤波器的阶数决定的,N阶滤波器则共需要2N个查找表单元。若已知滤波器的系数位宽为B bit,则表中每个存储单元的数据位宽可表示为(B+ log2127)bit,所以要完成127阶滤波器需要(B+log2127)× 2127 bit的RAM。为了减小查找表的规模可以利用FIR滤波器的线性特性采用部分表计算,如此一个高阶滤波器的输出即是低阶滤波器输出的相加值。在设计中将每4个滤波器系数作为一个小的查找表,每个查找表的规模为(B+log24)×24 bit。利用FIR滤波器系数的对称性,将对应对称系数的输入数据预相加后再查找表,这样128个系数可以缩减为64个,如此实现整体的查找表则共需要(B+log24)×24×64 bit。如此规模的RAM硬件是可以接受的,而且不会降低滤波器的处理速度。将每个查找表的输出分别相加后再经过二次幂加权相加即可。实现原理如图5所示,每个查找表的内容如表2所示[5-6]。

    fs为信号采样率,B为处理数据的位宽,fsc为单比特流控制时钟频率。即:fs可以由fsc分频得到(或fsc可以由fs倍频得到)。设计中AD9235采样数据的位宽为12 bit,根据FIR滤波器的系数对称性,简化硬件实现考虑将对应对称的两个输入数据相加,相加后数据处理位宽为13 bit。考虑到主控制时钟,可以选定FPGA的最高时钟工作频率为fsc=fs×13=13 MHz,而13为质数,很难经过分频或者有10 MHz的晶振倍频得到。为方便工程化实现,考虑将处理数据位宽扩展,同时为节约资源又不宜采用太大的位宽。如此将滤波器主体时钟设置为15 MHz。其中原始输入时钟为10 MHz,经过PLL进行3倍频到30 MHz时钟,再2分频即可得到15 MHz主控制时钟。设置15 MHz时钟为设计中串行移位控制时钟,计数状态从0~14即计15个数,因此可以将数据位拓宽到14 bit。具体设计流程如图6所示。

 

 

    利用$fdisplay函数将 modelsim中滤波器的输出数据保存为txt文件,对比matlab中设计滤波器的输出数据显示两组数据完全相同,证明了滤波器功能设计成功。用matlab对testbench中的输入输出数据进行分析,结果如图8所示。因为滤波器系数乘212取整,所以输出结果数据放大了212倍,为方便观察没有进行放缩。经过对比可以发现,滤波器的滤波效果明显,经过滤波器后信号的信噪比有了很大的提高,滤波器可以成功地抑制一些带外噪声和干扰。图中显示的波形重叠现象是因为晚上电离层高度变化天波干扰了地波,采集的数据中存在天波干扰,天波干扰属于带内同频干扰,用一般的频域滤波器不能将其消除,可以考虑在接收机内部进行自适应滤波以消除带内噪声。

    图9所示是在白天避开天波干扰的情况下,将设计的硬件电路进行现场测试接收的罗兰C信号示波器显示波形,实测显示滤波器功能良好。

    本文研究了罗兰C前端数字带通滤波器的设计与FPGA实现。主要讨论高阶FIR滤波器在FPGA上的实现方法以及具体实现过程要注意的一些问题。根据设计指标在FPGA上实现了满足要求的127阶数字带通滤波器。分布式算法避开了繁杂的乘法运算,尤其对采样率不高、数据位宽也比较小的情况下,有比较明显的优势,其处理速度明显的要高于MAC结构,并且可以减少资源的消耗。最终仿真和实测结果均显示,依据此方法设计的滤波器完全满足设计要求。由此方法设计的滤波器下步将用在罗兰C软件接收机上,结合实际的装备进行定位效果的测试。参考文献 [1] 崔国恒,曹可劲,许江宁,等.磁天线水下接收罗兰C信号可行性研究[J].弹箭与制导学报,2010,30(6):180-182. [2] 吴苗,朱涛,李方能,等.无线电导航原理及应用[M].北京:国防工业出版社,2008. [3] 胡广书.数字信号处理(第2版)[M].北京:清华大学出版社,2003. [4] UWE M B.Digital signal processing with field programmable  gate arrays[M].刘凌,译.北京:清华大学出版社,2003. [5] 田耘,徐文波,张延伟.无线通信FPGA设计[M].北京:电子工业出版社,2008. [6] 朱好学.基于FPGA的高阶FIR滤波器设计[D].南京:南京理工大学,2008. [7] 黄仰博.基于FPGA的数字滤波器实现技术研究[D].长沙:国防科技大学,2004.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3