锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

BCH编码译码误码率性能matlab仿真

时间:2023-08-05 07:37:00 51tjl压接型矩形连接器

目录

1.算法描述

2.部分程序

3.预览部分仿真图

4.获取源码的方式


1.算法描述

BCH编译码是一种信道编译码,纠错能力强,结构简单。BCH编译码的多项生成可以用以下公式表示:

①BCH代码是一种纠错码、线性分组码和循环码。

②信息位数需要传输:k

③纠错能力:t

④总码长(信息位) 监督位):n

⑤n的长度满足n=2^m – 一时生成的是本原BCH码;n的长度为2^m – 1因子时为非本原BCH码

(如n=15,n=31,n=63时为本原BCH码;n=21(63可以整除)等待非原始BCH码)

⑥还有加长BCH码和缩短BCH码。

⑦具体的BCH码通常用BCH(n,k)码来表示。

加长BCH码和缩短BCH码:

因为本原BCH码和非本原BCH码要求了n的长度,但很多情况下我们想要的码长并不满足n=2^m – 1或其因素。此时需要加长BCH码和缩短BCH码。

(1)缩短BCH码

BCH(50,32)码是扩展域GF(2^6)上BCH缩短码(63,45)。BCH(50,32)码和BCH(63,45)码的区别与联系:

①两者纠错能力相同,生成多项式相同。

②缩短码的实现只需在编译码时补充0,从k = 32凑到k = 45即可。

(2)加长BCH码

在本原BCH码或非本原BCH多项式中乘因式代码生成(x 1),可以加长BCH码(n 1,k),增加校验位。

本课题的主要分析码率为0.8和0.5两种模式下 的BCH编码性能,将BCH代码的参数设置为BCH(255,207)和BCH(255,131)两个参数下的编码率分别为0.8117和0.5137。

以BCH以255、207为例进行分析,编码后的码字包含信息字节和验证字节,表达式如下:

BCH翻译过程主要通过计算伴随式sj获得错位多项式,然后通过chein算法计算错位多项根,以确定错位数。最后,错误误图案最终通过错误位置数获得E(x),最后通过R(x)- E(x)= C(x)进行纠错。

2.部分程序

clc; clear all; close all; warning off;  SNR  = [0:1:7]; TJL  = 5000; N    = 255;  K    = 207;   %主体代码 for i = 1:length(SNR)     i     Bit_err(i)    = 0; 设置误码率参数%     Num_err       = 0; 蒙特卡洛模拟次数%     Numbers       = 0; %误码率累加器     while Num_err <= TJL            %计算几个值           message    = randint(1,K,[0,1]);           msg        = gf(message);           BCHcode_gf = bchenc(msg,N,K);           ?H编码           BCHcode_double=-1*ones(1,N);           for code_j=1:N               if BCHcode_gf(1,code_j)==1                  BCHcode_double(1,code_j)=1;               end           end           %信道           BCH_receive = awgn(BCHcode_double,SNR(i),'measured');           hard_coded  = zeros(1,N);           for hard_j=1:N               if BCH_receive(hard_j)>0                  hard_coded(hard_j)=1;               end           end           ?H解码            BCHdecode = gf(zeros(1,K));           hard_BCH  = hard_coded;           [BCHdecode_i,error_num]=bchdec(gf(hard_BCH),N, K);           BCHdecode = BCHdecode_i;           BCHdecode_double = zeros(1,K);            for gf_to_double_j=1:K               if BCHdecode(gf_to_double_j)==1                  BCHdecode_double(gf_to_double_j)=1;               end           end           Err = biterr(BCHdecode_double,message);           Num_err                 = Num_err Err;           Num_err           Numbers                 = Numbers 1;     end       Bit_err(i) = Num_err/(length(message)*Numbers);   end  %曲线仿真 figure; semilogy(SNR,Bit_err,'b-o'); xlabel('SNR'); ylabel('BER'); grid on; save data.mat SNR Bit_err  

3.预览部分仿真图

从图3.2的模拟结果可以看出,BCH编码方法(255,131),码率接近0.5.当SNR为6db误码率达到10-4次方。而采用BCH编码方法(255,207),码率高,为0.8117。虽然传输效率高,但性能差。在SNR为7db误码率性能为10-3次方。

4.获取源码的方式

点击下载链接:

BCH编码错码率性能matlab仿真 word版说明文档 程序操作视频

获取方式2:

博客资源项,搜索与博文同名资源。

获取方式3:

如果下载链接失效,请添加博客微信联系。

A_045

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章