# Cyclic_Code **Repository Path**: mc6g/Cyclic_Code ## Basic Information - **Project Name**: Cyclic_Code - **Description**: 循环码相关代码验证:包括编码,译码,性能评价,缩短码设计。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-01-12 - **Last Updated**: 2023-01-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Cyclic_Code #### 介绍 循环码相关代码验证:包括编码,译码,性能评价,缩短码设计。 #### 软件架构 使用Matlab仿真 #### 使用说明 ![输入图片说明](%E5%9B%BE%E7%89%870.png) (1)主函数:cyclic_main 实现了循环码设计的六个要求。 (2)计算非系统码的G、H矩阵函数:ns_matrix 输入为生成多项式g和校验多项式h,输出为非系统码矩阵G、H (3)计算系统码的G、H矩阵函数:s_matrix 输入为非系统码矩阵G,输出为系统码的G、H矩阵 (4)计算最小码距dmin和纠错能力t函数:distance 输入为为非系统码矩阵G,输出为小码距dmin和纠错能力t (5)加扰函数:scrambling 输入为要输入的信息码,以及随机产生的错误个数,输出为加扰后的码序列。 (6)梅吉特译码:cyclic_correct 输入为加扰的码序列,生成多项式,输出为去除干扰的码序列。 (7)非系统码译码函数:nsys_decode 输入为非系统码,非系统码码列表,k,输出为译码序列。 (8)通信系统函数:communication_sys 在编码和译码的基础上,加入BPSK调制解调和加性高斯白噪声,形成通信系统。 输入为输入信息码元,生成多项式,系统码的生成矩阵,非系统码生成矩阵,非系统码的码列表(主要为了减少重复运算),信噪比;输出为经过该通信系统后的信息码序列,和错误个数。 (9)绘制误码率函数:curve_BER 输入为信息码长度,生成多项式,系统码以及非系统码生成多项式矩阵,非系统码码列表,通过设定SNR的取值范围和步长,以及设定每个SNR值测试的次数,生成误码率曲线。 (10)缩短码函数:shortened_code 输入参数为生成多项式,和系统码的生成矩阵sG;输出为缩短码的生成矩阵和所有码字矩阵,实现了缩短码的编码,加扰,译码,纠错能力验证。 #### 仿真效果 **无码字错误** ![输入图片说明](%E5%9B%BE%E7%89%871.png) **1位码字错误** ![输入图片说明](%E5%9B%BE%E7%89%872.png) **2位码字错误** ![输入图片说明](%E5%9B%BE%E7%89%873.png) **缩短码与系统循环码纠错性能** ![输入图片说明](%E5%9B%BE%E7%89%874.png)