大家好,前面我们给大家介绍了无线通信中FEC编码原理(1)、(2)和(3),今天继续献上最后一篇,FEC编码原理及评价(4),关于无线通信FEC种类的评价,希望对大家有所帮助~
FEC编码原理及评价(3)请参考:http://blog.csdn.net/wiznet2012/article/details/7492146
2.无线通信中的FEC
FEC编码在无线通信中有很多应用。这里我们主要介绍两种情况。
(1)Reed-Solomon(RS)码
RS是Reed-Solomon的缩写,是一种非二进制的BCH码。对于任意一个正整数s,我们可以得到一段长度为n = q-1的对应的q-aryBCH码,其中q是一个素数的指数。当s = 1,q>2时,它就成为了一段RS码。
RS码由n个符号组成,每个符号含有m比特(根据不同应用m可以为任意长度)。这样,RS码不像其他Cyclic码那样只对单个比特操作,而是对于多个比特操作。RS码的一个很重要的特性就是脉冲纠错特性。其纠错能量为:t = (n-k)/2 这里n和k均与编码后的符号相关,而非比特。例如,一段(31,15)的RS码具有31个 5比特的编码符号,代表15个输入信息的符号或者75个输入信息的比特。这些能够改正8个独立的比特错误,或者四个长度等于或小于5比特的脉冲符号时长。
RS码的优点就是容错能力,所以很适合含有噪声和爆发性错误的无线通信。比如,当空间中的飞船向地球传回数字图片时,就是应用RS编码,并且RS编码已经扩展到卫星通信中。然而,RS编码是一个非常旧的概念,并且编码的延迟也非常明显。目前一种叫做龙卷风码(Tornado code)的新的编码方式正在广泛应用,它能够成功的解决软件基础环境中的延迟问题。
(2)Trellis编码调制
Trellis编码调制(Trellis Coded Modulation,TCM)是根据Shannon Hartley理论而设计的,能够同时进行编码和调制的方式。它是一种在一个连续数据流中每个符号应用奇偶校验的卷积码。下面的图片说明了一种简单地TCM算法。
Trellis code 示意图
即将要被编码的数据只能经过两条路径中的一条,所以这很像花园里的格子。如果在接收到的数据中有错误,然后应用这种调制方式,就能够根据错误数据两边的数据方便的重新计算出错误的数据。
这样,在每条信道中可以有更多的比特。TCM引入了附加的奇偶校验比特但是并不增加信号占用的带宽。
一个TCM的典型应用是空时格型编码(Space-Time Trellis Code,STTC),STTC是一种用在多天线无线通信中的空时编码。虽然它现在已经有了很广泛的应用,但是在编码是存在很复杂的状态并且错误很容易发生。
但是,TCM仍是一项在现代通信系统中很先进的技术。
发展前景
FEC的优势就是接收端可以自行纠正信号中的错误,而不用请求发送端重新发送数据,这样节省了很多时间。目前,基于不同设备的需求,不同形式的FEC码在通信系统中被广泛应用。这些不同编码的区别主要体现在效率上。如以上我们讨论过的,由于处理速度的限制,CRC就不太适合于低端CPU,但是BCH就更适合于这类设备。
而且,一些更先进的编码也已经投入使用。他们应用了更先进的算法来提高编码解码的效率使得有限的带宽能够得到充分的利用。可以肯定,FEC在将来肯定会更加高效。编码会更加标准化而且性能会提高。而且成本会降低。
总之,无论是目前还是将来,FEC对于通信系统的稳定性和高效都扮演了很重要的角色。
文/纪桐
转自 http://blog.linux.org.tw/~jserv/archives/001954.html日前結束一個消費性電子產品的開發工作,稍有心得,試著整理採取 Linux kernel 2.6 initramfs 機制以加速系統開發的經驗,同時也談論對 fast-booting 設計的重要性,順便解決某些像是「kinit/klibc 為何被提出?」等疑難雜症。進入主題前_swap linux initramfs
原文:http://www.jianshu.com/p/9dc9f41f0b29本文译自 Christopher Olah 的博文Recurrent Neural Networks人类并不是每时每刻都从一片空白的大脑开始他们的思考。在你阅读这篇文章时候,你都是基于自己已经拥有的对先前所见词的理解来推断当前词的真实含义。我们不会将所有的东西都全部丢弃,_chris olahrnnlstm博客
ESXi7.0 封装驱动过程和材料_esxi7 网卡驱动
作者:赵汀阳 来源:《读书》04年第10期 看完陆川的新现实主义风格新片《可可西里》,美国哲学名家罗蒂(Rorty)认为这是他近年来看到的最好片子,他说他为其充满力量感的真实所震动。真实并且“有力量”,这 一点很重要,它触及这个时代的一个美学观点问题。近年来人们似乎特别喜欢拍摄“真实的”记录片或者记录片风格的电影,如此喜欢以至于无条件地崇拜“真实”而忘记了真实是需要力量的。太
作者:zccst(转)判断对象是否为空?[code="js"]if (typeof myObj == "undefined") { var myObj = { }; }//这是目前使用最广泛的判断javascript对象是否存在的方法。[/code][size=large]一、基本数据类型[/size]js一共有六种数据类型:五种简单数据类型..._js中判断data数据个数
1 /// <summary>自定义包含指定字符的base64工具</summary> 2 internal static class Base64Helper 3 { 4 static readonly string base64Table = "ABCDEFGHIJKLMNOPQRSTUVWXY..._base64去除等号
查询语句中select from where group by having order by的执行顺序1.查询中用到的关键词主要包含六个,并且他们的顺序依次为select–from–where–group by–having–order by其中select和from是必须的,其他关键词是可选的,这六个关键词的执行顺序与sql语句的书写顺序并不是一样的,而是按照下面的顺序来执行from–where–group by–having–select–order by,from:需要从哪个数据表检索数
注意事项:1在训练的过重中喜欢将网络模型单独放在一个model.py文件里面,在训练脚本进行训练的时候只需要导入这个.py文件就可以了。除此之外,在模型脚本里面可以进行一定程度上的运行,防止网络出现问题。2.训练套路:下载数据集----》加载数据集------》定义网络模型-----》定义损失函数-----》定义学习率-------》定义优化器(可以搞个tensorboard)------>在epoch里面进行训练3.每进行100次迭代的时候可以打印下损失函数值,并且...
1. 简介 Xposed框架的原理是替换安卓系统/System/bin目录下的文件,从而实现对系统某些功能的替换,进而给予基于 Xposed 框架开发的App更多权限。下图是作者rovo89 在github上Xposed工程目录: 从上图可以看出Xposed共有五个部分: Xposed:Xposed的C++部分,主要是用来替换/system/bin/app_process..._xposed模块是什么
一,参数绑定形式(1)最简单的拼接:String hql="select user from User as user where user.id="+3; Query query=session.createQuery(hql);(2)占位符传参:String hql="select user from User as user where user.id=?"; Q..._hibernate query setparameter
HDU4372考虑最高的点,他左边有x-1个极高点,右边有y-1个极高点一个极高点和下一个极高点(不包含下一个)这一部分可以看做一个圆排列(不是排列因为极高点的位置固定),那么就是要求n−1n-1n−1个数分成x+y−2x+y-2x+y−2个圆排列的方案数,即sn−1,x+y−2s_{n-1,x+y-2}sn−1,x+y−2然后考虑这些圆排列要选x-1个放到最高点左边,这里只用选出来就行了...
第4章-17 水仙花数分析题目解法旧式,自高位往低位计算改进分析旧式想法:从大位开始计算,先算出最高位。每次需要迭代更新,减去高位数之后,算低一位的数。博主封心的想法:每次取mod10的结果,再除以10取整数部分,降低位次。题目水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。 例如:153=1×1×1+5×5×5+3×3×3。本题要求编写程序,计算所有N位水仙花数。输入格式:输入在一行中给出一个正整数N(3≤N≤5)输出格式:按递增顺序输出所有N位水仙_第4章-17 水仙花数