信道编码译码及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

目录
相关文章
|
1天前
|
算法
基于GA遗传优化的混合发电系统优化配置算法matlab仿真
**摘要:** 该研究利用遗传算法(GA)对混合发电系统进行优化配置,旨在最小化风能、太阳能及电池储能的成本并提升系统性能。MATLAB 2022a用于实现这一算法。仿真结果展示了一系列图表,包括总成本随代数变化、最佳适应度随代数变化,以及不同数据的分布情况,如负荷、风速、太阳辐射、弃电、缺电和电池状态等。此外,代码示例展示了如何运用GA求解,并绘制了发电单元的功率输出和年变化。该系统原理基于GA的自然选择和遗传原理,通过染色体编码、初始种群生成、适应度函数、选择、交叉和变异操作来寻找最优容量配置,以平衡成本、效率和可靠性。
|
1天前
|
存储 算法
基于布谷鸟搜索的多目标优化matlab仿真
该程序运用布谷鸟搜索算法进行多目标优化,设置三个目标函数,生成三维优化曲面和收敛曲线。在MATLAB2022a中运行,显示了迭代过程中的优化结果图。算法基于布谷鸟的寄生繁殖和列维飞行行为,通过非支配排序和拥挤度计算处理多目标问题。迭代中,新解不断被评估、更新并加入帕累托前沿,最终输出帕累托前沿作为最优解集。
|
2天前
|
机器学习/深度学习 算法
基于鲸鱼优化的knn分类特征选择算法matlab仿真
**基于WOA的KNN特征选择算法摘要** 该研究提出了一种融合鲸鱼优化算法(WOA)与K近邻(KNN)分类器的特征选择方法,旨在提升KNN的分类精度。在MATLAB2022a中实现,WOA负责优化特征子集,通过模拟鲸鱼捕食行为的螺旋式和包围策略搜索最佳特征。KNN则用于评估特征子集的性能。算法流程包括WOA参数初始化、特征二进制编码、适应度函数定义(以分类准确率为基准)、WOA迭代搜索及最优解输出。该方法有效地结合了启发式搜索与机器学习,优化特征选择,提高分类性能。
|
1天前
|
机器学习/深度学习 算法 固态存储
m基于深度学习的卫星遥感图像轮船检测系统matlab仿真,带GUI操作界面
在MATLAB 2022a中,使用GoogLeNet对卫星遥感图像进行轮船检测,展示了高效的目标识别。GoogLeNet的Inception架构结合全局平均池化增强模型泛化性。核心代码将图像切块并分类,预测为轮船的部分被突出显示,体现了深度学习在复杂场景检测中的应用。
20 8
支路电气介数的matlab仿真,并对比HVDC,FACTS-TCSC,FACTS-UPFC
**摘要:** 研究了MATLAB中支路电气介数的仿真,对比了HVDC、FACTS-TCSC和FACTS-UPFC的影响。通过在不同线路应用这些模型,分析电气介数的分布。仿真结果显示,节点/支路的电气介数符合幂律分布,揭示关键节点和支路。使用MATLAB2022a进行计算,核心程序涉及电力系统图论分析。电气介数衡量支路在功率传输中的重要性,高介数支路对系统稳定至关重要。计算流程包括节点和支路介数的特定公式,并附有计算流程图。
|
21小时前
|
算法 计算机视觉
基于Chan-Vese算法的图像边缘提取matlab仿真
**算法预览展示了4幅图像,从边缘检测到最终分割,体现了在matlab2022a中应用的Chan-Vese水平集迭代过程。核心代码段用于更新水平集并显示迭代效果,最后生成分割结果及误差曲线。Chan-Vese模型(2001)是图像分割的经典方法,通过最小化能量函数自动检测平滑区域和清晰边界的图像分割,适用于复杂环境,广泛应用于医学影像和机器视觉。**
|
21小时前
|
算法
基于极大似然法和最小二乘法系统参数辨识matlab仿真,包含GUI界面
该程序对比了基于极大似然法和最小二乘法的系统参数辨识,输出辨识收敛曲线和误差。在MATLAB2022a中运行,显示了测试结果。核心代码涉及矩阵运算和循环,用于更新和计算系统参数。算法原理部分解释了辨识的目的是建立数学模型,并介绍了极大似然法(基于概率统计)和最小二乘法(基于误差平方和最小化)两种方法。
|
4天前
|
传感器 算法
ANC主动降噪理论及Matlab代码实现
ANC主动降噪理论及Matlab代码实现
|
1月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)