第九章 ECC原理

文章介绍了通信系统的基本模型,包括信号和噪声的概念,以及如何通过增加冗余来对抗噪声。重点讲述了纠错编码中的汉明距离、奇偶校验、校验矩阵和生成矩阵。还深入讨论了LDPC码,一种低密度奇偶校验码,及其在SSD中的应用,包括解码算法如Bit-flipping和和积信息传播算法。
摘要由CSDN通过智能技术生成

9.1 信号和噪声

      凡是信息传递的地方就有噪声。

      增强信号和噪声的强度比,增加信号冗余。

      实际通信中,使用 information bits 表示有效信息长度channel use 表示实际通信中传输的信息长度。定义:

                        Code rate  =(information bits) / (channel use)

比如,一句话说了三遍,那么,Code rate  = 1 / 3。

      Code rate 可以反映冗余程度。Code rate 越高,冗余越小

9.2 通信系统模型

      一个完整的通信系统模型,信息由信息源产生,由发送器发出信号,通过包含噪声的信号传输通道(Channel,信道)后,到达接收器,再由接收器提取出信息发送到目的地。

      以 A 在地铁上向 B 说话为例:A 心中想要说的话是信息源,发送器是神经和肌肉控制的嗓子,声音是信号,地铁车厢是 channel,B 的耳朵是接收器,最终的信息反映到 B 的大脑中。

       SSD 存入和读出信息就是一个通信系统。信息是用户写入的原始数据,经过 SSD 后端的发送器处理后,转化为闪存的 program,信号就是闪存上存储的电荷(电荷存储时会有自身泄露并在读的过程中收到周围电荷的影响,这是内存的信道特性),最后数据通过 SSD 后端的读取接收器完成读取过程

在二进制编码的系统中,有两种常见的 Channel 模型:

(1)BSC:Binary Symmetric Channel,即二进制对称信道。

(2)BEC:Binary Erasure Channel,即二进制擦除信道。

BSC 和 BEC 的区别:

(1)BSC 出错:接收者收到的 0 不一定是 0,有可能是发送者发送的 1;收到的 1 不一定是 1,有可能是发送者发送的 0。翻转

(2)BEC 丢 bit:接收者如果收到 0(1),那么发送者发送的肯定是 0(1);如果传输发生错误,接收者则接收不到信息。丢失

        对于 SSD 里的 Channel 模型一般采用 BSC 模型,即认为闪存信号发生了一定概率的位翻转(bit-flip)

      为了使得信息从源头(Source)在经过噪声的信道后,能够准确到达目的地,要对信息进行编码,通过增加冗余的方式保护信息。流程如下:

9.3 纠错编码的基本思想

      纠错编码的核心设计思想是通过增加冗余信息,使得原始信息的编码之间有足够大的区别

      最详细的“ECC-汉明码”原理讲解_ecc码_垮掉一代的博客-CSDN博客

9.3.1 编码距离

        采用的是汉明距离,即两个信号之间有多少 bit 不同。

        汉明距离就是两段码字之间不同的码元个数。比如101110和001100之间,可以清楚地看到两段码字的第1,5位是不同的,所以他们之间的汉明距离就是2。

        解码的时候:

9.3.2 线性纠错码的基石 —— 奇偶校验(Parity-Check)

        信号校验的基本模型是:对信号进行某种特定的处理后,得到期望的结果,则为校验通过;否则校验失败。

9.3.3 校验矩阵 H 和生成矩阵 G

      多个校验方程可以表示为 校验矩阵 H。有了 H,就可以确定所有正确的码字。

      对于所有 x(x_{0},x_{1},x_{2},x_{3}, …),只要满足 \mathbf{H}x^{\boldsymbol{T}} = 0,x 就是正确的码字。如果不满足,则 x 不属于正确的码字,认为在传输过程中 x 出现了错误。

        

9.4 LDPC 码原理简介

      LDPC 码是目前主流的纠错码。

9.4.1 LDPC 是什么?

        LDPC,即 Low Density Parity-Check Code,低密度奇偶检验码。

        LDPC 的特征是 低密度,也就是说,校验矩阵 H 里面的 1 的分布比较稀疏。

         LDPC 又分为正则 LDPC(regular LDPC)编码和非正则 LDPC(irregular LDPC)编码

        (1)正则 LDPC:校验矩阵每行有固定 J 个 1,每列有固定 K 个 1;

        (2)非正则LDPC:没有上述限制。

         可以看到,H 矩阵每行有 4 个 1,每列有 3 个 1,所以 C 为正则 LDPC。

9.4.2 Tanner 图

      H 矩阵可以直观的表示为 Tanner 图。Tanner 图由节点和连线组成

      节点有两种:b 节点(bit node)和 c 节点(check node)。

9.5 LDPC 解码

      LDPC 的解码方法有:硬判决解码(hard decision decode)和软判决解码(soft decision decode)。

      硬判决算法:Bit-flipping算法;

      软判决算法:和积信息传播算法。

9.5.1 Bit-flipping 算法

       核心思想:如果信号中有一个 bit 参与的大量校验方程都校验失败,那么这个 bit 有错误的概率很大。

       Bit-flipping 算法运用消息传递方法,通过不断迭代达到最终的纠错效果。

9.5.2 和积信息传播算法

       和积信息传播算法(sum-product message passing),简称和积算法。

9.6 LDPC编码

9.7 LDPC 在SSD 中的应用

9.7.3 LDPC 纠错流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值