​ 各种神经网络算法(XNN)在大数据机器学习和人工智能领域有着十分广泛的应用,这些高级算法在分类、优化、自学习这些方面的突出能力和其在互联网及自动控制领域的优异表现是毋庸置疑的,自然这些年也是火得一塌糊涂了。不过,之前一直没有过多地关注AI相关的高级算法在光通信领域的应用的。这两天刚好有机会扫了一眼新鲜出炉的OFC2020的论文集。要不是被疫情耽误,本次OFC预计算是比较火热的一次盛会了,各种技术热点,高波特率相干,高带宽集成器件,400G/600G 实时传输,超宽带光放大,概率整形的芯片实现和优化等都有较多的文章涉及。

看了几篇,觉得有点意思,与大家分享。

1. 高级算法辅助概率整形,开辟新途径

有两种科研idea让人叹为观止:一种是“唉,这个我就是想不到啊”,另一种是“唉,我怎么就想不到啊?”。这篇文章就是属于第二种。看完了之后,觉得很有道理,也很简单,但只后悔自己之前没想到。

常规的概率整形,一般是先根据信道情况和系统需求,选定一个基本的星座图,设定一个Entropy,然后利用MaxwellBoltzman分布求得整形系数及星座图上每一符号出现的概率,然后再通过一些分布匹配器(DM)去做多对一的映射和二进制标记。这种常规的概率整形(PS)的性能通常是最优的,不过有个前提条件,那就是信道是AWGN。而对于光纤信道,显然,某些场景下并不满足这一假设,特别是在有非线性效应的时候。这也为进一步探测概率整形方法和提升性能开辟了机会窗口。怎么做呢?

图1. 基于训练序列的星座误差图样估计

如图1所示,先利用均匀分布的QAM星座图作为训练序列,经过光纤信道传输后,在接收端统计星座图上每个点(符号)出错的情况,并把误符号率(SER)按照符号的位置记录下来。

然后再采用投影梯度下降算法(PGD)来求解最优的发射星座点概率分布,使得信道的互信息量(容量)最大,用数学表述为下述优化问题:

其中,alpha是一个调整熵的整形参量,第一个约束条件是为了限制使得那些容易出错的符号的概率变小,第二个约束条件则是为了满足发端所有符号出现在概率之和为1。通过一番高端大气上档次的优化算法之后,可以得到给定目标entropy的优化概率分布。然后再利用CCDM来将幅度映射成符号,完成概率匹配。优化后的星座点概率图示如下。

图2.PGD优化求解后的发端星座点概率分布示意图

然后作者在 VPI中建模对以下三种场景进行了仿真对比,从整形后的SER情况来看,得出的结论是,在保证相同的entropy条件下,这种新的概率分布性能不差于常规的PS算法。并且也通过简单的实验作了验证,经过这种整形之后SER性能优于不整形的16QAM。

图3. 仿真的三种场景及整形前后效果对比

其实,这种方法看起来高端,实际上思路是我们之前在别的地方经常用到的。用均匀概率分布的信号作导频估计符号错误图样,这是在OFDM自适应调制的时候惯用手法;先估计出损伤的相对影响,然后反过来在发端来进行抑制的思路在发端预失真的时候也是很常用的。不过一般人还真是没有想到。不过这篇文章,还是有很多地方可以继续深入探讨灌水的。比如约束条件的重新构建,相位噪声恢复算法的影响等。

即便如此,这篇文章的意义我觉得还是特别明显的。1)解决了单圈星座图的概率整形问题,比如按这个思路QPSK也可以整,这样就有可能缩小频谱效率小于2时候,QPSK与香农极限之间的Gap; 2)对于非方形QAM也可以实现MB分布整形;3)为解决非AWGN信道,有非线性效应时的最优概率整形的求解提供了示范。

2. 高级算法用于几何整形,改善性能

与概率整形(PS)不同,几何整形(GS)需要优化星座图上每个星座点的位置。这篇文章中,作者引入神经网络算法对32QAM和 128QAM进行一维和二维的星座图及比特映射优化,实验验证了优化的几何整形,对于800G 32QAM和1T 128QAM性能提升分别约为0.98dB和 1.21dB。

图4. 基于神经网络的几何整形星座图优化结果

3. 神经网络用于OSNR监测,从原型机走向产品

Ciena已经将包含35个输入,2个隐含层,每层5个结点的神经网络做成相干光模块的固件,用于分离非线性效应噪声,从而精确地估计系统的OSNR,并且对非线性效应不敏感。经过仿真数据训练后用于56G~400G实时相干光模块中进行实验验证,得到了较好的OSNR估计精度,如图5所示。

图5. 基于神经网络的OSNR估计模型的训练和估计结果

该模型在Ciena Wavelogic AI不同速率,配合不同种类光纤链路情况下估计精度分别为(系统偏移及波动标准差):56G~200G是0.04±0.25 dB,56G~300G是-0.03±0.29ddB, 56G~400G是-0.12±0.48dB。

4. 神经网络用于PON中高速信号均衡,FPGA原型验证

国内有研究团队将神经网络算法用于50G接入网,实现对带宽限制效应的均衡,有望将10G级别的 DML器件超频传输50Gb/s PAM4信号。而Nokia更是将神经网络算法做成了定点,然后通过离线实验比较了50Gb/s NRZ系统中它与经典的 6抽头的最大似然序列估计算法(MLSE)的均衡效果。实验表明,神经网络算法在光背靠背(OB2B)和30km光纤传输时相对于MLSE均衡有0.2dB和0.7dB的性能提升。作者还通过降频降速,将神经网络均衡算法在 FPGA上进行了验证,并评估了其复杂度和对资源的消耗,分析表明,神经网络算法比6抽头的MLSE复杂度还要高,如果要将该算法实用,还需要进行优化。

图6. Nokia在50G PON中验证神经网络均衡算法实验框图

从今年的OFC论文中,可以感受到新技术从概念探索到讨论关注到实用产品化已经变得非常迅速了,每个阶段的痕迹已经不明显了。也许下一代光通信产品革命的号角已经吹响,是AI,是新算法,还是新特性?我们拭目以待,可是你准备好了吗?你的产品准备好迎接这场变革了吗?

参考资料:

[1] A.Fallahpour et al., paper M1G.3, OFC 2020

[2] AndrewD. Shiner et al., paper M4E.2, OFC 2020

[3] MaximilianSchaedler et al., paper M1G.1, OFC 2020

[4] LilinYi et al., paper T4D.3, OFC 2020

[5] NoriakiKaneda et al., paper T4D.2, OFC 2020

awgn信道中的噪声功率谱密度_从OFC2020看高级算法在光通信中的应用相关推荐

  1. awgn信道中的噪声功率谱密度_Ruminate: 噪声的功率谱密度与方差

    --------------------------------------[连续时间系统]-------------------------------------- 1. 高斯白噪声:时域服从高斯 ...

  2. CloudCompare源码分析_八叉树(Octree)算法基础CC中的八叉树结构

    官方参考地址:CloudCompare octree - CloudCompareWiki CC的octree算法主要体现在DgmOctree.h和DgmOctree.cpp中,他采用了一种分级的结构 ...

  3. react中如何注释代码_学习在您的React / JavaScript代码中发现红旗?

    react中如何注释代码 by Donavon West 由Donavon West 学习在您的React / JavaScript代码中发现红旗? (Learn to spot red flags ...

  4. Java中映射怎么实现_我们如何在Java 9的JShell中实现映射?

    JShell是Java 9中引入的Java Shell工具.它是一个交互式工具,可以读取输入,执行输入并在命令行提示符下打印输出.我们不需要像Java类一样编写一种方法来执行它.main() 我们可以 ...

  5. java程序中可以如何异常处理?_如何处理罗茨鼓风机在运行过程中出现异常噪音和叶片的运行特性...

    罗茨鼓风机叶片的运行特性: 1.后叶片类型的叶片突出而重要的特点是无过载功率.它消除了对超大电机或其他驱动器的需求.常规叶片的正常工作静态效率范围为65-80%,流线型设计的通常工作静态效率范围为80 ...

  6. python列表中随机两个_随机化两个列表并在python中维护顺序

    随机化两个列表并在python中维护顺序 说我有两个简单的清单, a = ['Spears', "Adele", "NDubz", "Nicole&q ...

  7. .net 从txt中读取行数据_【VBA项目】从指定文件中读取数据并绘制图表

    VBA 是一种很久远的编程语言,但并不过时.在满足以下两个条件时,借助 VBA 可以极大的提升生产率,降低出错率: 你的电脑上不允许自主安装软件: 你需要执行的工作中大部分的步骤都是固定且重复的. 项 ...

  8. 数组中的filter方法_数组filter()方法以及JavaScript中的示例

    数组中的filter方法 JavaScript filter()方法 (JavaScript filter() method) filter() method is used to returns a ...

  9. java dijkstra算法代码_[转载]Java实现dijkstra算法: 地图中任意起点寻找最佳路径...

    最近在复习java,下学期要用,写这个练手.  技术较粗糙,见谅. 代码里用的是这幅地图,根据实际情况更改,在addNode方法中 这个是运行结果,起点和终点在 运行wrap(String qidia ...

最新文章

  1. 每日一剂《适配器刷新报错》
  2. 免费网络学术资源获取
  3. 解决IntelliJ IDEA 2019.3.5 启动无反应
  4. linux如何卸载netstat,linux – Netstat -s显示(并且正在增长)“从接收队列中删除的数据包”和“数据包在接收队列中崩溃”...
  5. boost::fusion::traits::tag_of用法的测试程序
  6. (转载)Linux多线程实现
  7. Lucene.Net(转)
  8. 使用.NET Core与Google Optimization Tools实现加工车间任务规划
  9. Intel 64/x86_64/IA-32/x86处理器 - 通用指令(8) - 杂项指令 用户态扩展状态指令 随机数生成指令
  10. Spring容器创建流程(4)调用beanFactory后置处理器
  11. 关于setInterval设置倒计时只执行一次,clearInterval停止
  12. MySQL8.0.12 EXPLAIN EXTENDED 报错问题
  13. pip install -r requirements.txt 超时解决方案
  14. 完整的连接器设计手册_广西直销施耐德漏电断路器选型手册
  15. Oracle数据库面试题
  16. dbv oracle驱动,oracle dbv使用详解
  17. 文件过大 不能导入U盘怎么办
  18. 【HTML、CSS、JS】注册页面实现(带验证码,密码强度验证,表格提交验证等)
  19. 2.12 手机GPS定位
  20. 西安理工大学计算机科学与工程学院官网,罗靖-西安理工大学计算机科学与工程学院...

热门文章

  1. Fatal Python error: Cannot recover from stack overflow.(嵌套层数过多超出限制)
  2. tensorflow tf.is_gpu_available() (判断GPU是否可用)
  3. python 语言, 详解fromstring 函数 -------------从字符串到Ascii 码的转换
  4. brew 安装mysql5.6_mac使用brew安装mysql的坑
  5. SpringMVC学习(五)——零配置实现SpringMVC
  6. 2019年终总结一下吧
  7. 微信小程序富文本解析点击图片放大_微信小程序解析富文本过程详解
  8. navicat mysql两张表建立联系_初识MySQL
  9. mysql 线程缓存_浅析MySQL内存的使用说明(全局缓存+线程缓存)
  10. miui11禁止更新方法