【2023研电赛】东北赛区一等奖作品:基于FPGA的小型水下无线光通信端机设计

本文为2023年第十八届中国研究生电子设计竞赛东北赛区一等奖作品分享,参加极术社区的【有奖活动】分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来领!,分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来领!

基于FPGA的小型水下无线光通信端机设计

在这里插入图片描述

参赛单位:大连理工大学
指导教师:殷洪玺教授
参赛成员:黄安、文浩、肖胡浩

研究背景

随着海洋开放程度越来越高、海洋发展速度的加快,以及半导体器件的连续突破,水下无线光通信技术飞速发展并逐渐投入到应用中去,实现科学技术到生产力的转变。

现有研究中的LED设计的UWOC系统,不管是在传输距离还是传输速率上,都还有较大的改进空间,同时,系统的设计可以通过在收发端均利用FPGA,以实现高阶调制、编码和信号处理及小型化系统集成,进一步提高系统的性能和实用化。

针对水下无线通信高速率、远距离、低成本和小型化设备的实用需求,本文设计研制了一种高鲁棒性的基于FPGA和大功率LED阵列的小型化水下无线光通信系统。光发射机的光源采用45W大功率LED阵列,基于FPGA实现高阶调制与编码,并设计了准直光学发射天线能有效减少光束发散角,大幅度延长了传输距离。在光接收端,设计了一种基于3mm大孔径APD的自动增益控制放大和FPGA解调与信号处理的光接收机,可以将一定范围内不同功率光信号转换成等幅度电信号并由FPGA实时解调、译码,可应对水下由于光链路轴偏角改变、传输距离变化、抖动、湍流等复杂因素造成光强度的闪烁或波动,降低了光通信系统对准的严苛要求,具有高鲁棒性。

该系统收发端均采用FPGA处理信号,可支持常用的OOK调制信号和以RS信道编码的16-QAM为例的高阶调制信号水下实时同步传输,可以满足水下不同场景下应用需求。光通信收发端机均实现小型集成化,以及严格的防水封装,通过电路设计、内部集成摆脱了传统UWOC系统体大笨重的AWG信号源、示波器、线性电源等设备,有极高的实际应用价值。

在速率上,该设备可实现30Mbps的OOK信号和16QAM信号12m水下信道实时传输,前者误码可达2.467×10-4,后者误码为3.467×10-3;在传输距离上,实现22Mbps 的NRZ-OOK整形信号12m水下30m空气跨介质传输,误码率为3.619×10-4;在系统鲁棒性方面,实现在12m水下信道中接收机偏离主光轴40°之内22Mbps OOK信号有效接收;实际应用方面,除了可以应用水下如搭载在潜艇上实现水下链路部署,进行水下节点信息采集或信号传输;其大功率LED阵列还支持空气-水链路无线光通信链路部署,如在船只上部署端机并和水下蛙人或水下机器人群落进行信息交互。其传输能力已经过水下验证。

论文地址:

地址一:
http://www.opticsjournal.net/Articles/g230966/EarlyPosting
地址二:
https://kns.cnki.net/kcms2/article/abstract?v=3uoqIhG8C45S0n9fL2suRadTyEVl2pW9UrhTDCdPD660zuLoGYfYSZ97VrLV1wB_pK8Y_L5H8mv4-c4_7_O25s6YT2XFv8aI&uniplatform=NZKPT

研电赛门型框架

在这里插入图片描述

创新点与应用性

创新点

1.硬件设计方面:发射端基于FPGA设计了一种45W大功率LED光发射机,实现长距离、高速率信号传输;接收端基于FPGA设计了一种自动增益控制光接收机,将一定范围内不同功率光信号转换成等幅度电信号并由FPGA实时解调、译码,可应对水下由于光链路轴偏角改变、传输距离变化、抖动、湍流等复杂因素造成光强度的闪烁或波动,具有高鲁棒性。

2.系统性能方面:设计并实现了一种高鲁棒性的基于大功率LED阵列和FPGA的小型水下无线光通信系统,系统兼顾了大功率与调制带宽,在传输速率(30Mbps)、传输距离(12m水下+30m空气)、鲁棒性(接收角度40°)性能方面在国内外的研究中处于领先地位。

3.信号实时同步传输方面:该系统收发端均采用FPGA处理信号,可支持常用的OOK调制信号和以RS信道编码的16-QAM为例的高阶调制信号水下实时同步传输。

4.小型化集成方面:光通信收发端机均实现小型集成化,以及严格的防水封装,通过电路设计、内部集成摆脱了传统UWOC系统体大笨重的AWG信号源、示波器、线性电源等设备,有极高的实际应用价值。

应用前景

除了可以应用水下如搭载在潜艇或AUV水下潜航器上实现水下链路部署,进行水下节点信息采集或信号传输;其大功率LED阵列还支持空气-水链路无线光通信链路部署,如在船只上部署端机并和水下蛙人或水下机器人群落进行信息交互。其传输能力已经过水下验证。

设计实现

硬件设计

光学系统是水下光通信的基础与前提,光源设备的选型,镜片孔径选择,光斑的整形,以及透镜材料等都会大幅度影响光通信系统的性能。相对于对人体有害、对准难度高的LD激光光源,价格低廉、技术已经成熟的LED光源是很好的选择,LED光源的水下光通信应用除了实现点对点之间信息传输外,还可以兼顾水下照明、水下视频拍摄、水下地貌勘探等。

光发射机由DE1-SOC FPGA开发板、45W大功率LED阵列、驱动电路、偏置器(Bias-tee)以及发射准直天线构成。LED阵列采用5串9并3030贴片集成光源芯片,单个芯片额定功率1W,实测波长517nm。光发射机实物图如下图所示,其尺寸(mm)为150×200×450,实测质量5.7kg,散热方案采取鳍片式铝制散热片与12V内置风扇散热,接口采用凌科DH20旋转式防水航空连接器,发射准直天线采用高透光亚克力(PMMA)防水法兰与胶圈结构,系统严格按照防水标准封装。

在这里插入图片描述
在这里插入图片描述

光接收机模块包含DE1-SOC FPGA开发板,3mm光敏面大孔径APD自动增益控制光接受模块、线性电源模块以及光学接收模块,系统框图如下图所示。其尺寸(mm)为300×200×200,质量为3kg,接口采用凌科DH20旋转式防水航空连接器。

本设计基于3mm光敏面大孔径雪崩光电二极管设计了一种自动增益控制光通信接收机。光接收机在实际应用中,由于光链路轴偏角改变、传输距离变化、抖动、湍流等外部因素的影响,接收到的光信号强度变化会使接收机FPGA处理器最终接收到的电信号质量剧烈变化,这对复杂的调制信号传输方案影响巨大。而本设计中高鲁棒性自动增益控制光通信接收机可以有效解决这一难题。光信号经过APD转化成电流信号后,经过跨阻放大器模块转化成电压信号,随后通过VCA821芯片构建的自动增益放大器模块(Automatic Generation Control, AGC)放大成峰值幅度固定不变的电压信号,最终输入至模数变换(ADC)模块。因此,本系统除了支持OOK调制方案,还可以应用于其他复杂模拟调制信号传输方案。在光接收机光链路空间结构上,3mm大孔径APD雪崩光电二极管固定在凸透镜焦点处,其高响应度的性能降低光学聚焦的严苛度,并结合有一定光发散角的大功率LED发射机系统解决了传统水下光通信对准困难的问题,增加了系统的鲁棒性。

在这里插入图片描述
在这里插入图片描述

信号选择与同步实现

在水下实时光通信方面,小型端机传输信号方面除了传统的OOK调制信号实时通信外,还可以实现RS编码的16QAM联合编码调制信号的实时传输。实验测试结果表明,该设备可实现12m以上水下环境中30Mbps的OOK信号和16QAM信号实时同步传输。

以16QAM为例:

在光发射端,16QAM调制信号在DE1-SOC FPGA开发板上实现。随机数据流先进行串/并转换,生成的4bit原始信号进行RS信道编码作为外码,随后进行差分编码作为内码,经过星座映射并添加载波信号生成RS-16QAM调制信号。生成的数字信号通过DAC数/模转换后由放大器放大,通过Bias-tee偏置器注入DC直流电流, 调制到大功率LED阵列转换成光信号。

在接收端,对16QAM信号进行严格的载波同步和位同步后,还原成I、Q两路信号。本设计采用DD算法载波同步,将接收的信号根据最近原则判决到最近的量化星座点上。载波同步过程中,由DDS生成相干载波,通过鉴相器和环路滤波器实时反馈调整载波的相位与频率。16QAM调制信号与相干载波相乘后经过滤波器恢复成I、Q两路基带信号。位同步方面,使用基于插值算法的位同步。插值区间由数控振荡器(NCO)生成,并输入到基于Farrow结构的插值滤波器,以计算两个下变频分支信号并恢复基带信号的最佳判断时间。插值间隔通过实时反馈进行调整,使用基于Gardner算法的误差检测器和环路滤波器进行计算。随后采用自适应门限判决的方法,周期性训练出星座判决门限,将I、Q两路位同步后的信号进行星座逆映射。最后进行部分差分解码、RS信道译码、串并变换还原成m伪随即序列二进制比特码流。

在这里插入图片描述

信号生成与同步详细实现过程可见论文:
黄安, 殷洪玺, 季秀阳, 梁彦军, 文浩, 王建英, 沈众卫. 基于FPGA和大功率LED阵列光源的小型化UWOC系统的研究与实现[J]. 光学学报, 2024, 44(06): 02.
地址一:
http://www.opticsjournal.net/Articles/g230966/EarlyPosting
地址二:
https://kns.cnki.net/kcms2/article/abstract?v=3uoqIhG8C45S0n9fL2suRadTyEVl2pW9UrhTDCdPD660zuLoGYfYSZ97VrLV1wB_pK8Y_L5H8mv4-c4_7_O25s6YT2XFv8aI&uniplatform=NZKPT

性能验证

在这里插入图片描述

为了验证基于FPGA的水下无线光通信接收机的接收性能,使用基于FPGA的45W大功率LED阵列发射机生成5MHz-30MHz的正弦波,以及15Mbps-30Mbps传输速率的NRZ-OOK脉冲整形信号,经过12m水下信道传输后,用示波器采集基于FPGA的自动增益控制接收端接收到的信号,查看其性能。接收端接收5MHz-30MHz的正弦波如上图所示。

接收端接收15Mbps-30Mbps NRZ-OOK脉冲整形信号眼图如下图(a)~(d)所示,可以看出15Mbps-25Mbps眼图质量较好,三张采集到的眼图区分不太明显,眼睛张开均比较明显,信噪比较高,误码率较低。由于光发射端原始带宽为22MHz,当传输的NRZ-OOK信号速率为30Mbps超出-3dB光发射机器件原始带宽时,信号一定程度畸变,但眼图张开依旧明显。
在这里插入图片描述

对研制的基于FPGA和LED阵列大功率光源的小型UWOC端机,进行误比特率(Bit Error Rate, BER)性能测试。水下信道长12m,系统采用OOK和16QAM两种调制方式,同步传输速率均从10Mbps逐步增大至30Mbps。测试结果下图所示,可看出二者的BER均随着比特率的增加而增加,但16QAM的误比特率总是高于OOK系统的误比特率。当系统速率达30Mbps时,OOK脉冲整形信号的误比特率为2.47×10‍‍-‍‍‍‍‍‍‍‍‍4‍,而16QAM误比特率已为3.47×10-3,尽管均低于3.8×10-3 (FEC, Forward Error Correction )的阈值,但16QAM的误比特率性能劣于OOK调制方式。这是因为QAM调制对信号的实时同步要求较高、及LED阵列的光束较宽致使水下信道的多径效应造成同步困难所致。
在这里插入图片描述

但是,在相同的传输速率下,16QAM的带宽利用率高于OOK调制,测试结果下图所示,可看出当传输速率为30Mbps时,OOK信号需要30MHz的带宽,而16QAM信号的带宽仅需13.5MHz,远低于OOK调制。设计的16QAM系统的滚降系数为α=0.8,中心频率为7.5MHz,符号速率为7.5Mbaud/s,带宽利用率为2.22bit/s/Hz,根据带宽公式B=RB(1+α)计算,其理论值与实测值一致。由于系统受ADC采样率和同步算法限制,没有充分利用16QAM高阶调制信号的带宽优势,在速率提升上仍有较大的潜力。
在这里插入图片描述

为了进一步测试设计的光通信端机传输的极限距离,但由于受到实验条件的限制,实验中在已有的12m长水管的基础上增加了不同长度的空气链路,构成了水-空气跨介质链路,测试结果如下图所示。实验传输22Mbps的NRZ-OOK整形信号,12m水下信道分别加上10m、20m、30m的空气信道传输后,系统误码分别为7.635×10-6、1.654×10-4、3.619×10-4。将光发射端的速率增加至30Mbps后,根据发射端放大器带宽增益积不变性质、及LED器件带宽的影响,发射端信号幅度衰减,12m水下信道分别加上10m、20m、30m空气信道传输后,系统误码分别为3.619×10-4、1.595×10-4、1.975×10-2。在图中还给出了对应的信号眼图,可以看出端机大功率LED光源线性较好,在30Mbps速率传输时,明显看出随着传输距离增长信号质量恶化,眼图闭合明显。在12m水加上30m空气链路传输时,22Mbps信号误码率可达3.8×10-3 EFC阈值。此外,水-空气链路中,当517nm波长光通信端机部署在自然光较强的场景下,端机性能会受到影响。图中还对比了在白天正午外界自然光较强情况下30Mbps OOK信号传输,其误码性能整体低于自然光影响较弱外界条件下的30Mbps OOK信号的误码率。
在这里插入图片描述

其它性能可通过上文见论文原文。

心得与总结

  1. 要在文章以及展示过程中强调并说明作品的应用性/实用价值
  2. 视频要美观,用流畅的普通话录制,如果条件允许可以找专业人员录制
  3. 要有一定创新点
  4. 作品要求完整性,可以自圆其说
  5. 国赛作品大多有论文专利成果

本组设计很荣幸获得兆易创新杯第十八届研电赛东北赛区一等奖,因为团队多数成员实习时间无法调整因素,未能参与晋级赛,略微遗憾。设计还有进步空间,如使用TFT显示屏和摄像头实时传输视频,结合LED阵列照明来实现水下视频实时拍摄,有极大进步空间,这正是我们努力进步的方向!

参加极术社区的【有奖活动】分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来领!,分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来领!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/153185.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

312.戳气球

将戳气球转换到添加气球&#xff0c;记忆搜索slove(i,j)&#xff1a;在开区间(i,j)全部填满气球得到的最多硬币数&#xff0c;两端val[i]、val[j] class Solution { public:vector<vector<int>> ans;vector<int> val;int slove(int left,int right){if(left&…

【java基础学习】之DOS命令

#java基础学习 1.常用的DOS命令&#xff1a; dir:列出当前目录下的文件以及文件夹 md: 创建目录 rd:删除目录cd:进入指定目录 cd.. :退回到上级目录 cd\ : 退回到根目录 del:删除文件 exit:退出dos命令行 1.dir:列出当前目录下的文件以及文件夹 2.md: 创建目录 …

假期AI新闻热点:亚运会Al技术亮点;微软GPT-4V论文精读;Perplexity推出pplx-api;DALL-E 3多渠道测评 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f525; 科技感拉满&#xff0c;第19届杭州亚运会中的Al技术亮点 八年筹备&#xff0c;杭州第19届亚运会开幕式于9月23日晚隆重举行&#xff0…

输入电压转化为电流性 5~20mA方案

输入电压转化为电流性 5~20mA方案 方案一方案二方案三 方案一 XTR111是一款精密的电压-电流转换器是最广泛应用之一。原因有二&#xff1a;一是线性度非常好、二是价格便宜。总结成一点&#xff0c;就是性价比高。 典型电路 最终电路 Z1二极管处输出电流表达式&#xff1a;…

【Redis】基础数据结构-quicklist

Redis List 在Redis3.2版之前&#xff0c;Redis使用压缩列表和双向链表作为List的底层实现。当元素个数比较少并且元素长度比较小时&#xff0c;Redis使用压缩列表实现&#xff0c;否则Redis使用双向链表实现。 ziplist存在问题 不能保存过多的元素&#xff0c;否则查找复杂度…

Google-CTF-2016-Stego.pcap数据包解析

Google-CTF-2016&#xff08;a-cute-stegosaurus-100&#xff09; 前言&#xff1a;别人发的题目 随便看看 记录一下解题过程&#xff01; 知识点: 在报文段中有 6Bit 的状态控制码&#xff0c; 分别如下tcp URG&#xff1a;紧急比特&#xff08;urgent&#xff09;&#x…

echarts 中如何将 legend 设置成「直线」

Thinking系列&#xff0c;旨在利用10分钟的时间传达一种可落地的编程思想。 echarts 中如何将 legend 设置成「直线」&#xff1f; 所有图例均为直线 可以通过 itemHeight 和 itemWidth 来统一控制 legend: {itemHeight: 2,itemWidth: 20,data: [Expenses, Income]}部分是直线…

【数据结构-字符串 三】【字符串转换】字符串解码

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是【字符串转换】&#xff0c;使用【字符串】这个基本的数据结构来实现&#xff0c;这个高频题的站点是&#xff1a;CodeTop&#xff0c;筛选条件为&…

Linux CentOS7 yum仓库

在windows下安装一个软件很轻松&#xff0c;只要双击setup或者.exe的文件&#xff0c;安装提示连续“下一步”即可&#xff0c;然而linux系统下安装一个软件似乎并不那么轻松&#xff0c;因为我们不是在图形界面下。 本文我们将讨论如何在linux下安装一个软件。 一、linux软件…

Netron【.pt转.onnx模型展示】

接着上一篇写哈&#xff0c;如何转.onnx的。 因为是转.onnx类型的&#xff0c;需要先安装onnx的包。 这是直接pip install onnx后转onnx报的错&#xff1a; 很显然是版本问题导致的&#xff0c;so: 将export.py的脚本拉到最下面的parse_opt函数&#xff0c;把“17”改为“12”…

C# .net创建一个MVC框架工程

二、C# .net创建一个MVC框架工程 1.步骤 首先打开VS &#xff0c;然后点击创建新项目 在三个选项框中输入我们需要的项目条件 最后一步创建完毕 创建会在资源解决方案生成如图&#xff1a;

vulnhub_driftingblues7靶机渗透测试

Driftingblues7靶机 文章目录 Driftingblues7靶机信息收集web渗透获取权限另外思路靶机总结 信息收集 使用nmap扫描得到靶机ip为192.168.78.174&#xff0c;开放发端口有很多&#xff0c;而且开放了443端口&#xff0c;所以访问网站是需要https协议的 再对该网站进行目录扫描&…

如何查看端口占用(windows,linux,mac)

如何查看端口占用&#xff0c;各平台 一、背景 如何查看端口占用&#xff1f;网上很多&#xff0c;但大多直接丢出命令&#xff0c;没有任何解释关于如何查看命令的输出 所谓 “查端口占用”&#xff0c;即查看某个端口是否被某个程序占用&#xff0c;如果有&#xff0c;被哪…

【List-Watch】

List-Watch 一、定义二、工作机制三、调度过程 一、定义 Kubernetes 是通过 List-Watch 的机制进行每个组件的协作&#xff0c;保持数据同步的&#xff0c;每个组件之间的设计实现了解耦。 用户是通过 kubectl 根据配置文件&#xff0c;向 APIServer 发送命令&#xff0c;在 …

2023/10/7 -- ARM

【程序状态寄存器读写指令】 1.指令码以及格式 mrs:读取CPSR寄存器的值 mrs 目标寄存器 CPSR&#xff1a;读取CPSR的数值保存到目标寄存器中msr:修改CPSR寄存器的数值msr CPSR,第一操作数:将第一操作数的数值保存到CPSR寄存器中//修改CPSR寄存器&#xff0c;也就表示程序的状…

数据结构之堆,栈的实现

首先我们分析由于只需要尾进尾出&#xff0c;用数组模拟更简单。 实现的功能如上图。 top可以表示栈中元素个数。 capacity表示栈的容量。 首先是堆的初始化 再就是栈的插入和删除 然后实现显示栈顶元素 大小和检测是否为空的实现 销毁栈的实现&#xff08;防止内存泄露&…

线性代数小例子

这样做有什么问题呢&#xff1a; A 2 A > A ( A − E ) 0 > A E A 0 A^2 A > A(A - E) 0> A E \quad A 0 A2A>A(A−E)0>AEA0 上述做法是错误的&#xff0c;这是因为两个矩阵的乘积结果为0&#xff0c;并不能说明这两个矩阵就是0&#xff0c;即上述…

ASP.NET Core 开发 Web API

2. Web Api 的创建与Http类型的介绍 2.1 ASP.Net Core Web API项目的创建 1.创建ASP.NET Core Web API项目 从“文件”菜单中选择“新建”“项目”。 在搜索框中输入“Web API”。 选择“ASP.NET Core Web API”模板&#xff0c;然后选择“下一步”。 在“配置新项目”对话框中…

matlab高斯消元法求解线性方程组

高斯消元法的基本原理是通过一系列行变换将线性方程组的增广矩阵转化为简化行阶梯形式&#xff0c;从而得到方程组的解。其核心思想是利用矩阵的行变换操作&#xff0c;逐步消除未知数的系数&#xff0c;使得方程组的求解变得更加简单。 首先&#xff0c;给定系数矩阵A和常数向…

怎么防止重要文件夹丢失?文件夹安全如何保护?

我们在使用电脑的过程中&#xff0c;会将重要数据放在文件夹中&#xff0c;那么&#xff0c;我们该怎么防止重要文件夹丢失呢&#xff1f;下面我们就一起来了解一下。 EFS加密 EFS加密可以对于NTFS卷上的文件夹进行加密&#xff0c;加密后的文件夹将只允许加密时登录系统的用户…