赞
踩
凡是信息传递的地方就有噪声。
增强信号和噪声的强度比,增加信号冗余。
实际通信中,使用 information bits 表示有效信息长度,channel use 表示实际通信中传输的信息长度。定义:
Code rate =(information bits) / (channel use)
比如,一句话说了三遍,那么,Code rate = 1 / 3。
Code rate 可以反映冗余程度。Code rate 越高,冗余越小。
一个完整的通信系统模型,信息由信息源产生,由发送器发出信号,通过包含噪声的信号传输通道(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)在经过噪声的信道后,能够准确到达目的地,要对信息进行编码,通过增加冗余的方式保护信息。流程如下:
纠错编码的核心设计思想是通过增加冗余信息,使得原始信息的编码之间有足够大的区别。
最详细的“ECC-汉明码”原理讲解_ecc码_垮掉一代的博客-CSDN博客
采用的是汉明距离,即两个信号之间有多少 bit 不同。
汉明距离就是两段码字之间不同的码元个数。比如101110和001100之间,可以清楚地看到两段码字的第1,5位是不同的,所以他们之间的汉明距离就是2。
解码的时候:
信号校验的基本模型是:对信号进行某种特定的处理后,得到期望的结果,则为校验通过;否则校验失败。
多个校验方程可以表示为 校验矩阵 H。有了 H,就可以确定所有正确的码字。
对于所有 x(, …),只要满足 = 0,x 就是正确的码字。如果不满足,则 x 不属于正确的码字,认为在传输过程中 x 出现了错误。
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。
H 矩阵可以直观的表示为 Tanner 图。Tanner 图由节点和连线组成。
节点有两种:b 节点(bit node)和 c 节点(check node)。
LDPC 的解码方法有:硬判决解码(hard decision decode)和软判决解码(soft decision decode)。
硬判决算法:Bit-flipping算法;
软判决算法:和积信息传播算法。
核心思想:如果信号中有一个 bit 参与的大量校验方程都校验失败,那么这个 bit 有错误的概率很大。
Bit-flipping 算法运用消息传递方法,通过不断迭代达到最终的纠错效果。
和积信息传播算法(sum-product message passing),简称和积算法。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。