接上文,来详细的说明一下FEC前向纠错的具体实现:

FEC_matrix是一个比较常用的算法,Vandermonde,范德蒙矩阵是法国数学家范德蒙提出的一种各列为几何级数的矩阵。

范德蒙矩阵的定义:

V =

其第i 行、第j 列可以表示为(αi)^(j-1)。

范德蒙矩阵的性质:范德蒙矩阵行数为m,列数为n,矩阵具有最大的秩min(m, n)。

范德蒙矩阵的应用:范德蒙矩阵应用之一就是在纠错编码中,常用的纠错码Reed-solomon 编码中冗余块的编码采用的即为范德蒙矩阵。

1)码流层面上的FEC编码

在块编码中,信道编码器将对码流中连续的k个比特划分成一块,然后对这k个比特添加n-k个冗余比特,产生一个n比特的编码块。编码块经过信道后传送到接收端,这种编码块称为(n,k)块编码,其中k个比特称作信息位,n-k个比特称作校验位

码流层面上的FEC编码示意图

(n,k)可以纠正长为b比特的突发错误,其中b<=[1/2(n-k)}];如果知道发生错位的位置,那么FEC可以纠正长度为b比特的错误, b<=n-k。

2)数据包层面上的FEC编码

数据包层面上的FEC编码常用语恢复传输过程中丢失的数据包,这种FEC编码的基本思想是首先将码流分成多个分段,这些分段构成多个原始数据包,然后采用块编码,有k个原始的数据包产生n-k个冗余包,构成包含n个数据包的块,其中n>k。这个n-k个冗余包和k个数据包一起都通过信道进行传输。如果原始数据包没有丢失,那么接收端可以忽略所有的冗余包,如下图是有误码情况下FEC编解码示意图。

有误码(或丢失)情况下的FEC编解码示意图

一般地,FEC编码会存在以下问题:

1)FEC造成传输速率的增加。这是因为k个信息比特就要增加n-k个冗余比特,因此传输码率要扩大n/k倍。另外,信道误码率越高,恢复误码所需要的传输速率就越高。

2)FEC使传输时延增加。这是因为信道编码器需要得到k个数据包才能开始进行信道编码。而信道解码器也必须正确接收到k个数据包后才能开始解码。

3)FEC难以适应信道误码特征性的动态变化,只有在信道状态稳定时才能得到良好的性能。在信道状况恶化的情况下,如果信道保护不足,传输中出现的误码超出了FEC的误码恢复能力,那么FEC编码不仅没有起到保护作用反而造成传输带宽的浪费。反之,如果在信道状况良好的时候施加过多的信道保护,人会造成传输资源的浪费。因此,在无线、因特网这类时变得网络中进行视频流传输时,往往采用自适应的FEC保护机制。

RS码类纠删码:RS码类生成的矩阵为范德蒙矩阵和柯西矩阵,相应的纠删码分别为范德蒙码和柯西码。

低密度纠删码: 基于删除信道的低密度校验码(LDPC码)称为低密度纠删码,它的生成矩阵为系数矩阵。

RS码是一类有很强纠错能力的多进制BCH码,也是一类典型的代数几何码。RS码广义上属于BCH码的一个子类,但因为RS编码基于非二进制符号,所以它不但继承了BCH码抗随机误码的能力,同时又具有抗突发误码的能力,通常作为纠删码的使用。

RS码根据其生成矩阵不同,可分为范德蒙码和柯西码。

  • 范德蒙码
  • 定义:若选取编码生成矩阵Gkxm,使得,其中(p为素数,r为正整数),则所得纠删码为范德蒙码,G的任意k列组成的子方阵
    G’ 的转置矩阵为范德蒙矩阵,若xi(i=1,2,...,k)互不相同,则,从而,即G的任意k列组成的子方阵
    G‘ 为非奇异(G的任意k列线性无关)的,因此这样得到的矩阵满足最优纠删码生成矩阵的特性。
  • 柯西码
  • 定义:设{x1,x2,...,xn}和{y1,y2,...,yn}是有限域F中两个元素集,若对
  • (1)有xi+yi#0
  • (2)对
    有xi#xj和有yi#yj
  • 则称下图的矩阵为域F上的柯西矩阵。
  • 在有限域F上,设为单位矩阵,为柯西矩阵,若取生成矩阵G=(I|C),则称所得纠删码为柯西码。

理想情况下,基于RS码的每个编码组共有n个分组,其中有k个数据分组,其余为n-k个校验分组,这n个分组在网络中传输时,接收端只要收到任意k个分组就可以恢复出全部k个数据分组,这样的码又称为极大最小距离可分码(MDS)。由于实际传输信道的丢包率经常会发生变化,当某个时段内丢包率很大时,即使胫骨RS码的信道编码保护,仍然会存在分组丢失的可能。

  • 范德蒙码的纠删性能,其编码时间复杂度为O(n*n)
  • 柯西码,其编码时间复杂度O(n*n)
  • 由于柯西解码不用求大矩阵的逆,而且把乘法和除法运算分别转化为有限域上的加法和减法运算,可用异或运算实现,因此,柯西码运算度咋读低于范德蒙码。整体来讲RS码的缺点是编译码速度较慢,且不能避免数据的重传。
 

FEC之我见四的更多相关文章

  1. FEC之我见三

    继续上文讲解: 3) 标准的RTP头结构如下所示: 其中第一个字节中的x标志位是否扩展了RTP头,RTP协议允许用户自定义的扩展,扩展的字段紧挨上述RTP固定头.RTP扩展投中承载如下信息: 1).当 ...

  2. FEC之我见二

    前面简单说了一下FEC,以及它的配合使用的方法.下面我想详细说一下FEC算法: 曾经有位大神在帖子里这么写着:采用改进型的vandermonde矩阵RS算法.其优点算法运算复杂度更低且解决了利用矩阵构 ...

  3. FEC之我见一

    顾名思义,FEC前向纠错,根据收到的包进行计算获取丢掉的包,而和大神沟通的结果就是 纠错神髓:收到的媒体包+冗余包 >= 原始媒体包数据   直到满足 收到的媒体包+ 冗余包 >= 原始媒 ...

  4. 程序员"青春饭"问题之我见

      程序员"青春饭"问题之我见 声明:转载请注明出处.http://www.cnblogs.com/hzg1981/ 1. 问题描述 问题1: 什么是程序员? 在本文中程序员的定义 ...

  5. WPF DataBinding之我见

    原创,转载请注明出处:WPF DataBinding之我见 一.DataBinding介绍   数据绑定是在应用程序 UI 与业务逻辑之间建立连接的过程. 如果绑定具有正确设置并且数据提供正确通知,则 ...

  6. 【repost】如何学好编程 (精挑细选编程教程,帮助现在在校学生学好编程,让你门找到编程的方向)四个方法总有一个学好编程的方法适合你

    方法(一)编了这么久的程序,一直想找机会总结下其中的心得和方法,但回想我这段编程道路,又很难说清楚,如果按照我走过的所有路来说,显然是不可能的!当我看完了云风的<游戏之旅--编程感悟>和梁 ...

  7. DDD分层架构之我见

    DDD分层架构之我见 前面介绍了应用程序框架的一个重要组成部分——公共操作类,并提供了一个数据类型转换公共操作类作为示例进行演示.下面准备介绍应用程序框架的另一个重要组成部分,即体系架构支持.你不一定 ...

  8. 【读后感】读《漫谈“大学生的四个learn”》之后有感

    在看完<许纪霖教授在上海财经大学演讲——漫谈“大学生的四个Learn”>(下问简称<四l>)之后突然有点话想说.其实我对这篇文章有感的,所以想写这篇文章来说说看,我对四个lea ...

  9. 【金三银四跳槽季】Java工程师如何在1个月内做好面试准备?

    目录 一.写在前面 二.技术广度的快速准备 三.技术深度的快速准备 四.基础功底的快速准备 五.下篇预告 一.写在前面 春节长假转眼已过,即将迎来的是一年一度的金三银四跳槽季. 假如你准备在金三银四跳 ...

随机推荐

  1. mac地址绑定

    1.导入第三方类库: <?php /** * FILE_NAME : Macaddr.php * linux平台获取服务器mac地址 * @filesource */ class Macaddr ...

  2. web安全之SQL注入--第一章 课程介绍

    课程介绍1.什么是SQL注入?2.如何寻找SQL注入漏洞?3.如何进行sql注入攻击?4.如何预防sql注入5.课程总结

  3. I2C驱动详解

    I2C讲解: 在JZ2440开发板上,I2C是由两条数据线构成的SCL,SDA:SCL作为时钟总线,SDA作为数据总线:两条线上可挂载I2C设备,如:AT24C08 两条线连接ARM9 I2C控制器, ...

  4. 【python】-- web开发之HTML

    HTML HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,是一种制作万维网页面标准语言(标记).通俗的讲就是相当于定义统一的一套规则,大家都来遵守他,这样 ...

  5. 我的Android进阶之旅------>介绍一款集录制与剪辑为一体的屏幕GIF 动画制作工具 GifCam

    由于上一篇文章:我的Android进阶之旅------>Android之动画之Frame Animation实例 中展示的是Frame动画效果,但是之前我是将图片截取下来,不好说明确切的动画过程 ...

  6. CSS3中transform,transition和animation的简单介绍和使用方法演示样例

    transform是一个属性,本质跟width,height是一样的,加上transform也就是为类添加一个变换属性. transition是一个属性.它是用来控制过渡效果的,由于用transfor ...

  7. Smarty模板的逻辑运算符号稍微做一下总结

    对Smarty模板的逻辑运算符号稍微做一下总结,以备后用. eq    equal : 相等neq    not equal:不等于gt    greater than:大于lt    less th ...

  8. server.xml笔记

    本文总结自: http://www.importnew.com/26156.html 核心元素: 顶层元素: server service 连接器: connector 容器: engine > ...

  9. LINQ 学习路程 -- 开篇

    Enumerable: Queryable:

  10. neutron qos Quality of Service

    Quality of Service advanced service is designed as a service plugin. The service is decoupled from t ...