一、实验原理和电路说明
差错控制编码的基本作法是:在发送端被传输的信息序列上附加一些监督码元,这些多余的码元与信息之间以某种确定的规则建立校验关系。接收端按照既定的规则检验信息码元与监督码元之间的关系,一旦传输过程中发生差错,则信息码元与监督码元之间的校验关系将受到破坏,从而可以发现错误,乃至纠正错误。 通信原理综合实验系统中的纠错码系统采用汉明码(7,4)。所谓汉明码是能纠正单个错误的线性分组码。它有以下特点:
码长 n=2 m-1 最小码距d=3
信息码位 k=2 m鸡解剖图 -m-1 纠错能力t=1
监督码位 r=n-k
这里m位≥2的正整数,给定m后,既可构造出具体的汉明码(n,k)。
汉明码的监督矩阵有n列m行,它的n列分别由除了全0之外的m位码组构成,每个码组只在某列中出现一次。系统中的监督矩阵如下图所示:
其相应的生成矩阵为:
汉明译码的方法,可以采用计算校正子,然后确定错误图样并加以纠正的方法。
图1和图2给出汉明编码器和译码器电原理图。
表1 (7,4)汉明编码输入数据与监督码元生成表
4位信息位 a6, a5, a4, a3 | 3位监督码元 a2, a1, a0 | 4位信息位 a6, a5, a4, a3 | 江海互动论坛3位监督码元 危险化学品安全管理条例2011a2, a过冷水1, a0 |
0000 | 000 | 1000 | 101 |
0001 | 011 | 1001 | 110 |
0010 | 110 | 1010 | 011 |
0011 | 101 | 1011 | 000 |
0100 | 111 | 1100 | 010 |
0101 | 100 | 1101 | 001 |
0110 | 001 爱立信r380 | 1110 | 100 |
0111 | 010 | 1111 | 111 |
| | | |
表1为(7,4)汉明编码输入数据与监督码元生成表。编码输出数据最先输出是a6bit,其次是a5、a4……,最后输出a0位。
二、实验仪器
1、 ZH5001通信原理综合实验系统 一台
2、 20MHz双踪示波器 一台
3、 菱形ZH9001型误码测试仪(或GZ9001型) 一台
4、 频谱测量仪 一台
三、实验内容
1. 编码规则验证
(1) 用示波器同时观测编码输入信号TPC01波形和编码输出波形TPC05,观测时以TPC01同步,观测是否符合汉明编码规则(参见表4.4.1所示)。注意此时输入、输出数据速率不同,输入数据速率为32Kbps,输出数据速率为56Kbps。 (2) 设置m序列方式为10:(M_SEL2插入、M_SEL1拔下),此时m序列输出为11/00
码(参见表4.4.2所示)。用示波器同时观测编码输入信号TPC01波形和编码输出波形TPC05,观测时以TPC01同步,观测是否符合汉明编码规则。
(3) 设置其它m序列方式,重复上述测量步骤。
注:其它两种m序列周期因非4bit的倍数,观测时要仔细调整示波器才能观测。
2. 译码数据输出测量
(1) 用示波器同时观测汉明编码输入TPC01波形和汉明译码输出m序列波形TPW07,观测时以TPC01同步。测量译码输出数据与发端信号是否保持一致。
(2) 设置不同的m序列方式,重复上述实验,验证汉明编译码的正确性。
问题与思考:(KO01置于左边,K501置于右边)当m序列产生输出0/1码或00/11码或7位m序列时(都是短周期数据),观测编译码信号是否一致。然后保持设置不变,将实验箱关机后再开机。有可能发生译码输出与编码数据不一致。如不一致,可将SWC01中的M_SEL1和M_SEL2两个开关都插入(输入测试信号为15位的长m序列),就可正确译码。
然后,再拔去M-SEL2, 改变输入为7位短m序列,仍能正确译码;或者将KC01中的选择开关从m序列改到CVSD一段时间(加入一段随机码),然后再改回到m序列也可正确译码。这是为什么?(参阅表3.4.1进行分析)在实际通信中如何解决这问题? 3. 译码同步过程观测
将汉明编码模块工作方式选择开关SWC01的编码使能开关插入(H_EN);ADPCM数据有效(ADPCM)。将汉明译码模块的输入信号和时钟选择开关KW01、KW02设置在2_3位置(右端),输入信号直接来自汉明编码模块。 (1) 用示波器检测汉明译码模块内错码检测指示输出波形TPW03。将汉明编码模块内工作方式选择开关SWC01的编码使能开关断开(H_EN),使汉明译码模块失步,观测TPW03变化;将编码使能开关插入(H_EN),观测汉明译码的同步过程,记录测量结果。
(2) 将ADPCM数据换为m序列,重复上述测量步骤,分析测量结果。
4. 发端加错信号观测
将汉明编码模块工作方式选择开关SWC01的编码使能开关插入(H_EN);ADPCM数据有效(ADPCM)。将汉明译码模块内输入信号和时钟选择开关KW01、KW02设置在LOOP位置(右端),输入信号直接来自汉明编码模块;将译码器使能开关KW03设置在工作位置0N(左端)。
(1) 用示波器同时测量汉明编码模块内加错指示TPC03和汉明译码模块内错码检测指示输出波形TPW03的波形,观测时以TPC03同步。此时无错码。
(2) 将汉明编码模块工作方式选择开关SWC01的加错开关E_MOD0接入,产生1位错码,定性观测明译码能否检测出错码,记录结果。
(3) 将汉明编码模块工作方式选择开关SWC01的加错开关E_MOD1接入,产生2位错码,定性观测明译码能否检测出错码,记录结果。
(4) 将汉明编码模块工作方式选择开关SWC01的加错开关E_MOD0、E_MOD1都插入,产生更多错码,定性观测明译码能否检测出错码和失步,记录结果。
5. 收端错码检测能力观测和错码纠错性能测量
首先通过菜单将调制方式设置为BPSK(或DBPSK)方式;将汉明编码模块工作方式选择开关SWC01的编码使能开关插入(H_EN),ADPCM数据断开(ADPCM);将输入数据选择开关KC01设置在同步数据输入DT-SYS (最左端)。将汉明译码模块内输入信号和时钟选择开关KW01、KW02设置在LOOP位置(右端);将译码器使能开关KW03设置在工作位置0N(左端)。将误码仪RS422端口通过转换电缆与实验箱同步模块的JH02插座连接。
(1) 加电后将误码仪模式设置“连续”,接口时钟选择设置“外时钟”,接口类型选择“RS422”方式。按“测试”键进入测试,测量误码率。
(2) 将汉明编码模块工作方式选择开关SWC01的加错开关E_MOD0接入,产生1位错码,测量误码率,看汉明编译码系统能否纠1位错码,记录结果。
(3) 将汉明编码模块工作方式选择开关SWC01的加错开关E_MOD1接入,产生2位错码,测量误码率,看汉明编译码系统能否纠2位错码,记录结果。
(4) 将汉明编码模块工作方式选择开关SWC01的加错开关E_MOD0、E_MOD1都插入,产生更多错码,测量误码率,记录结果。
四、实验报告
1、画出输入为0/1码汉明编码输出波形
00/11码汉明编码输出波形
1110010m序列码汉明编码输出波形
2、分析讨论汉明编码系统的性能及应用的局限性。
答:汉明码的应用主要在数据传送方面,检测所有一位和双位差错并纠正所有一位差错当计算机存储或移动数据时,可能会产生数据位错误,这时可以利用汉明码来检测并纠错,简单的说,汉明码是一个错误校验码码集。
在实际应用中汉明编码常常存在各种突发干扰,使连续多位数据发生差错。为了纠正3个以上的差错,就要加大码距,使代码冗余度大大增加,通信效率下降。通过对汉明码重新组织排列,在不增加代码冗余的前提下,提高汉明码抗突发干扰的能力,为汉明码在实际中的应用提供新的思路