基于 FPGA 的北斗导航自适应抗干扰算法设计与实现
卫星导航已成为现代生活不可或缺的基础设施,尤其在国家安全领域扮演着关键角色。然而,复杂的电磁环境对导航系统的稳定性构成了严峻挑战。为了使导航系统不受干扰的影响,本文以北斗导航系统为平台,研究基于阵列天线的自适应抗干扰算法。
算法原理与方案选择
文章首先介绍了自适应抗干扰算法的原理和方法,并在 MATLAB 中建立阵列模型,对基于功率倒置算法的空域抗干扰算法和空时联合抗干扰算法进行性能仿真。然后根据系统的指标,确定了在 FPGA 中实现抗干扰算法的方案,包括数字下变频(DDC)、权值计算、数据加权、数字上变频(DUC)等模块。
根据权值计算模块实现方式的不同,我们提供了两种抗干扰算法在 FPGA 中实现的方案:
- 基于 NIOS II 软核:将权值计算的过程放在 NIOS II 软核中,用 C 语言进行实现。
- 基于逻辑语言:即用硬件描述语言 Verilog HDL 进行权值的计算。
权值计算涉及到浮点数运算和 Hermite 矩阵求逆,本文给出了各模块的设计方法和仿真结果,并与 MATLAB 仿真结果进行对比。最后给出了两种实现方案的实测结果,表明两种实现方案都具备抗干扰性能,验证了抗干扰系统的正确性。
实验平台搭建
本章主要对空域和空时两种抗干扰算法进行实测验证。权值计算 FPGA 实现的过程中,两种算法的区别主要在于协方差矩阵的维数上。空域算法协方差矩阵维数低,采用分块求矩阵逆的方法,占用资源少,权值更新时间短,选用低成本、低功耗的 Cyclone III 系列作为实现平台即可。空时算法协方差矩阵为高阶矩阵,分块求矩阵逆的方法不再适合。Cyclone V 系列提供了实数矩阵求逆的 IP 核,在该 IP 核的基础上可以快速求出复数共轭对称矩阵的逆。
硬件架构
图 6.1 是系统的数字板结构框图。数字板主要由一片 FPGA 芯片、一片时钟芯片、一片 4 通道 ADC 芯片、一片配置芯片、一片 DA 芯片组成。为了实现低功耗、小型化的设计要求,ADC 芯片选用 AD9253。ADC 采样后的信号传送到 FPGA。在 FPGA 芯片中完成数字下变频、空域滤波(空时二维联合)算法、数据加权,然后再数字上变频,交给射频通道进行模拟上变频后,最后把数据交给接收机进行解调。

空域算法的 FPGA 实验板主要是由 ALTERA 公司的 EP3C120F780 芯片和 ADI 公司的 AD9268 芯片组成,空时算法的 FPGA 实验板主要是由 ALTERA 公司的 5CGXFC7C6F23I7 芯片和 ADI 公司的 AD9253 芯片组成。可见少了 DSP 芯片后整个数字板的功耗、尺寸以及成本都大大降低。
测试环境
整个实验环境的搭建与仪器使用情况如图 6.3 所示。系统的工作流程如下:
- 搭建实验环境,将北斗导航抗干扰天线置于二维转台上,可以测试天线各个方向上的抗干扰性能,并模拟干扰源运动的情况下抗干扰天线能否正常搜星定位。
- 调节信号源的输出信号,包括信号的大小、类型(点频、宽带等)。
- 启动转台,将天线 360 度旋转。
- 在 PC 端观察北斗导航抗干扰天线在有干扰下的搜星定位是否正常。
实验的判断指标主要包括:输出频谱是否稳定;搜星数量是否大于等于 4 个,是否会发生丢星现象;通过 SignalTap 抓取抗干扰前后的数据进行 MATLAB 分析;对比 MATLAB 与 FPGA 抗干扰之后的频谱图。
模块实测结果分析
ADC 模块验证
本系统选取的 ADC 是串行 LVDS 输出的 AD9253。AD9253 单个芯片包括四个通道,且采用的是 48 脚的 LFCSP 封装,大大简化了 PCB 布线工作。AD9253 的采样率可以达到 125MSPS,而且支持双倍速率(DDR)操作。AD9253 采用串行 LVDS 电平信号数据输出,拥有 14bit 分辨率。
ALTLVDS_RXIP 核的主要参数设置如下:输入通道数为 9,解串行化因子为 8,数据速率为 496Mbps,时钟频率为 248MHz。将程序下载到数字板中,加入 5MHz、0dB 的输入信号,SignalTap 抓取的 ADC 采样数据波形正常。
DDC 与 DUC 功能验证
将 FPGA 中的 jic 文件烧写到 EPCS 配置芯片中,重新上电后,程序自动启动。用 SignalTap 抓取进入 DDC 模块前后的数据,在 MATLAB 中画出频谱曲线。加点频干扰时,AD 的采样频率为 62MHz,下变频后,信号频谱由原来的 15.5MHz 搬移到零频。加宽带干扰时,中心频率经过下变频也由原来的 15.5MHz 搬移到零频,验证了下变频模块设计的正确性。


