基于FPGA的北斗导航自适应抗干扰算法的设计与实现(任务书+开题报告+文献综述+代码+仿真+实物+毕业论文)
摘 要
如今,随着卫星导航技术的飞速发展,位置信息服务已经融入到我们的日常生活中,导航目前被称为继移动互联网后第三大产业。卫星导航在维护国家的安全中也发挥着不可替代的作用。为了使导航系统不受干扰的影响,本文以北斗导航系统为平台,研究基于阵列天线的自适应抗干扰算法。
首先,文章就自适应抗干扰算法的原理和方法进行了系统介绍,并在MATLAB中建立阵列模型,对基于功率倒置算法的空域抗干扰算法和空时联合抗干扰算法进行性能仿真。然后根据系统的指标,确定了在FPGA中实现抗干扰算法的方案,包括数字下变频、权值计算、数据加权、数字上变频等模块。根据权值计算模块实现方式的不同,本文提供了两种抗干扰算法在FPGA中实现的方案:一种是基于FPGA嵌入式软核NIOS II的抗干扰实现,将权值计算的过程放在NIOS II软核中,用C语言进行实现;另一种是基于逻辑语言的抗干扰算法的实现,即用硬件描述语言Verilog HDL进行权值的计算。权值计算涉及到浮点数运算和Hermite矩阵求逆,本文给出了各模块的设计方法和仿真结果,并与MATLAB仿真结果进行对比。最后给出了两种实现方案的实测结果,表明两种实现方案都具备抗干扰性能,验证了抗干扰系统的正确性。
关键词:空域滤波,空时自适应处理,矩阵求逆,浮点运算,DDC,FPGA,NIOS II




目 录
4.3.1 NIOS II计算的权值与Microsoft Visual C++ 6.0计算结果的对比
6 北斗导航系统抗干扰算法实测验证
本章主要对空域和空时两种抗干扰算法进行实测验证。权值计算FPGA实现的过程中,两种算法的区别主要在于协方差矩阵的维数上。空域算法协方差矩阵维数低,采用分块求矩阵逆的方法,占用资源少,权值更新时间短,选用低成本、低功耗的CYCLONE III系列作为实现平台即可。空时算法协方差矩阵为高阶矩阵,分块求矩阵逆的方法不再适合。CYCLONE V系列提供了实数矩阵求逆的IP核,在该IP核的基础上可以快速求出复数共轭对称矩阵的逆。
6.1 抗干扰算法的硬件实现平台和实验场景的搭建
图6.1是系统的数字板结构框图。数字板主要由一片FPGA芯片、一片时钟芯片、一片4通道ADC芯片、一片配置芯片、一片DA芯片组成。为了实现低功耗、小型化的设计要求,ADC芯片选用AD9253。ADC采样后的信号传送到FPGA。在FPGA芯片中完成数字下变频、空域滤波(空时二维联合)算法、数据加权,然后再数字上变频,交给射频通道进行模拟上变频后,最后把数据交给接收机进行解调。

图6.1 系统的数字板结构框图
空域算法的FPGA实验板主要是由ALTERA公司的EP3C120F780芯片和ADI公司的AD9268芯片组成,空时算法的FPGA实验板主要是由ALTERA公司的5CGXFC7C6F23I7芯片和ADI公司的AD9253芯片组成,两种算法使用的数字板的实物图如图6.2所示。


a)空域算法数字板 b)空时算法数字板
图6.2 抗干扰算法的硬件实现平台
图6.2(a)中1是FPGA芯片,2、3是AD芯片,4是时钟分配芯片,5是FLASH,6、7是两个DSP芯片(本文没有用到),8是DA芯片。数字板的尺寸为95mm*95mm。图6.2(b)中1是FPGA芯片,2是AD芯片,3是DA芯片,5是晶振,数字板的尺寸为58mm*45mm。可见少了DSP芯片后整个数字板的功耗、尺寸以及成本都大大降低。整个实验环境的搭建与仪器使用情况如图6.3所示。

图6.3 北斗导航抗干扰系统实验环境
图6.3中,1是抗干扰天线,2、3、5是3个方位角俯仰角均不同的干扰源天线,4是二维转台,6是信号源,7是便携式频谱仪,8是接收机,9是直流电源,10是电脑,11为八角天线。整个系统的工作流程为:
(1)搭建图6.3所示的实验环境。将1北斗导航抗干扰天线置于4二维转台上,可以测试天线各个方向上的抗干扰性能,并模拟干扰源运动的情况下抗干扰天线能否正常搜星定位。由于是4单元天线阵列,因此抗干扰天线最多能在3个干扰源下正常工作,将3个干扰源架在3个方位角不同的位置,同时调节干扰源的俯仰角角度。将6信号源与3个干扰天线相连作为干扰源,用11八角天线标定干扰源到达天线阵面的干扰信号功率的大小并调节干扰源到适当位置。将1导航天线与8接收机相连,并将接收机通过串口线RS232连接到10电脑,用搜星软件进行搜星定位。也可以用7频谱仪观察抗干扰天线输出的信号频谱,判断干扰是否被抑制。待整个环境搭建好之后,开启9直流电源,整个系统开始工作。
(2)调节6信号源的输出信号,包括信号的大小、类型(点频、宽带等)。
(3)启动转台,将天线360度旋转。
(4)在10PC端观察北斗导航抗干扰天线在有干扰下的搜星定位是否正常。
实验的判断指标主要包括:
(1)输出频谱是否稳定。
(2)搜星数量是否大于等于4个,是否会发生丢星现象。
(3)通过signaltap抓取抗干扰前的数据和抗干扰后的数据,在MATLAB中分析FPGA抗干扰的效果。
(4)将signaltap抓取的干扰数据在MATLAB中进行仿真,对比MATLAB与FPGA抗干扰之后的频谱图。
6.2 各模块实测结果分析
6.2.1 模数转换器ADC(AD9253)
本系统选取的ADC是串行LVDS输出的AD9253。AD9253单个芯片包括四个通道,且采用的是48脚的LFCSP封装,大大简化了PCB布线工作,同时减少了在数字板上的使用面积。AD9253的采样率可以达到125MSPS,而且支持双倍速率(DDR)操作。AD9253采用串行LVDS电平信号数据输出,拥有14bit分辨率,数据读取操作简单,接口时序如图6.4所示。其中CLK为差分采样时钟对,DCO是输出比特数据同步时钟, FCO为字节标志位,标志一个字节数据的开始。AD9253的数据不是高低位依次输出的,因此需要在FPGA中根据标志位将数据重新组合,完成串并转换功能。AD9253是14位分辨率,输出16位的时候,默认最低两位为0。

图6.4 AD9253接口时序图
ALTLVDS_RXIP核的主要参数设置如下:
(1)输入通道数为9。包括8对分别为A、B、C、D 四个通道的串行数据差分对:D0_A、D1_A、D0_B、D1_B、D0_C、D1_C、D0_D、D1_D,还有一对为帧时钟差分对FCO。
(2)解串行化因子为8,表示每8个串行数据转化为一个8位的并行数据。
(3)数据速率为496Mbps,时钟频率为248MHz。
将程序下载到数字板中,加入5MHz、0dB的输入信号,signaltap抓取的ADC采样数据如图6.5所示。

图6.5 5MHz、0dB的输入信号signaltap时域波形图
6.2.2 下变频DDC模块功能验证
将FPGA中的jic文件烧写到EPCS配置芯片中,重新上电后,程序自动启动。用signaltap抓取进入DDC模块前后的数据,在MATLAB中画出频谱曲线,如图6.6所示。


a)加点频干扰时AD采样的信号频谱 b)加点频干扰时DDC后的信号频谱


c)加宽带干扰时AD采样的信号频谱 d)加宽带干扰时DDC后的信号频谱
图6.6 点频信号和宽带信号经过数字下变频后的频谱图
图6.6(a)、(b)是加1.26852GHz点频干扰时下变频前后的数据。AD的采样频率为62MHz。下变频后,信号频谱由原来的15.5MHz搬移到零频。图6.6(c)、(d)是加中心频点为1.26852GHz、带宽为20MHz的宽带干扰的情况。宽带干扰的信号中心频率经过下变频也由原来的15.5MHz搬移到零频,可以验证下变频模块设计的正确性。
6.2.3 上变频DUC模块功能验证
用signaltap抓取上变频DUC模块的输入输出端口的数据,在MATLAB中画出频谱图,如图6.7所示。


a)DUC输入信号频谱 b)DUC输出信号频谱
图6.7 抗干扰后的宽带信号经过数字上变频后的频谱图
图6.7(a)、(b)分别是上变频变频模块输入、输出端口的数据。上变频的工作时钟为124MHz。由图可以看出,通过上变频模块后,信号频率又由零频搬回原来的中频频率46.5MHz,可以验证上变频模块的正确性。
6.3 抗干扰系统性能验证
将上下变频模快、协方差矩阵计算模块、权值计算模块、数据加权模块联合起来的顶层模块图如图6.8所示。


图6.8 北斗导航抗干扰算法顶层模块图
对顶层模块进行编译,空域算法与空时算法的资源占用情况如表6.1所示。
表6.1 空域算法与空时算法资源占用情况
算法 | 空域 | 空时 |
Device | EP3C120F780C7 | 5CGXFC7C6F23I7 |
Total logic elements | 108742/119088(91%) | |
Logic utilization (in ALMs) | 26,236/56,480(46% ) | |
Total registers | 68578 | 42098 |
Total memory bits | 1016612/3981312(26%) | 831,442/7,024,640(12% ) |
Embedded Multiplier 9-bit elements | 576/576(100%) | |
Total DSP Blocks | 156/156(100% ) |
将两种抗干扰算法的jic文件分别烧写到EPCS配置芯片中,重新上电后,程序自动启动。用signaltap抓取权值,根据两次权值更新所需的时钟周期,可以计算出抗干扰算法权值更新的时间。空时算法的计算时间比较长,可以通过计数器求得两次权值输出有效标志位的上升沿之间的时钟周期求得整个算法权值更新的时间。

a)空域算法

b)空时算法
图6.9 抗干扰算法权值更新时间
根据图6.9可以算出,空域算法权值计算的工作时钟为124MHz,权值更新共需要1284个时钟周期,因此权值更新时间为10μs。而空时算法两次权值更新共需要25879个时钟,也就是0.21ms。两种算法在FPGA中权值更新的速度都有很大的提高。
为了验证空域算法抗干扰的性能,调节信号源,将干扰调为干信比为78dB的宽带干扰,通过signaltap同时抓取下变频数据以及抗干扰之后的数据,导入MATLAB进行分析,图6.10(a)是抗干扰前后的信号频谱图。将下变频的数据导入MATLAB,在MATLAB中进行抗干扰后,画出抗干扰后的频谱曲线,与数字板抗干扰的频谱图进行对比,如图6.10(b)所示。


a)数字板抗干扰性能 b)MATLAB与数字板抗干扰性能对比
图6.10 空域算法抗干扰性能验证
图6.10(a)中红色的曲线是抗干扰前的信号频谱图,蓝线是抗干扰之后的信号频谱图,可以发现程序有抗干扰效果。图6.10(b)中红色的曲线是数字板抗干扰之后的信号频谱图,蓝线是MATLAB抗干扰之后的信号频谱图。可以看出在干信比为78dB的宽带干扰下,FPGA抗干扰和MATLAB抗干扰效果相当。此干扰下,导航天线的能正常搜星定位,但载噪比已经到达接收机灵敏度的极限值30dB,如图6.11(b)所示。

a)未加干扰

b)加78dB宽带干扰
图6.11 干信比为78dB的宽带干扰下导航天线的搜星定位情况
6.4 本章小结
本章主要介绍了北斗导航抗干扰系统的实验平台,并给出了抗干扰算法的实测结果。首先介绍了抗干扰算法的硬件实现平台、系统外场测试的环境搭建和实验使用的各种实验仪器。然后给出了整个FPGA程序的顶层模块图和资源占用情况,并用逻辑分析仪抓取数据,给出两种算法权值的更新时间。把signltap抓取的数据导入MATLAB,先画出上下变频前后的频谱图,验证上下变频模块的正确性,然后对比FPGA数字板抗干扰与MATLAB抗干扰的性能,验证了FPGA抗干扰程序的正确性。最后给出了整个系统在空域抗干扰算法下加干扰前后的搜星定位图,验证了整个系统的抗干扰性能。