3 个版本
使用旧的 Rust 2015
0.1.2 | 2018 年 3 月 29 日 |
---|---|
0.1.1 | 2018 年 1 月 7 日 |
0.1.0 | 2017 年 12 月 31 日 |
#13 在 #fec
在 code-rs 中使用
11KB
184 行
cai_cyclic – (17, 9, 5) 循环码的编码和解码
这个crate提供了用于编码和解码DMR和P25所使用的循环码的例程。
使用方法
可以通过cargo将该crate作为依赖项添加到Cargo.toml
[dependencies]
cai_cyclic = "0.1.0"
并在crate根目录下导入它
extern crate cai_cyclic;
lib.rs
:
编码和解码DMR和P25所使用的基(17, 9, 5)循环码
基码的生成多项式为
g(x) = x8 + x5 + x4 + x3 + 1
它可以检测多达4个错误或纠正多达2个错误。
DMR "正交余数" 码
DMR空中接口将此码扩展到(18, 9, 6),并在LSB中添加一个额外的奇偶校验位,然后通过删除两个MSB数据位将其缩短到(16, 7, 6)。额外的奇偶校验位使用掩码1010111
计算。
P25 "缩短循环" 码
P25空中接口通过删除MSB数据位将该码缩短到(16, 8, 5)。
参考文献
解码算法基于Lin和Costello的《错误控制编码》(1983)以及Roman的《编码与信息理论》(1992),第345页中描述的算法。
依赖项
~160KB