m基于matlab的polar码误码率仿真,译码算法采用SC算法

简介: m基于matlab的polar码误码率仿真,译码算法采用SC算法

1.算法仿真效果
matlab2022a仿真结果如下:

2e3740e3af1361db9db31aec1ed6024e_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

2.算法涉及理论知识概要

    极化码(英语:Polar code)是一种前向错误更正编码方式,用于讯号传输。构造的核心是通过信道极化(channel polarization)处理,在编码侧采用方法使各个子信道呈现出不同的可靠性,当码长持续增加时,部分信道将趋向于容量近于1的完美信道(无误码),另一部分信道趋向于容量接近于0的纯噪声信道,选择在容量接近于1的信道上直接传输信息以逼近信道容量,是唯一能够被严格证明可以达到香农极限的方法。
    极化码(英语:Polar code)是一种前向错误更正编码方式,用于讯号传输。构造的核心是通过信道极化(channel polarization)处理,在编码侧采用方法使各个子信道呈现出不同的可靠性,当码长持续增加时,部分信道将趋向于容量近于1的完美信道(无误码),另一部分信道趋向于容量接近于0的纯噪声信道,选择在容量接近于1的信道上直接传输信息以逼近信道容量,是唯一能够被严格证明可以达到香农极限的方法。
    在解码侧,极化后的信道可用简单的逐次干扰抵消解码的方法,以较低的复杂度获得与最大似然解码相近的性能。2008年在国际信息论ISIT会议上,土耳其毕尔肯大学埃尔达尔·阿里坎(Erdal Arıkan)教授首次提出了这个信道极化的概念,基于该理论,他给出了人类已知的第一种能够被严格证明达到信道容量的信道编码方法,并命名为极化码华为2016宣布4月份率先完成中国IMT-2020(5G)推进组第一阶段的空口关键技术验证测试,在5G信道编码领域全部使用极化码,2016年11月17日国际无线标准化机构3GPP第87次会议在美国拉斯维加斯召开,中国华为主推PolarCode(极化码)方案,美国高通主推低密度奇偶检查码(LDPC)方案,法国主推Turbo2.0方案,最终控制信道编码由极化码胜出。 

  Polar码的主要思想是将多个子信道合并成一个等效信道,然后将等效信道分裂成多个信道容量呈两极分化(信道容量接近0或者1)的子信道,最后将信息在信道容量接近1的无噪子信道发送信息,而在信道容量接近0的子信道上发送收发已知的比特信息,从而提高信息传输的可靠性。
   Polar码的极化过程主要由两步来完成,第一步:信道联合;第二步:信道分裂。下面对这两步进行简单介绍

15e329accc41e32bc48dfa25b8da9787_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
1185c59794650c4fcb6f521fac9a04c0_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

    极化码的译码基本方法主要有:连续消除(Successive Cancellation, SC) 译 码 、 置 信 传 播 (Belief Propagation, BP) 译 码 、 线 性 规 划 (Linear Programming, LP) 译 码 、 基 于 SC 列 表 (Successive Cancellation List, SCL)译码、最大似然(Maximum Likelihood, ML)译码等。 



3.MATLAB核心程序

N          = 2^n;  
[Vals,Inds]= func_rates(n,0.5);
 
for i=1:length(SNR)
 
    %设置误码率参数
    Bit_err(i)    = 0; 
    Num_err       = 0; 
    %误码率累加器
    Numbers       = 0; 
    K             = round(rate*N);
    frozen_pos    = Inds(1:N-K);
    free_pos      = sort(Inds(N-K+1:N),'ascend');
    z             = ones(N,1);
    z(frozen_pos) = 0;
    sigma         = 1/sqrt(10^(SNR(i)/10));
    
    while Num_err <= LENS(i) 
          fprintf('SNR = %f\n', SNR(i));
          Num_err
          data_in     = randsrc(K,1,[0 1]);
          u           = zeros(N,1);
          u(free_pos) = data_in; 
          x           = func_encode(u);
          Trans_BPSK  = 2*x-1;
 
          Rec_sd_1               = Trans_BPSK + sigma*randn(N,1);
          Rec_sd                 = Rec_sd_1;
 
          %接收端
          y2                     = Rec_sd;
          L2                     = exp(-2*y2); 
          v2                     = func_SCdecoder(L2,z);
          data_out2              = v2(free_pos);
 
 
          nberr1      = length(find(data_out2~=data_in'));
 
          Num_err     = Num_err+nberr1;
          Numbers     = Numbers+1;
    end
    Bit_err(i) = Num_err/(length(data_in)*Numbers);
end
if rate==0.6
   save R2_6.mat SNR Bit_err   
end
if rate==0.5
   save R2_5.mat SNR Bit_err   
end
if rate==0.4
   save R2_4.mat SNR Bit_err   
end
figure;
semilogy(SNR,Bit_err,'b-o','linewidth',1);
xlabel('SNR per bit rS-D(dB)');
ylabel('Bit error rate(BER)');
grid on; 
相关文章
|
3月前
|
数据可视化
基于MATLAB的OFDM调制发射与接收仿真
基于MATLAB的OFDM调制发射与接收仿真
|
2月前
|
5G
基于IEEE 802.11a标准的物理层MATLAB仿真
基于IEEE 802.11a标准的物理层MATLAB仿真
196 0
|
2月前
|
算法
基于MATLAB/Simulink平台搭建同步电机、异步电机和双馈风机仿真模型
基于MATLAB/Simulink平台搭建同步电机、异步电机和双馈风机仿真模型
|
2月前
|
机器学习/深度学习 算法 数据可视化
基于MVO多元宇宙优化的DBSCAN聚类算法matlab仿真
本程序基于MATLAB实现MVO优化的DBSCAN聚类算法,通过多元宇宙优化自动搜索最优参数Eps与MinPts,提升聚类精度。对比传统DBSCAN,MVO-DBSCAN有效克服参数依赖问题,适应复杂数据分布,增强鲁棒性,适用于非均匀密度数据集的高效聚类分析。
|
2月前
|
开发框架 算法 .NET
基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA
简介:本文介绍基于ADMM的MIMO信号检测算法,结合无穷范数优化与交替方向乘子法,降低计算复杂度并提升检测性能。涵盖MATLAB 2024b实现效果图、核心代码及详细注释,并对比ML、MMSE、ZF、OCD_MMSE与LAMA等算法。重点分析LAMA基于消息传递的低复杂度优势,适用于大规模MIMO系统,为通信系统检测提供理论支持与实践方案。(238字)
|
3月前
|
监控
基于MATLAB/Simulink的单机带负荷仿真系统搭建
使用MATLAB/Simulink平台搭建一个单机带负荷的电力系统仿真模型。该系统包括同步发电机、励磁系统、调速系统、变压器、输电线路以及不同类型的负荷模型。
494 5
|
3月前
|
机器学习/深度学习 边缘计算 算法
【无人机】无人机群在三维环境中的碰撞和静态避障仿真(Matlab代码实现)
【无人机】无人机群在三维环境中的碰撞和静态避障仿真(Matlab代码实现)
207 0
|
2月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
277 0
|
2月前
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
213 2
|
3月前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
226 3

热门文章

最新文章