
差错控制编码仿真.doc
14页差差错错控制控制编码编码仿真仿真 一、实验目的掌握差错控制编码的实现技术以及仿真方法二、实验内容1、设计一个(7,4)汉明码编译码仿真模型2、观察经过并串转换后的(7,4)汉明码输出波形图三、实验原理1、、 线性分组码的基本概念:线性分组码的基本概念:线性分组码(n,k)中许用码字(组)为 2k 个定义线性分组码的加法为模 2 和,乘法为二进制乘法即1+1=0、1+0=1、0+1=1、0+0=0;1×1=1、1×0=0、0×0=0、0×1=0且码字与码字的运算在各个相应比特位上符合上述二进制加法运算规则线性分组码具有如下性质(n,k)的性质:1) 封闭性任意两个码组的和还是许用的码组2) 码的最小距离等于非零码的最小码重对于码组长度为 n、信息码元为 k 位、监督码元为 r=n-k 位的分组码,常记作(n,k)码,如果满足 2r-1≥n,则有可能构造出纠正一位或一位以上错误的线性码下面我们通过(7,4)分组码的例子来说明如何具体构造这种线性码设分组码(n,k)中,k = 4,为能纠正一位误码,要求 r≥3现取 r=3,则 n=k+r=7我们用 a0ala2a3a4a5a6 表示这 7 个码元,用 S1、S2、S3 表示由三个监督方程式计算得到的校正子,并假设三位S1、S2、S3 校正子码组与误码位置的对应关系如下表 12.2 所示。
7,4)码校正子与误码位置S1S2S3误码位置S1S2S3误码位置001a0101a4010a1110a5100a2111a6011a3000无错由表可知,当误码位置在 a2、a4、a5、a6 时,校正子 S1=1;否则 S1=0因此有 S1=a6⊕a5⊕a4⊕a2,同理有 S2=a6⊕a5⊕a3⊕a1和 S3=a6⊕a4⊕a3⊕a0在编码时 a6、a5、a4、a3 为信息码元,a2、a1、a0 为监督码元则监督码元可由以下监督方程唯一确定即 由上面方程可得到表 12.3 所示的 16 个许用码组在接收端收到每个码组后,计算出 S1、S2、S3,如果不全为 0,则表示存在错误,可以由表 12.2 确定错误位置并予以纠正例如收到码组为 0000011,可算出 S1S2S3=011,由表 12.2 可知在 a3 上有一误码通过观察可以看出,上述(7,4)码的最小码距为 dmin=3,它能纠正一个误码或检测两个误码如果超出纠错能力则反而会因“乱纠”出现新的误码7,4)许用码组信 息 位监 督 位信 息 位监 督 位a6a5a4a3a2a1a0a6a5a4a3a2a1a00000000100100011010001010110011100001110111011010101100010001001101010111100110111101111111100010001001010100111上述方法构造的能纠正单个误码的线性分组码又称为汉明码。
它具有以下一些特点:码长 n=2m-1,最小码距为 d=3,信息码长k=2n-m-1,纠错能力 t=1,监督码长 r=n-k=m这里 m 为≥2的正整数给定 m 后,就可构造出汉明码(n,k) 1、、 ((7,,4)汉明码的编译码仿真:)汉明码的编译码仿真:图 12.1 所示为(7,4)汉明码的编码器电路原理图,图 12.2 为对应的译码器电路原理图根据上述两图可构建如图 12.3 所示的仿真原理图该仿真原理图包含两个子系统,分别是(7,4)汉明码的编码器和译码器仿真时的信号源采用了一个 PROM,并由用户自定义数据内容,数据的输出由一个计数器来定时驱动,每隔一秒输出一个 4 位数据(PROM 的 8 位仅用了其中 4 位) ,由编码器子系统编码转换后成为 7位汉明码,经过并串转换后传输,其中的并串、串并转换电路使用了扩展通信库 2 中的时分复用合路器和分路器图符,该合路器和分路器最大为 16 位长度的时隙转换,这里定义为 7 位时隙此时由于输入输出数据的系统数据率不同,因此必须在子系统的输入端重新设置系统采样率,将系统设置为多速率系统因为原始 4 位数据的刷新率为1Hz,因此编码器的输入端可设置重采样率位 10Hz,时分复用合路器和分路器的数据帧周期设为 1 秒,时隙数位 7,则输出采样率为输入采样率的 7 倍,即 70Hz。
如果要加入噪声,则噪声信号源的采样率也应设为 70Hz图 1 是(7,4)汉明码编码器的仿真子系统原理图,图 2 是其对应的译码器的仿真子系统原理图图 3 为经过并串转换后的(7,4)汉明码输出波形图,这里仅设置了 4 秒时间长度的仿真,输出的 4 个数据为 0、1、3、4,对应的(7,4)汉明码码字为(0000000) 、 (0001011) 、(0011110) 、 (0100110) ,注意串行传输的次序是先低后高的次序(LSB) 图 1 (7,4)汉明码编码器的仿真子系统原理图图 2 (7,4)汉明码译码器的仿真子系统原理图当然,我们也可以不通过并串转换,直接并行传输、译码这样可以在 7位汉明码并行传输时人为对其中的一位进行干扰,并观察其纠错的情况通过仿真实验可以发现,出现两位以上错误时汉明码就不能正确纠错了因此,在要求对多位错误进行纠正的应用场合,就要使用别的编码方式了,如 BCH 码、RS 码、卷积码等 图 3 输入为 0、1、3、4 的(7,4)汉明码输出波形图 。
