多进制LDPC码_16QAM调制

来源:互联网 发布:python unpack 编辑:程序博客网 时间:2024/06/10 04:00

GF(q)域的多进制LDPC的如果跟相应的q阶调制相结合,会简化调制解调方式并且对译码性能会有所改进。高斯概率密度函数如下:



推导出多进制LDPC概率表达式:


对于16QAM按格雷码映射:


这里将-6,-2改为-3,-1

推导出多进制LDPC的对数似然比表达式:






表示接收到符号实部、虚部所对应的调制后的取值。其中y为接受到的含噪信息。利用上式分别求得一个比特实部、虚部对应的对数似然比后,将其相加就是最终得到的复数值信号似然比。每一个复数信号对应不同0到q-1的数。这样一来解调步骤和求对数似然比步骤就合二为一了。

下面附上16QAM的调制解调的具体流程:

function Z=QAM16_m(u) %调制% tic% u=[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15];% a(1)=00;a(2)=01;a(3)=11;a(4)=10;a(1)=-3;a(2)=-1;a(3)=3;a(4)=1;Tx=fix(u/4)+1;Ty=mod(u,4)+1;ul=length(u);X=zeros(1,ul);Y=X;Z=X;for k=1:ul    X(k)=a(Tx(k));    Y(k)=a(Ty(k));    Z(k)=X(k)+Y(k)*1i;endend% toc

function [uu]=QAM16_d(Z,Vn) %解调q=16;Y=imag(Z);X=real(Z);zl=length(Z);uu=zeros(q,zl);a(1)=-3;a(2)=-1;a(3)=3;a(4)=1;% sigma2=2.5059;for ii=1:zl    for k=0:q-1        Tx=fix(k/4)+1;        Ty=mod(k,4)+1;        xx=a(Tx);        yy=a(Ty);        uux=(xx-a(1))*(2*X(ii)-xx-a(1))/Vn;        uuy=(yy-a(1))*(2*Y(ii)-yy-a(1))/Vn;        uu(k+1,ii)=uux+uuy;       endend


sigma=sqrt(1/(2*0.5*SNR(SNR_index))); %这里sigma的求解还没弄清楚y = x_encode;z=QAM16_m(y);za=z+sigma*(randn(size(z)) + randn(size(z))*1i);sigma2=2*sigma^2;PP=QAM16_d(za,sigma2);




1 0
原创粉丝点击