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

news2025/7/19 6:23:13

目录

1.算法描述

2.仿真效果预览

3.MATLAB部分代码预览

4.完整MATLAB程序


1.算法描述

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

  

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

②需要传输信息位数:k

③纠错能力:t

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

⑤n的长度满足n=2^m – 1时生成的为本原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.仿真效果预览

matlab2022a仿真结果如下:


       从图3.2的仿真结果可知,采用BCH(255,131)的编译码方式,其码率接近0.5,因此具有较好的编译码性能,当SNR为6db的时候,误码率达到10的-4次方。而采用BCH(255,207)编译码方式,其码率较高,为0.8117。虽然具有较高的传输效率,但是其性能较差。在SNR为7db的时候,误码率性能为10的-3次方。

3.MATLAB部分代码预览

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);
          %BCH编码
          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
          %BCH解码 
          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
A_045_BCH

4.完整MATLAB程序

matlab源码说明_我爱C编程的博客-CSDN博客

V

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/36034.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何搭建一个好的知识库管理系统?

简道云知识管理应用对于想知道怎样搭建一个好的知识库管理系统的人来说&#xff0c;拥有正确的流程非常重要。这个过程不需要很复杂&#xff0c;但如果您想要个满足更多需求的知识管理系统&#xff0c;它确实需要非常的全面。 简道云知识库&#xff1a;http://s.fanruan.com/r…

(附源码)计算机毕业设计JavaJava毕设项目社区物业管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis Maven Vue 等等组成&#xff0c;B/…

软件测试面试,一定要准备的7个高频面试题(附答案,建议收藏)

收集了2022年最新的面试题后&#xff0c;负责就业的黑马讲师们整理出了7个高频出现的面试题&#xff0c;一起来看看。 高频问题1&#xff1a;请自我介绍下&#xff1f; 高频问题2&#xff1a;请介绍下最近做过的项目&#xff1f; 高频问题3&#xff1a;请介绍下你印象深刻的…

IO模型Netty

一、IO模型 对于一次IO操作&#xff0c;数据会先拷贝到内核空间中&#xff0c;然后再从内核空间拷贝到用户空间中&#xff0c;所以一次read操作&#xff0c;会经历以下两个阶段&#xff0c;基于这两个阶段就产生了五种不同的IO模式。 为了避免用户进程直接操作内核&#xff0c;…

【科学文献计量】RC.networkOneMode()中的参数解释

RC.networkOneMode中的参数解释 1 数据2 RC.networkOneMode()中的参数解释2.1 测试mode参数2.2 测试nodeCount参数2.3 测试edgeWeight参数2.4 测试stemmer参数2.5 测试edgeAttribute参数2.6 测试nodeAttribute参数1 数据 使用web of science中的数据,借助metaknowledge库读入…

跬智信息 (Kyligence) 荣获信创“大比武”重要奖项,坚持做大做实国产软件

近日&#xff0c;为期两个月的 2022 信创“大比武”活动圆满闭幕。经过层层筛选和考核&#xff0c;跬智信息 (Kyligence) 凭借“企业级智能多维数据分析解决方案”项目脱颖而出&#xff0c;在整体方案的技术架构、服务体系、安全架构、信创生态等方面得到了评委的高度认可&…

Python数学基础二、利用正弦sin求曲边图形的面积

目录 正弦 求曲边图形的面积 推导方式解法&#xff1a; 推导式解法&#xff1a; 正弦 古代的勾三股四弦五中说的弦就是我们要说的正弦&#xff0c;也就是直角三角形中的斜边&#xff0c;叫做弦&#xff0c;股就是人的大腿&#xff0c;古人称直角三角形长的那个直角边就叫做…

深入I/O挖矿

1、Linux 系统如何管理文件 1.1 静态文件与 inode 文件在没有被打开的情况下一般都是存放在磁盘中的&#xff0c;譬如电脑硬盘、移动硬盘、U 盘等外部存储设备&#xff0c;文件存放在磁盘文件系统中&#xff0c;并且以一种固定的形式进行存放&#xff0c;我们把他们称为静态文…

二、VSCode——MiKTeX编写latex编码

免安装下载VSCode https://blog.csdn.net/qq_40837795/article/details/128037675 下载MiKTeX https://miktex.org/download 配置MiKTeX https://blog.csdn.net/qq_40837795/article/details/120388489 配置VSCode LaTeX workshop 1、点击左侧Extensions&#xff0c;搜…

论文阅读笔记 | 三维目标检测——VoxelRCNN算法

如有错误&#xff0c;恳请指出。 文章目录1. 背景2. 网络结构Voxel QueryVoxel ROI PoolingAccelerated AggregationLoss Compute3. 实验结果paper&#xff1a;《Voxel R-CNN: Towards High Performance Voxel-based 3D Object Detection》 1. 背景 现有很多的point-based检测…

R语言鸢尾花iris数据集的层次聚类分析

介绍 本文在数据集上展示了如何使用dendextend R软件包来增强Hierarchical Cluster Analysis&#xff08;更好的可视化和灵敏度分析&#xff09;。最近我们被客户要求撰写关于鸢尾花iris的研究报告&#xff0c;包括一些图形和统计输出。 【视频】KMEANS均值聚类和层次聚类&…

从0开始配置深度学习环境(Python)

写这篇文章的起因是因为重装了电脑&#xff0c;之前配好的深度学习环境没了&#xff0c;又在网上找了很久&#xff0c;所以决定记录一下&#xff0c;以备后续刷机。 环境&#xff1a; 显卡&#xff1a;GTX1060 6G CUDA驱动版本&#xff1a;457.20 ——11.1.114 Python版本&…

常用的JVM配置参数说明

工作中常用的JVM参数配置&#xff0c;以Java8为例&#xff1a; 日志相关 -XX:PrintFlagsFinal,打印JVM所有参数的值 -XX:PrintGC,打印GC信息 -XX:PrintGCDetails,打印GC详细信息 -XX:PrintGCTimeStamps,打印GC 的时间戳 -Xloggc:filename,设置GClog文件的位置 -XX:PrintT…

Java抽象类和接口

对于Java面向对象编程来说&#xff0c;抽象也是它的一个重要特征。在 Java 中&#xff0c;可以通过两种形式来体现 面向对象&#xff08;OOP&#xff09;的抽象&#xff1a;接口和抽象类。这篇文章就为大家介绍这两个的相似与区别之处。 一、抽象类&#xff08;abstract&#…

3.4 这些都是小红书的流量入口【玩赚小红书】

主要有下面这些位置&#xff1a; ​ 1、推荐流量&#xff1a;根据用户往期的搜索习惯推荐&#xff0c;相当于是猜用户喜欢&#xff0c;精准度会低一些 ​ 2、位置流量&#xff1a;根据用户所在的位置推荐&#xff0c;一般是同城20km范围内。直接在主页-发现-后边的附近那里可…

报告解读下载 | 11月《中国数据库行业分析报告》发布,精彩抢先看

为了帮助大家及时了解中国数据库行业发展现状、梳理当前数据库市场环境和产品生态等情况&#xff0c;从2022年4月起&#xff0c;墨天轮社区行业分析研究团队出品将持续每月为大家推出最新《中国数据库行业分析报告》&#xff0c;持续传播数据技术知识、努力促进技术创新与行业生…

数位dp总结

补题的时候有个题需要数位dp&#xff0c;有去重学了一波上一年就学过的数位dp&#xff0c;又学一遍感觉上一年学了个寂寞&#xff0c;&#xff0c;&#xff0c; 这种问题大多数都是和数的每一位的数字有关&#xff0c;一般是一个数的数位之间存在着某种关系&#xff0c;让求具有…

网络通信基本原理

通讯的必要条件 主机之间需要有传输介质。光纤、蓝牙、wify主机上必须有网卡设备。把二进制信息转为高低电压的过程就是数据的调制过程。把电信号转为二进制信息的过程为解调制。主机之间需要协商网络速率。 网路的通讯方式 日常生活中&#xff0c;我们通讯的方式不可能只有…

IPD流程概要

一、IPD流程的主要内容 CDCP:concept decision check point 的缩写,意为概念决策评审点。在概念阶段结束时要召开一个概率决策评审会,在这个会议上,PDT正式向IPMT报告初始的业务计划,由IPMT决定项目是继续还是终止。若初始的业务计划得到批准,分委会将做出下一阶段开始前…

11.14-11.21

1.线性蒙皮 1.1 线性蒙皮定义 线性蒙皮&#xff1a;是由一系列骨骼驱动的。每个顶点会根据顶点权重图和相应的骨骼关联。根据骨骼在当前位置相对于静止位置的变换矩阵以及此顶点相对于该骨骼的权重&#xff0c;我们可以计算出该顶点在该骨骼影响下的位置。 假设Wij是第j个骨…