FEC前向纠错码

这是一种通过软件提高数据传输准确性的方式。远程通信中,由于接收到的信号信噪比往往很低,在不愿意或无法进一步通过硬件指标降低误码率时,使用这种“软”方式是很有效的。

最简明的工作机制是这样地: 假设我们需要传输一位二进制“0”,但担心接收方收到的是“1”,该怎么办呢?我们可以取“重要三连”法,也就是发三次,即发连续的三个“0”代表一位,“000”就是实际发出去的信号,在接收端,我们作这么一个规定:接收到的三位按照“少数服从多数”原则判断,即如果收到了“000”、“001”、“010”、“100”,就认为它是0,当收到“011”、“101”、“110”和“111”的时候认为是“1”。我们都知道数据传输是一种随机事件,粗看起来,单发一个“0”,收到的是“0”和“1”的概率各50%,而发连续的三位“000”代表一位“0”,收到“0”和“1”的概率好像也是50%。事实上,在真实的无线信道传输中,000”、“001”、“010”、“100”、011”、“101”、“110”和“111”出现的概率是很不相同的,这里有一个假设:典型的信道干扰在接收机中一次只干扰一位的概率是最大的,即三位中只有一位出错才最有可能发生,于是这样发送的数据在事实上提高了传输准确性。

从上面这一大坨示例可以看出,FEC能够改善误码率的本质还是以更高的传输带宽为代价的,一般就是用于重复传输困难或是不可能重传的情况。上面的示例也仅是为了说明原理的一个例子,实际应用中FEC编码还是有些讲究地,具体实现方式还在学习中~

你可能感兴趣的:(FEC前向纠错码)