BCH编码译码误码率性能matlab仿真
时间:2023-08-05 07:37:00
目录
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