您现在的位置:首页 >> 编解码 >> 内容

基于BP译码的LDPC误码率matlab仿真,分析不同码长,码率,迭代次数以及信道类型对译码性能的影

时间:2024/11/1 2:15:34 点击:

  核心提示:0sj_026m,包括程序操作录像...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/Zp6akpZq

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览


3.算法概述

低密度奇偶校验码(Low-Density Parity-Check Codes,LDPC)是一种具有逼近香农限性能的信道编码技术。在现代通信系统中,LDPC 码因其优异的性能而得到了广泛的应用。BP(Belief Propagation)译码算法是 LDPC 码的一种重要译码方法,它通过在 Tanner 图上进行消息传递来实现译码。

4.部分源码

..............................................................

disp('Start......');

for i=1:length(EbN0)

    

    Bit_err(i) = 0;

    Num_err    = 0;

    Numbers    = 0; %误码率累加器

    

    while Num_err <= Times(i)

          Num_err

          fprintf('Eb/N0 = %f\n', EbN0(i));

          Trans_data = round(rand(1,N-M));  %产生需要发送的随机数

          ldpc_code  = mod(Trans_data*G,2); %LDPC编码

          Trans_BPSK = 2*ldpc_code-1;       %BPSK

          

          %通过高斯信道

          sigma      = sqrt(1./(2*10^(EbN0(i)/10)*R));  

          Rec_BPSK   = Trans_BPSK + sigma*randn(1,size(G,2));   

          

          %LDPC译码 

          z_hat = func_Dec(Rec_BPSK,sigma,H,max_iter);

 

           x_hat      = z_hat(size(G,2)+1-size(G,1):size(G,2));

 

         [nberr,rat]  = biterr(x_hat',Trans_data);

          Num_err     = Num_err+nberr;

          Numbers     = Numbers+1;    

    end 

    Bit_err(i)=Num_err/(N*Numbers);

end

figure;

semilogy(EbN0,Bit_err,'o-r');

xlabel('Eb/N0(dB)');

ylabel('BER');

grid on;

if N == 24

   save R_2.mat EbN0 Bit_err

end

if N == 50

   save R_1.mat EbN0 Bit_err

end

if N == 102

   save R0.mat EbN0 Bit_err

end

if N == 204

   save R1.mat EbN0 Bit_err

end

if N == 504

   save R2.mat EbN0 Bit_err

end

if N == 1008

   save R3.mat EbN0 Bit_err

end

0sj_026m

        

        

        

---

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168