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

发布时间 2023-07-21 00:05:33作者: 我爱C编程

1.算法仿真效果

matlab2022a仿真结果如下:

 

 

 

 

 

 

2.算法涉及理论知识概要

        对于现有开销为20%左右的FECPre FEC BER门限大概是2.4e-2。根据BERSNR之间的理论关系,我们可以得到不同阶数QAM调制格式时,达到纠前无误码的Required SNR。假设对于QPSK8QAM16QAM分别为a, b, c,其中a<b<c。那现在对于某一个通信系统(考虑某一波特率,某一给定距离下)的SNR的值介于ab之间,那怎么办呢?如果传QPSKSNR浪费了,如果传8QAM性能又比较差,不能满足无误码的要求。所以之前的系统中,这种情况往往是传QPSK,多余的SNR留作了系统裕量。无疑,这样显然浪费了SNR资源,效率没有最大化。还有一个问题,对于MQAM,每个符号携带的信息量是整数,这样在设计给定线路速率的时候,比如200G,如果采用双偏的QPSK调制,波特率为64G左右,而如果采用双偏的8QAM调制,波特率为45G左右,波特率的调节十分有限。如果考虑12.5GHz为精细度的Flex grid的话,分别至少要75GHz62.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 MatcherDM)来实现的,过程如图8所示。根据实现方法,DM可以分为三类,CCDMESSHIDM

      在数字通信中,星座图是表示调制方式的图形化表示,通常用于描述不同调制方式的调制符号及其相对应的相位和幅度。在高阶调制中,由于调制符号数量的增加,星座图的密度也相应增加,对于信道传输和解调带来了挑战。概率整形技术是一种有效的星座图整形方法,可以通过调整星座点的位置和密度,提高信道传输的性能。通过概率整形技术对1024QAM进行星座图整形,并输出GMI指标。文章将从概率整形技术的原理、1024QAM星座图的特点、概率整形技术的实现步骤和GMI指标的计算方法四个方面进行详细介绍。

 

2.1、概率整形技术的原理

       概率整形技术是一种基于概率密度函数的星座图整形方法,其原理是通过调整星座点的位置和密度,使得星座点分布更加均匀,从而提高信道传输的性能。概率整形技术的实现过程可以分为三个步骤:计算星座点密度函数、计算星座点位置调整量、调整星座点位置。

 

2.21024QAM星座图的特点

       1024QAM是一种高阶调制方式,其星座图包含了1024个调制符号,具有高码率和高频谱效率的特点。1024QAM的星座图通常采用32×32的矩阵表示,其中每个点代表一个调制符号。1024QAM的星座图的特点是符号密度不均匀,即星座点在星座图中的分布不均匀。这种不均匀性会导致信道传输中出现较大的噪声和失真,从而影响信号的接收质量。因此,需要使用概率整形技术对1024QAM星座图进行整形,使得星座点的分布更加均匀。

 

 

 

3.MATLAB核心程序

 

for i = 1:1:log2(order_QAM)
    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