目录
1.算法仿真效果
matlab2024b仿真结果如下(完整代码运行后无水印):
仿真操作步骤可参考程序配套的操作视频。
2.算法涉及理论知识概要
在现代通信系统中,信道编码技术是提高数据传输可靠性的关键手段。Polar 码和低密度奇偶校验码 (LDPC) 作为两种接近香农极限的先进编码方案,分别在 5G 和光通信等领域获得了广泛应用。本文将深入剖析这两种编码的编译码原理、实现步骤及其与香农极限的性能对比。
2.1香农极限
香农在1948年提出的信道编码定理表明,对于带宽为BHz、信噪比为SNR的加性高斯白噪声 (AWGN) 信道,存在一个理论上的最大传输速率C(信道容量):
其中Eb是每比特能量,N0是噪声功率谱密度。当Eb/N0低于此值时,不存在能实现任意小误码率的编码方案。
2.2 Polar码编译码原理与SCL译码
Polar码由土耳其教授Erdal Arikan于2008年提出,是第一种被严格证明可以达到香农极限的构造性编码方法。其核心思想是通过信道极化(Channel Polarization)将多个独立的二进制输入信道转化为一组极化信道,一部分信道接近无差错,另一部分接近完全噪声。
Polar码编码过程
信道极化:通过递归计算信道容量,将n个原始信道转化为n个极化信道
信道选择:选择容量最大的k个信道作为信息位,其余作为冻结位 (固定为0)
编码运算:信息位向量u与生成矩阵Gn相乘得到码字c:
c=u⋅Gn
SCL译码是对原始SC译码的改进,通过维护一个候选路径列表提高译码性能:
2.3 LDPC码编译码原理与BP译码
LDPC码由 Robert Gallager于1962年提出,是一种具有稀疏校验矩阵的线性分组码。其校验矩阵H中非零元素的密度极低 (通常小于1%),可表示为二分图 (Tanner图),其中包含变量节点和校验节点。BP译码基于消息传递机制,在校验节点和变量节点之间迭代传递概率消息:
香农极限:AWGN信道下,二进制输入的香农极限为Eb/N0=−1.59dB;
Polar码:理论上可达到任意接近香农极限的性能,但实际实现中需要极长的码长;
LDPC码:通过优化码长和度分布,可在中等码长下接近香农极限;
3.MATLAB核心程序
......................................................................
while (err0 <= Times(ij))
[err0,EbNo]
count = count +1;
for num = 1: (Frames/batch)
dats = binornd(1, 0.5, batch, K);
for iter = 1: batch
info_bit = dats(iter,:);
% 将信息序列存储到数组before_code_bit中
code_0 = zeros(1,N);
code_0(idxs(:)) = info_bit(:);
% 极化码编码
S = func_polar_enc(N, code_0);
% 开始调制
Sbp = bpskMod(S');
rSig = func_Channel(Sbp, sigma);
rxLLR = bpskDemod(rSig);
[dec_list] = func_SCL_dec(L, N, rxLLR, noiseVar, idxs, G);
ydec = dec_list(:,1)';
%解码之后的序列
err0 = err0 + sum(info_bit ~= ydec);
bitall = bitall + K;
end
end
figure;
semilogy(EBN0,ERR,'-*b');
xlabel('EBN0(dB)') %x轴坐标描述
ylabel('ERR') %y轴坐标描述
grid on
if K==6
save R11.mat EBN0 ERR
end
if K==13
save R12.mat EBN0 ERR
end
if K==19
save R13.mat EBN0 ERR
end
014_053m
4.完整算法代码文件获得
V