基于QPSK调制解调+Polar编译码(SCL译码)的matlab性能仿真,并对比BPSK
目录
1.引言
2.算法仿真效果演示
3.数据集格式或算法参数简介
4.MATLAB核心程序
5.算法涉及理论知识概要
6.参考文献
7.完整算法代码文件获得
1.引言
Polar码由土耳其教授Erdal Arikan于2008年提出,是第一种被严格证明可以达到香农极限的构造性编码方法。其核心思想是通过信道极化(Channel Polarization)将多个独立的二进制输入信道转化为一组极化信道,一部分信道接近无差错,另一部分接近完全噪声。
2.算法仿真效果演示
软件运行版本:
matlab2024b
仿真结果如下(仿真操作步骤可参考程序配套的操作视频,完整代码运行后无水印):
3.数据集格式或算法参数简介
K = 19;
N = 64;
R = K/N;
List = [4];EBN0 = [-3,-2,-1,0,1,2,2.5]; % 信噪比的范围
Times = [5000,2500,1000,300,200,150,60];
4.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;endendfigure;
semilogy(EBN0,ERR,'-*b');
xlabel('EBN0(dB)') %x轴坐标描述
ylabel('ERR') %y轴坐标描述
grid onif K==6save R11.mat EBN0 ERR
end
if K==13save R12.mat EBN0 ERR
end
if K==19save R13.mat EBN0 ERR
end
014_053m
5.算法涉及理论知识概要
Polar码由土耳其教授Erdal Arikan于2008年提出,是第一种被严格证明可以达到香农极限的构造性编码方法。其核心思想是通过信道极化(Channel Polarization)将多个独立的二进制输入信道转化为一组极化信道,一部分信道接近无差错,另一部分接近完全噪声。
Polar码编码过程
信道极化:通过递归计算信道容量,将n个原始信道转化为n个极化信道
信道选择:选择容量最大的k个信道作为信息位,其余作为冻结位 (固定为0)
编码运算:信息位向量u与生成矩阵Gn相乘得到码字c:
c=u⋅Gn
SCL译码是对原始SC译码的改进,通过维护一个候选路径列表提高译码性能:
6.参考文献
[1]孔维凡,程云鹏.短波通信中的低码率CRC-Polar编译码设计与仿真[J].通信技术, 2024, 57(8):775-782.
[2]高洁.5G 通信中Polar码的编译码研究和应用[J].Electronic Science & Technology, 2024, 37(1).DOI:10.16180/j.cnki.issn1007-7820.2024.01.009.
7.完整算法代码文件获得
完整程序见博客首页左侧或者打开本文底部
V