信道编码译码及MATLAB仿真(一)

简介: 信道编码译码及MATLAB仿真

前言

本文对数字通信技术中的信道编码及译码进行学习记录。

数字通信,就是把一切声音,图像,文字,都变成 0,1 这种二进制代码,这种转换过来的数据,我们可以称之为原始数据 bit 那么,这种原始的 bit,是否可以直接调制,转换成电磁波发送出去呢?答案是不可以,因为电磁波传输过程中,一定会存在于扰噪声,从而产生差错

下图为数字通信系统模型

数字通信系统模型


一、什么是信道编码

首先引用书上的定义对信道编码进行一下讲解:

信道编码(Channel Coding)的作用是进行差错控制。数字信号在传输过程中会受到噪声等影响而发生差错。为了减小差错,信道编码器对传输的信息码元按一定的规则加入保护成分(监督码元),组成所谓“抗干扰编码”。接收端的信道译码器按相应的逆规则进行解码,从中发现错误或纠正错误,提高通信系统的可靠性。

下面我们举个例子形象描述一下。

假设,我们把 “你好” 这两个字转换成 0,1 代码,比如用 00 和 01 分别代表你和好,在我们发送 00 时,因干扰原因,导致我们发送的数据变成了 01,那么我们发送的信息本来应该是“你”,而被接收端识别成了“好”,如下图所示:

我们为了抗干扰,就需要增加一个步骤,来让我们的数据具备“一定程度上的纠正干扰产生的差错的能力”,这个步骤就叫信道编码。

二、信道编码的基本逻辑—冗余数据

在进行信道编码时,需要增加冗余数据来达到抗干扰的效果,以下图为例,在运输花瓶时,为避免花瓶运输路途中破碎,我们增加一个泡沫箱子,再打包后通过快递进行发送,这里面的泡沫箱子及顺丰快递箱子就可以类似于冗余数据。

我们这里列举一些常用的冗余数据。

1、奇偶检验码

原始数据 100101100

  • 奇校验:1001011001,校验位为 1,让 1 的总数变成奇数 5
  • 偶校验:1001011000,校验位为 0,让 1 的总数保持为偶数 4

增加的 1bit 位,为校验位,也就是冗余 bit

假设使用奇校验:1001011001

  • 传输过程中,错 1 位:1011011001,可以发现错误
  • 传输过程中,错 2 位:0011011001,发现不了错误

奇偶校验码只具备检错的能力,而不具备纠错能力

2、重复码

原始信息 1 或者 0

编码

  • 1 ——> 111
  • 0 ——> 000

当受到干扰导致错 1 位的时候,可以达到纠错的效果

当受到干扰导致错 2 位的时候,不可以达到纠错的效果

三、编码率

R = K/N

K:有用 bit 数据

N:编码后的 bit 数据

以前面的码为例,原始数据 100101100 共 9 bit,奇校验: 1001011001 共 10 bit,编码率 R = 9 / 10 = 0.9 R=9/10=0.9R=9/10=0.9

重复码编码率 R = 1 / 3 R=1/3R=1/3

  • 1/3 编码,表示 3 个编码后的比特中,包含 1 个有效比特;
  • 1/4 编码,表示 4 个编码后的比特中,包含 1 个有效比特;

编码率越低,包含的几余信息越多,纠错的能力越强,抗干扰的能力越强,传输的有效数据越小

四、4G 和 5G 的信道编码

4G 的信道编码包括卷积码和 turbo 码,5G 的信道编码包括 polar 和 ldpc 码。

1、卷积码

卷积码一般使用(n , K , N n,K,NnKN)表示卷积编码器。

  • K KK 表示:输入的 K 个 bit (需要编码的原始 bit 数)
  • n nn 表示:输出的 n nn 个 bit 编码后的 bit 数
  • 编码率 R = K / n R=K/nR=K/n
  • N NN:编码约束度 (实际上就是寄存器的个数)

卷积码将 K KK 个信息码元编为 n nn 个码元时,这 n nn 个码元不仅与当前的 K KK 个信息有关,也与前面的 N − 1 N-1N1 段信息有关

参考下面的例子:


信道编码译码及MATLAB仿真(二)https://developer.aliyun.com/article/1472341

目录
相关文章
|
9月前
|
5G
基于IEEE 802.11a标准的物理层MATLAB仿真
基于IEEE 802.11a标准的物理层MATLAB仿真
488 0
|
9月前
|
算法
基于MATLAB/Simulink平台搭建同步电机、异步电机和双馈风机仿真模型
基于MATLAB/Simulink平台搭建同步电机、异步电机和双馈风机仿真模型
1127 30
|
9月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
394 8
|
9月前
|
机器学习/深度学习 算法 数据可视化
基于MVO多元宇宙优化的DBSCAN聚类算法matlab仿真
本程序基于MATLAB实现MVO优化的DBSCAN聚类算法,通过多元宇宙优化自动搜索最优参数Eps与MinPts,提升聚类精度。对比传统DBSCAN,MVO-DBSCAN有效克服参数依赖问题,适应复杂数据分布,增强鲁棒性,适用于非均匀密度数据集的高效聚类分析。
|
9月前
|
开发框架 算法 .NET
基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA
简介:本文介绍基于ADMM的MIMO信号检测算法,结合无穷范数优化与交替方向乘子法,降低计算复杂度并提升检测性能。涵盖MATLAB 2024b实现效果图、核心代码及详细注释,并对比ML、MMSE、ZF、OCD_MMSE与LAMA等算法。重点分析LAMA基于消息传递的低复杂度优势,适用于大规模MIMO系统,为通信系统检测提供理论支持与实践方案。(238字)
|
10月前
|
机器学习/深度学习 边缘计算 算法
【无人机】无人机群在三维环境中的碰撞和静态避障仿真(Matlab代码实现)
【无人机】无人机群在三维环境中的碰撞和静态避障仿真(Matlab代码实现)
413 0
|
9月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
777 0
|
9月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
1096 0
|
9月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
290 0
|
9月前
|
新能源 Java Go
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
289 0

热门文章

最新文章