多进制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
- 多进制LDPC码_16QAM调制
- LDPC 码
- 多进制LDPC码的译码算法比较
- LDPC码---信道编码理论
- LDPC
- 多进制LDPC—EMS译码算法
- SSD纠错码向LDPC码演变
- LDPC码译码算法---NMS matlab程序
- SSD ECC纠错“天网”之LDPC码
- 调制
- RS码-LDPC码-喷泉码之比较
- 通信算法之三:LDPC码的研究
- 通信算法之二:信道编码译码 BCH码、RS码、卷积码、Turbo码、LDPC码
- LDPC 学习记录
- LDPC编码技术研究
- LDPC编解码初探
- 信号调制--基带调制和射频调制
- 调制、数字调制、模拟调制比较
- C++ 基类和派生类
- 算法进阶——插入排序
- 数据库索引工作原理
- 单子错了反而使客户更依赖我+舒君本册苏素
- 关于符号扩展
- 多进制LDPC码_16QAM调制
- 【uva】1149-Bin Packing(贪心 + STL )
- 待人善者,则被善待+舒君本册苏素
- test
- grub命令grub
- 抽象工厂
- c#将图片存放在dll中
- Hiberante初学
- Canvas中beginPath的重要性