打印

请教纠错码:4bit数据增加12bit冗余,变成16bit

[复制链接]
2835|14
手机看帖
扫描二维码
随时随地手机跟帖
沙发
computer00| | 2008-5-13 16:15 | 只看该作者

这是最简单的办法了,效果也挺好的。

不要一次发4个同样的bit,应该是一段数据,重复发送4次。3次以上正确的就可以认为是正确了。

使用特权

评论回复
板凳
chunyang| | 2008-5-13 19:46 | 只看该作者

如果楼主是针对低速无线数据传输,那么纠错算法的意义不

    任何纠错编码本质上都是利用冗余实现,这直接造成了等效传输率的下降,而直接降低传输率根据香农定律可知信道的信噪比将上升,传输品质会明显变好,这尤其对低速无线信道非常明显,等传输效率下,引入纠错码和直接降低数据传输率的差别不大,进行过实际突发干扰传输分析你就会发现,错误往往不是位,而是一连串,这时高速下的纠错反而不如低速传输的效果好。如果非要引入纠错,无线数传中汉明码比前向、后向冗余纠错要有效,适用于极低速高可靠信道。前向、后向冗余纠错适合高速或有线信道的纠错,普通低速信道直接降速配合校验、重发机制是最实用的。
    不过曼彻斯特编码是非常必要的,切记引入。

使用特权

评论回复
地板
pheavecn|  楼主 | 2008-5-14 10:44 | 只看该作者

非常感谢老兄指点。

使用特权

评论回复
5
zhaojiude| | 2008-6-28 15:54 | 只看该作者

不太赞同chunyang老大的看法

"对低速无线数据传输,那么纠错算法的意义不大"--实际长期测试,用交织和卷积纠错算法后,通讯的可靠性增加不少;特别对数据包较长的无线通讯.(数据包长,并不意味着是低速无线传输.),chunyang老大的意思是传输的数据长度很短,则结论正确.

使用特权

评论回复
6
dld2| | 2008-6-28 16:09 | 只看该作者

这个冗余也太大了吧

使用特权

评论回复
7
chunyang| | 2008-6-29 00:16 | 只看该作者

这里的速度指空中传输率,和数据长度无关

    举个例子,大家不妨自己做个测试,假设空速是9600,纠错编码的效率为1/4即等效空速为2400,那么将9600bps的纠错信道与相同硬件结构的2400bps非纠错信道在各种条件下进行同时传输对比(可以引入不同长度的数据包比对,下面再引申),你就会发现实际效果差不多(差别小于1dB等效值),当然,不同硬件平台的测试结果对比会有不同,设计较佳的信道差别小于设计不良的信道。
    以上结果也有理论依据即香农定律和纠错算法的数字增益,在实际信道的香农定律线性区成立。多数1G以下窄带低速信道的香农线性区是在10Kb/S以下,2.4G信道则在几K至百K以内区间。在香农定律线性区以外即极低速和高速区段,纠错编码的效果明显,这是因为信道的误码率/空中速率曲线低于香农曲线之故。
    当然,zhaojiude的说法也是有一定道理的,重点是“交织”,只是交织的前提是足够长的数据包,而且交织越长越好(交织深度)。无交织的纠错算法即使其数字编码增益无限逼近理论值在香农区间的实际传输效果与降速区别不大,一旦算法不够精良,实际效果反而不如简单降速。在多数应用领域,即使很长的数据包也可以拆成短帧进行传输,所以做短距低速的通用产品时,引入纠错算法的意义不大,这时的测试对比应基于不考虑实际传输过程仅对比香农线性区内的纠错与非纠错的传输效果,对于大数据包,非纠错信道可将其拆解为短帧进行传输。
    以上论述并不是说纠错算法无意义,只是任何技术都有其适用范围,要根据实际应用的特点恰当选择,比如在单向高可靠信道中,因侦错重发机制无法应用,这时纠错算法只能是唯一选择,而且必须采用深度交织。在双向高速信道中,如果需要的传输速率已经超出器件的香农线性区并且带宽还有冗余时,这时最好加入纠错,不加白不加,至于是否需要深度交织的纠错算法,同样要根据应用决定。
    另外还要提一些常见的误解,有人在对比纠错算法的效果时是在同样空速下比较的,这样显然不公平,还有人是在基带上做对比,后者是隐藏很深的一个不公平,有心者应该会知道为什么,这算是留个“悬念”吧,想通了就会对常用无线通讯技术中的几个技术手段得出一个重要性的排序。

使用特权

评论回复
8
xwj| | 2008-6-29 00:41 | 只看该作者

不同意LS chunyang 的例子,那纯粹是想当然

使用特权

评论回复
9
chunyang| | 2008-6-29 00:49 | 只看该作者

请楼上详解

使用特权

评论回复
10
xwj| | 2008-6-29 01:05 | 只看该作者

因为除了符号率外,还有相关性啊

不要想的那么片面哦

使用特权

评论回复
11
chunyang| | 2008-6-29 13:06 | 只看该作者

那些当然是在考虑中的

引入纠错编码——提供了额外的数字增益,相当于灵敏度上升,但等效传输率下降
降低传输率——灵敏度直接上升
关键是这两个上升量的比较。

使用特权

评论回复
12
tangzzbb| | 2008-6-30 12:00 | 只看该作者

谈几句我对纠错的认识

从理论上讲,chunyang讲的是完全正确的,在通讯距离已经接近极限的情况下,采用纠错还是采用降速的方法效果都是一致的。
而在我们实际通讯中,都是离此还是有一定的裕量的。实际通讯中的干扰,绝大多数都来源于突发干扰。采用何种方法,是由存在的突发干挠决定的,如果干扰时间较长,则采用校验,出错重发的机理。如果多为短干挠,则采用交织加纠错的方法就可以了,纠错采用多少位,取决于你估计的干挠的影响。

使用特权

评论回复
13
zhaojiude| | 2008-7-1 21:54 | 只看该作者

同意楼上的,但在常用的低速率或2.4G频段

同意楼上的,但在常用的低速率(空口速率,如433)或2.4G频段,信道很脏,如何决定现在或将来干扰的类型呢?比如2400的空口速率,一次传输40BYTE,依据各位的认识或经验,在有重传4次的机制上,是否需要交织加纠错呢?我认为,chunyang的观点对随机干扰是正解,但对突发干扰无效.

使用特权

评论回复
14
dragon_hn| | 2008-7-2 03:08 | 只看该作者

根据我在CC2500上的经验

看实际情况.在CC2500上实验,大部分干扰比较长.如果出现数据包出错,绝大多数情况是连续几个数据包都会传输失败(CRC校验).此时把过多的精力放在纠错上还不如放在重发上.当然如果你处理器精力过剩另当别论.

使用特权

评论回复
15
php139| | 2008-7-6 13:34 | 只看该作者

没有一种纠错是万能的

  关于实际应用还得具体情况 就比如说重发这个问题 同步通讯中 重发就米用必须能纠错 如汉明码 or BCH 

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

88

主题

918

帖子

0

粉丝