⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 curve_of_bch_code.txt

📁 bch码的编解码及信能曲线绘画结果
💻 TXT
字号:
%the bit error rate curve of BCH code
clc
clear all

%parameters
givenSNR=[1 1.5 2 2.5]% 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10]; 
N=511;  K=358;   T=11;%BCH parameter
times=5;
%end parameters

%calculate constants
r=358/511;
Eb_N0=10.^(givenSNR./10);
sigma=(1./(2*r.*Eb_N0).^0.5);

%end calculate constants


message=randint(times,K,[0,1]);
msg=gf(message);

BCHcode_gf=bchenc(msg,N,K);

%transform BCHcode from gf domain to double domain
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
%end transform BCHcode from gf domain to double domain


%add noise
for noise_i=1:length(sigma)
    BCH_receive(:,:,noise_i)=BCHcode_double+sigma(noise_i)*randn(times,N);
end
%end add noise



%BCH_code_signal hard judge
%hard_coded=zeros(length(sigma),times,N);
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
%end BCH_code_signal hard judge

%BCH decode
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

%change decoded data from gf domain to double
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
%end change decoded data from gf domain to double


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


hold on
grid minor

semilogy(givenSNR,coded_error_rate,'g')



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -