联系QQ:

2181264433

新闻资讯
联系我们
联系:张女士
微信:扫一扫右侧二维码
QQ :2181264433
邮箱:2181264433@qq.com
地址:浙江省-嘉兴市-南湖区
网址:www.mhslogic.com
您当前位置:首页 > 国内资讯 > 正文国内资讯
MATLAB代做|FPGA代做|simulink代做——基于matlab的BCH编译码算法原理介绍与仿真分析
添加时间:2021-9-16 来源:本站整理
clc;
clear all;
close all;
%参数设置%(511,493)(4095.4035) 

% givenSNR=0.5:0.5:15; %] 
% N=4095; 
% K=4035;

givenSNR=0.5:0.5:9.5; %]
N=511; 
K=493; 


T=9;
times=length(givenSNR);

%计算几个值
r=K/N;
Eb_N0=10.^(givenSNR./10);
sigma=(1./(2*r.*Eb_N0).^0.5);
message=randint(times,K,[0,1]);
msg=gf(message);
BCHcode_gf=bchenc(msg,N,K);

%BCH编码
BCHcode_double=-1*ones(times,N);
for code_i=1:times
    for code_j=1:N
        if BCHcode_gf(code_i,code_j)==1
            BCHcode_double(code_i,code_j)=1;
        end
    end
end


%添加噪声
for noise_i=1:length(sigma)
    BCH_receive(:,:,noise_i)=BCHcode_double+sigma(noise_i)*randn(times,N);
end


for noise_i=1:length(sigma)
    for hard_i=1:times
        for hard_j=1:N
          if BCH_receive(hard_i,hard_j,noise_i)>0
             hard_coded(hard_i,hard_j,noise_i)=1;
          end
        end
    end
end


%BCH解码 
BCHdecode=gf(zeros(times,K,length(sigma)));
for noise_i=1:length(sigma)
    hard_BCH=hard_coded(:,:,noise_i);
    [BCHdecode_i,error_num]=bchdec(gf(hard_BCH),N, K);
    BCHdecode(:,:,noise_i)=BCHdecode_i;
end
BCHdecode_double=zeros(times,K);
for noise_i=1:length(sigma)
    for gf_to_double_i=1:times
        for gf_to_double_j=1:K
          if BCHdecode(gf_to_double_i,gf_to_double_j,noise_i)==1
               BCHdecode_double(gf_to_double_i,gf_to_double_j,noise_i)=1;
          end
        end
    end
end
for noise_i=1:length(sigma)
    error_BCHcoded_num(noise_i)=sum(sum((abs(BCHdecode_double(:,:,noise_i)-message))));
end
coded_error_rate=error_BCHcoded_num/times/K


semilogy(givenSNR,coded_error_rate,'-*');
ylabel('BER');
xlabel('Eb/N0');
grid on;


————————————————
 

扫一扫,关注我们