4 元素字母表上的纠错码
我需要开发一个纠错代码。
我的字母表是 {0,1,2,3}(4 个元素)
码字大小 n 将为 8 或 12
预期纠错能力 = 1 位
预期错误检测能力 = 2 位数字
我回顾了许多 ecc 技术(rs、ldpc 等),但仍然不知道从哪里开始以及如何做。
有人可以帮我建造它吗?
谢谢
I need to develop an error correcting code.
My alphabet is {0,1,2,3} (4 elements)
Codeword size n will be 8 or 12
expected error correction capability = 1 digit
expected error detection capability = 2 digit
I reviewed many ecc techniques (rs,ldpc,etc), yet still dont know where to start, and how to do.
Can anybody plz help me to construct it?
Thx
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您是否考虑过校验和?
Have you considered a checksum?
有很多方法可以实现这一点,但常见的方法是使用里德-所罗门码。
由于您需要检测所有两符号错误并纠正所有一符号错误,这意味着您将需要两个校验符号。
你说你有 2 位(4 元素)符号,这将你的代码长度限制为 3 个符号。
将其加起来,每个 12 位代码字就有 1 个数据符号和 2 个校验符号。
效率不太高吧?为了提高效率,您不妨将符号复制三次,并使用相同的码字大小以及检测和纠正能力。
为了更有效地使用 Reed-Solomon,您需要使用大符号。对于大多数其他类型的代码也是如此。
编辑:
您可能需要考虑广义的 BCH 代码,它没有里德-所罗门代码(BCH 代码的子集)那么多限制,但代价是更复杂的解码:
http://en.wikipedia.org/wiki/BCH_code
There are tons of ways to implement this, but a common approach would be to use a Reed-Solomon code.
Since you need to detect all two-symbol errors and correct all one-symbol errors, that means you will need two check symbols.
You say you have 2-bit (4-element) symbols, which limits your code length to 3 symbols.
Add that up and you have 1 data symbol and 2 check symbols for each 12-bit code word.
Not very efficient, eh? For that efficiency, you might as well just triplicate your symbol thrice, with the same codewords size and detective and corrective power.
To use Reed-Solomon more effectively, you'll need to use large symbols. This is true for most other types of codes as well.
EDIT:
You may want to consider generalized BCH codes which don't have quite as many limitations as Reed-Solomon codes (which are a subset of BCH codes), at the expense of more complex decoding:
http://en.wikipedia.org/wiki/BCH_code