计算LLR,参照symDemapper.m中Calculate LLRs段和LLR_eval.m
算法流程
- 计算每个符号用几个比特表示;
- 统计出第i个比特是0或者是1的星座点子集,并对应求出子集中每个星座点的概率
- 计算似然比 [LLRs] = LLR_eval(Srx,N0,C,symProb)
A = zeros(1,nSyms);
for k = 1:numel(Xk_0)
A = A + exp(-abs(Srx-Xk_0(k)).^2/N0)*Pk_0(k);
end
LLRs(n:nBpS:end) = -log(B./A); % 注意这里是n:nBpS:end 因为每次计算的是每个符号的第1个比特,第2个比特
(搜索matlab帮助文档似然比公式的时候发现了可以搜索file exchange文件,上面是别人发的自己写过的函数,可以研究一下)
高斯统计方差N0的计算
利用最小均方误差算法计算N0
N0 = getN0_MMSE(Stx,Srx);
Prx = var(Srx.');
N0 = N0 .* Prx;
完整的LDPC编码与未变码的16QAM误码率性能对比代码
clear
clc
txBits = randi([0,1],1,100000);
M = 16;
C = qammod([0:M-1],M);
SNR = 7:0.5:8;
SNR=[SNR,8.5:0.1:8.6];
SNR&#