hlayumi的个人空间 https://blog.eetop.cn/hslogic [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

matlab代做仿真案例-多进制LDPC编译码仿真

热度 1已有 24517 次阅读| 2017-4-19 17:49 |系统分类:硬件设计

多进制LDPC编译码仿真
演示地址:

clc;
clear;
close all;
warning off;
addpath 'functions\'

q         = 4;                      %定义伽罗达域,支持4,8,16
nbits     = log2(q);                %多进制符号值
EbNo      = [0  0.5  1  1.5 2];   %信噪比

%以下两个值设置小点,这样仿真可以快点,值较大的时候,仿真速度非常慢,但性能较好
M         = 24;              %校验数
N         = 32;             %矩阵长度
t         = 3;               %权值                 
h         = ldpc_generate(M,N,t,q,1); %产生矩阵H
[H,G]     = ldpc_h2g(h,q);                    %产生矩阵G

for kk=1:length(EbNo)
    kk
    totalNumErr = 0;
    count       = 0;
    SNR         = 10^(EbNo(kk)/10);
    sigma       = 1/(sqrt(SNR));    

    while (totalNumErr < 100000)%仿真越长,效果越OK
        kk
        totalNumErr
        
        %产生一组随机数
        x  = floor(rand(1,size(G,1))*q); 
        
        %进行多进制准循环LDPC编码
        y  = func_Ldpc_enc(x,G,q);   
        
        %多进制信道处理
        yb = (fliplr(de2bi(y,nbits)))';      
        yb = yb(:);                          
        zb = 2*yb-1;                      
        zb = zb + sigma*randn(size(zb));      

        f1=1./(1+exp(-2*zb/sigma^2));        
        f1 = f1(:);                         
        f1 = reshape(f1,nbits,length(y));                    
        f0=1-f1;
        junk = ones(q,length(y));           
        [v0, v1, pp] = func_message_passing(f0,f1,junk);    
        
        [z_hat,success, k] = func_Ldpc_dec_log(pp,H,q);
        x_hat = z_hat(size(G,2)+1-size(G,1):size(G,2));
        x_hat = x_hat';    
        
        %统计误码率
        totalNumErr = totalNumErr+(sum (x_hat~=x'));
       
        count = count + 1;
    end
    
    BERs(kk)=totalNumErr/(count*length(x));
end

figure;
semilogy(EbNo,BERs,'r-o');
xlabel('EbN0');
ylabel('BER');
grid on;

if q == 4
   save ERR4_log.mat EbNo BERs
end
if q == 8
   save ERR8_log.mat EbNo BERs
end
if q == 16
   save ERR16_log.mat EbNo BERs
end


点赞

发表评论 评论 (2 个评论)

回复 邓依 2018-11-29 10:53
请问您有完整的多进制LDPC码编译码matlab程序吗?我正在找这方面的程序
回复 hjgcqq123 2022-5-2 20:37
  

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 5

    粉丝
  • 0

    好友
  • 1

    获赞
  • 16

    评论
  • 5260

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-26 09:17 , Processed in 0.034837 second(s), 15 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部