本项目提供了基于MATLAB和C语言实现的低密度奇偶校验(LDPC)编码及其解码终止算法的完整源代码,旨在研究通信系统中的纠错技术。
该存储库提供了LDPC码的C语言与MATLAB实现版本。有关LDPC代码的相关概述可以参考TomTomson和RüdigerUrbanke的书籍。
具体来说,这里提供的内容包括:
- WiFi(IEEE802.11n)中LDPC编码的设计方法;
- 通过反向替代编码技术来构造WiFi LDPC码;
- 迭代置信传播(BP)解码算法的应用(包含最小和运算);
- 在加性高斯白噪声(AWGN)信道下,BPSK、4-QAM、8-QAM(等效于QPSK、16-QAM以及64-QAM)的模拟实验。
需要注意的是,所提供的代码可能并不完全符合IEEE 802.11n规范的要求。例如,并未实现诸如打孔、填充和流解析等功能特性。
性能评估方面:
- 在AWGN信道中不同速率与调制方式下的LDPC码性能表现如上图所示。
- 上述结果基于LdpcC代码,且测试次数为50K次运行。
关于程序的执行效率比较,在单个macbookpro2015设备上的对比情况如下:
| 参数 | C语言版本(每秒迭代次数) | MATLAB版本(每秒迭代次数) | 速度提升倍数 |
| --- | --- | --- | --- |
| N=648,比率=1/2 | 315.5K次/s | 0.079次/s | 约3986倍 |
| N=1296,比率=1/2 | 73.1K次/s | 22.8次/s | 约3.2倍 |
| N=1944,比率=1/2 | 50.0K次/s | 17.5次/s | 约2.86倍 |
以上数据表明,在处理速度方面C语言版本明显优于MATLAB版本。