通过概率整形技术对64QAM进行星座图整形,并输出GMI指标

简介: 通过概率整形技术对64QAM进行星座图整形,并输出GMI指标

1.算法描述

   对于现有开销为20%左右的FEC,Pre FEC 的BER门限大概是2.4e-2。根据BER和 SNR之间的理论关系,我们可以得到不同阶数QAM调制格式时,达到纠前无误码的Required SNR。假设对于QPSK和 8QAM,16QAM分别为a, b, c,其中a<b<c。那现在对于某一个通信系统(考虑某一波特率,某一给定距离下)的SNR的值介于a和b之间,那怎么办呢?如果传QPSK,SNR浪费了,如果传8QAM性能又比较差,不能满足无误码的要求。所以之前的系统中,这种情况往往是传QPSK,多余的SNR留作了系统裕量。无疑,这样显然浪费了SNR资源,效率没有最大化。还有一个问题,对于MQAM,每个符号携带的信息量是整数,这样在设计给定线路速率的时候,比如200G,如果采用双偏的QPSK调制,波特率为64G左右,而如果采用双偏的8QAM调制,波特率为45G左右,波特率的调节十分有限。如果考虑12.5GHz为精细度的Flex grid的话,分别至少要75GHz和62.5GHz的信道间隔。这对于提高频谱效率是不利的。要保证更高的频谱利用效率,应当调节波特率使之尽可能地充满最小的信道间隔。比如把200G的信号填充在50GHz间隔内。也许你会认为16QAM的话,只用32Gbaud,可以在50GHz间隔中传输的。但是200G 16QAM的传输距离大概仅能传输600km,根本满足不了很多的长距骨干网应用。因此,QAM调制在浪费SNR资源的同时,也给系统设计和优化带来了不少的麻烦。

  通过改变改变星座图不同位置符号出现的概率,让外圈星座点出现频率降低,有利于减小平均功率,相当于增加了最小欧氏距离,从而有更好的传输性能。这就是我们所说的概率星座整形(PCS)了。它究竟有什么好处呢?
  1. 具有整形增益,接近香农极限,如图5所示。
  2. 有望达到更高的传输容量,显著提升频谱效率,如图6所示。
  3. 传输速率可以灵活调整,以完美适配不同的传输信道,如图7所示。
  4. 无须多种支持多种QAM映射,仅使用方形QAM调制,需调整整形系数
  5. 无须调整FEC等技术方案

    PCS的关键在于如何对均匀概率的输出映射成非均匀概率幅度分布,而且该概率分布还应该是最优的。理论上可以证明Maxwell-Boltzman分布对于方形QAM整形是最优的概率分布。而这一过程是由概率适配器(Distribution Matcher,DM)来实现的,过程如图8所示。根据实现方法,DM可以分为三类,CCDM,ESS,HIDM。

    概率整形技术与现有的光通信系统相结合的呢?如图9所示,二进制数据经过DM后变成非均匀分布的符号,将这些整形后的符号以二进制标签来表示,以便于进行FEC编码,然后再像普通光通信一样,进行星座图的映射,电光调制,光纤传输,光电转换,DSP处理,解调,解码等过程后,再将二进制标签转化为符号,送入DM逆变换器中,恢复发送的数据。注意到,整形是在FEC之前完成的,并且如果采用概率幅度整形(PAS),一般PCS都是这样做的,整形和FEC是完全独立的,FEC也不会改变DM映射之后的概率分布,这给设计带来了很好的灵活性,也降低了实现的复杂度。正是基于此,Nokia在业内最先发布了支持PCS技术的相干DSP芯片PSE3,并且最近成功完成现场测试,验证了可行性。华为也将PCS成功应用于其自研ODSP芯片中,取得较好的效果。

2.仿真效果预览
matlab2022a仿真结果如下:

672eeb38cbcf074e77558a0ce34ad9f9_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
66ec216ff076df123b18acfbb77469dc_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
e5eb2c043f626a2ddff24955dd805142_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

3.MATLAB核心程序

    for ii= 1:1:order_QAM
        tempx1=datx(ii,1);
        if bitget(tempx1,i)==0
             tempx2     = x2(ii,1); 
             tempx4     = x4(ii,1); 
             xb0(n1,i)  = tempx2;
             pxb0(n1,i) = tempx4;
             n1 = n1+1;
        else 
             tempx2     = x2(ii,1); 
             tempx4     = x4(ii,1); 
             xb1(n2,i)  = tempx2;
             pxb1(n2,i) = tempx4;
             n2 = n2+1;
        end
    end
    n1=1;
    n2=1;
end
 
tic
SNR= -20:30;
for ijk= 1:length(SNR)
    ijk
    Nunifm_dqam = awgn(unifm_dqam,SNR(ijk),'measured');
    NPS_QAMs    = awgn(PS_QAMs,SNR(ijk),'measured');
    %GMI
    for k=1:Lens                            
        y_k     = NPS_QAMs(k,1);
        y_k_bit = imsgss(k,1);
        %分母条件概率
        q_chs   = ch_con_pro(PS_QAMs,NPS_QAMs,y_k,x,Lens);
        denss   = sum(q_chs.*px);
        for i = 1:log2(order_QAM)                 
            bit_temp = bitget(y_k_bit,i);       
            if bit_temp ==0
               x_bit  = xb0(:,i);
               px_bit =  pxb0(:,i);
            else
               x_bit  = xb1(:,i);
               px_bit =  pxb1(:,i);          
            end
.............................................................
n = n +1;
end
相关文章
|
4月前
|
机器学习/深度学习 PyTorch 算法框架/工具
神经网络中的分位数回归和分位数损失
在使用机器学习构建预测模型时,我们不只是想知道“预测值(点预测)”,而是想知道“预测值落在某个范围内的可能性有多大(区间预测)”。例如当需要进行需求预测时,如果只储备最可能的需求预测量,那么缺货的概率非常的大。但是如果库存处于预测的第95个百分位数(需求有95%的可能性小于或等于该值),那么缺货数量会减少到大约20分之1。
231 2
|
4月前
LabVIEW为什么浮点数会丢失精度
LabVIEW为什么浮点数会丢失精度
33 2
|
4月前
|
语音技术 Python
量化模型是将浮点数运算转换为整数运算的过程
【2月更文挑战第32天】量化模型是将浮点数运算转换为整数运算的过程
42 1
|
9月前
|
C++
C++中浮点数据的精度输出控制?
C++中浮点数据的精度输出控制?
60 0
|
机器学习/深度学习
区间预测 | MATLAB实现QRBiGRU双向门控循环单元分位数回归时间序列区间预测
区间预测 | MATLAB实现QRBiGRU双向门控循环单元分位数回归时间序列区间预测
|
编解码 算法 Serverless
m通过概率整形技术对1024QAM进行星座图整形,并输出GMI指标
m通过概率整形技术对1024QAM进行星座图整形,并输出GMI指标
284 0
|
存储 C语言
C语言四舍五入计算方法(包含各种精度)
C语言四舍五入计算方法(包含各种精度)
589 0
|
传感器 芯片
模拟量与数字量区别
模拟量与数字量区别
171 0
7-9 计算摄氏温度
7-9 计算摄氏温度
64 0
|
编解码 算法
m基于归一化最小和译码算法的LDPC误码率性能仿真,对比不同的迭代次数,量化位宽以及归一化参数alpha
m基于归一化最小和译码算法的LDPC误码率性能仿真,对比不同的迭代次数,量化位宽以及归一化参数alpha
130 0