基于FPGA的北斗导航自适应抗干扰算法的设计与实现(任务书+开题报告+文献综述+代码+仿真+实物+毕业论文)

基于FPGA的北斗导航自适应抗干扰算法的设计与实现(任务书+开题报告+文献综述+代码+仿真+实物+毕业论文)

摘   要

如今,随着卫星导航技术的飞速发展,位置信息服务已经融入到我们的日常生活中,导航目前被称为继移动互联网后第三大产业。卫星导航在维护国家的安全中也发挥着不可替代的作用。为了使导航系统不受干扰的影响,本文以北斗导航系统为平台,研究基于阵列天线的自适应抗干扰算法。

首先,文章就自适应抗干扰算法的原理和方法进行了系统介绍,并在MATLAB中建立阵列模型,对基于功率倒置算法的空域抗干扰算法和空时联合抗干扰算法进行性能仿真。然后根据系统的指标,确定了在FPGA中实现抗干扰算法的方案,包括数字下变频、权值计算、数据加权、数字上变频等模块。根据权值计算模块实现方式的不同,本文提供了两种抗干扰算法在FPGA中实现的方案:一种是基于FPGA嵌入式软核NIOS II的抗干扰实现,将权值计算的过程放在NIOS II软核中,用C语言进行实现;另一种是基于逻辑语言的抗干扰算法的实现,即用硬件描述语言Verilog HDL进行权值的计算。权值计算涉及到浮点数运算和Hermite矩阵求逆,本文给出了各模块的设计方法和仿真结果,并与MATLAB仿真结果进行对比。最后给出了两种实现方案的实测结果,表明两种实现方案都具备抗干扰性能,验证了抗干扰系统的正确性。

关键词:空域滤波,空时自适应处理,矩阵求逆,浮点运算,DDC,FPGA,NIOS II

目   录

摘   要

Abstract

1 绪论

1.1 课题研究背景及意义

1.1.1 北斗导航技术的发展现状

1.1.2 北斗卫星导航系统抗干扰研究的必要性

1.2 自适应抗干扰算法国内外研究现状

1.3 FPGA实现抗干扰算法的优势

1.4 论文的主要工作和结构安排

2 自适应抗干扰技术的基础理论研究

2.1 自适应阵列处理的信号接收模型

2.2 自适应波束形成的寻优准则

2.2.1 最小噪声方差准则(MNV)

2.2.2 最小均方误差准则(MMSE)

2.2.3 最大信干噪比准则(MSINR)

2.3 自适应波束形成器

2.3.1 MVDR(最小方差无失真响应)波束形成器

2.3.2 LCMV(线性约束最小方差)波束形成器

2.4 空域滤波算法

2.4.1 功率倒置算法

2.4.2 空域滤波算法的性能仿真

2.5 空时二维联合算法

2.6 本章小结

3 抗干扰算法预处理模块

3.1 采样率的选择

3.2 数字混频器

3.2.1 系统数字混频方案介绍

3.2.2 数字变频的原理与设计

3.2.3 免乘法器与NCO的混频器的设计

3.3 多速率数字信号处理

3.3.1 抽取

3.3.2 内插

3.4 FIR滤波器的设计

3.5 数字下变频的FPGA实现仿真结果

3.5.1 常规混频器与免乘法器的混频器资源使用对比

3.5.2 常规混频器的Modlesim仿真结果

3.6 本章小结

4 基于NIOS II嵌入式软核的抗干扰算法的FPGA实现

4.1 Qsys系统模块的创建

4.2 抗干扰算法的软件开发

4.3 基于NIOS II的抗干扰算法实现的性能验证

4.3.1 NIOS II计算的权值与Microsoft Visual C++ 6.0计算结果的对比

4.3.2 抗干扰前后的频谱图对比

4.3.3 权值更新的时间

4.4 本章小结

5 权值计算模块与数据加权模块的FPGA设计与仿真

5.1 浮点数运算

5.1.1 浮点数的定义

5.1.2 整数转换为浮点数

5.1.3 浮点数的加(减)法

5.1.4 浮点数乘法

5.1.5 浮点数除法

5.1.6 浮点数复数乘法

5.1.7 浮点数与整数的转换

5.2 矩阵求逆的几种方法

5.2.1 伴随矩阵求矩阵逆

5.2.2 分块矩阵求矩阵逆

5.2.3 复数矩阵求矩阵逆

5.3 空域算法与空时二维联合算法的FPGA实现

5.3.1 协方差矩阵的FPGA实现

5.3.2 二阶复数矩阵乘法以及求逆的FPGA实现

5.3.3 四阶协方差矩阵求逆的FPGA实现

5.3.4 十六阶协方差矩阵快速求逆的FPGA实现

5.3.5 权值计算模块的FPGA实现

5.4 数据加权模块的设计与仿真

5.5 本章小结

6 北斗导航系统抗干扰算法实测验证

6.1 抗干扰算法的硬件实现平台和实验场景的搭建

6.2 各模块实测结果分析

6.2.1 模数转换器ADC(AD9253)

6.2.2 下变频DDC模块功能验证

6.2.3 上变频DUC模块功能验证

6.3 抗干扰系统性能验证

6.4 本章小结

7 总结与展望

致    谢

参考文献

附    录

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抗干扰程序的正确性。最后给出了整个系统在空域抗干扰算法下加干扰前后的搜星定位图,验证了整个系统的抗干扰性能。

Read more

还在为每个平台单独开发机器人?用Kirara AI,一次开发,全平台部署智能客服与助手

Kirara AI:一个开源多模型、多平台AI机器人框架的架构与实现深度解析 1. 整体介绍 1.1 项目概要 Kirara AI 是一个开源的、旨在整合主流大语言模型(LLM)与主流聊天平台的一体化机器人框架。项目地址为 https://github.com/lss233/kirara-ai。从项目徽章看,其在GitHub上获得了相当的关注度(Stars),并通过PyPI分发,拥有持续集成(CI/CD)和代码覆盖率检查,表明项目具备一定的工程成熟度。 1.2 主要功能与场景 核心价值:解决“AI能力”与“用户触点”之间的连接与编排问题。 * 产品视角:用户可通过一个系统,快速在QQ、Telegram、微信等平台部署一个具备对话、绘图、语音等多模态能力的智能助手,并能通过图形化界面(WebUI)自定义其行为(工作流)

原创大规模无人机检测数据集:11998张高质量图像,支持YOLOv8、COCO、TensorFlow多格式训练,涵盖飞机、无人机、直升机三大目标类别

原创大规模无人机检测数据集:11998张高质量图像,支持YOLOv8、COCO、TensorFlow多格式训练,涵盖飞机、无人机、直升机三大目标类别

大规模无人机检测数据集:11998张高质量图像,支持YOLOv8、COCO、TensorFlow多格式训练,涵盖飞机、无人机、直升机三大目标类别 引言与背景 随着无人机技术的快速发展和广泛应用,无人机检测已成为计算机视觉领域的重要研究方向。无论是民用领域的无人机监管、安全防护,还是军用领域的威胁识别、防空系统,都需要高精度的无人机检测算法作为技术支撑。然而,构建一个高质量、大规模、多场景的无人机检测数据集面临着数据收集困难、标注成本高昂、场景多样性不足等挑战。 本数据集正是在这一背景下应运而生,为无人机检测研究提供了宝贵的数据资源。该数据集不仅包含了丰富的无人机图像样本,还涵盖了飞机和直升机等相似目标,为算法训练提供了更具挑战性和实用性的数据环境。通过多格式标注支持,研究人员可以直接使用该数据集进行YOLOv8、TensorFlow Object Detection等主流框架的模型训练,大大降低了研究门槛,加速了无人机检测技术的发展。 数据基本信息 项目详细信息图像总数11,998张图像分辨率640×640像素目标类别3类(飞机、无人机、直升机)标注格式COCO JSON

YOLOv8结合AR眼镜:第一视角实时目标标注增强

YOLOv8结合AR眼镜:第一视角实时目标标注增强 在工业巡检员攀爬高压电塔、医生凝视手术视野、仓库分拣员穿梭货架之间时,他们最需要的往往不是更多信息,而是“恰到好处的理解力”。当现实世界中的每一个物体都能被自动识别并高亮提示——比如一台过热的变压器、一个待取的零件、或一处潜在出血点——人类的认知边界便得以扩展。这正是AI驱动的第一视角增强系统正在实现的愿景。 而在这场人机感知融合的技术浪潮中,YOLOv8与AR眼镜的结合正成为最具潜力的突破口之一。 从实验室到现场:让AI“看见”用户所见 传统目标检测多部署于固定摄像头或云端服务器,依赖稳定的网络和充足的算力。但在真实作业场景中,工人需要边走边看、医生需要双手操作、救援人员可能身处无网环境——这些都对系统的移动性、低延迟和离线能力提出了严苛要求。 AR眼镜天然具备第一视角采集能力,但其主控芯片通常受限于功耗与散热,难以运行重型模型。这就引出了一个核心命题:如何在资源极度受限的可穿戴设备上,实现实时、准确的目标识别? 答案落在了 YOLOv8 上。 作为Ultralytics公司在2023年推出的最新一代YOLO架构,它

超详细版ESP32固件库下载步骤(智能家居专用)

以下是对您提供的博文内容进行 深度润色与结构重构后的技术文章 。我以一位深耕嵌入式系统多年、长期从事智能家居产品量产落地的工程师视角,彻底重写了全文—— 去除所有AI腔调、模板化表达和教科书式分节 ,代之以真实开发现场的语言节奏、踩坑经验、版本博弈细节与工程直觉判断。全文逻辑更紧凑、信息密度更高、可操作性更强,同时保留全部关键技术点、代码片段与配置逻辑,并自然融入行业实践语境。 ESP32固件库下载:不是装个SDK就完事,而是给设备“打疫苗”前的体检 你有没有遇到过这样的情况? 刚焊好一块ESP32-WROOM-32模块,接上USB转串口, idf.py flash 跑完,串口却一片死寂? 或者烧进去的固件能连Wi-Fi,但BLE广播始终不被手机发现? 又或者OTA升级一次后,设备再也起不来,只能拆下Flash芯片用编程器救砖? 这不是运气不好,也不是硬件坏了。 这是你在给设备“打疫苗”之前,忘了先做一次完整的 免疫系统体检 ——而这个“体检”,就是我们今天要聊透的: ESP32固件库下载这件事,到底在干什么?它为什么总出问题?又该怎么一次做对? 从一个真实故障说起:为什