北京交通大学通信原理实验汉明编码实验报告.docx
《北京交通大学通信原理实验汉明编码实验报告.docx》由会员分享,可在线阅读,更多相关《北京交通大学通信原理实验汉明编码实验报告.docx(16页珍藏版)》请在冰豆网上搜索。
北京交通大学通信原理实验汉明编码实验报告
实验十五汉明编码和译码实验
一、实验前的准备
(1)预习本实验的相关内容。
(2)熟悉实验指导书附录B和附录C中实验箱面板分布及测试孔位置相关模块的跳线状态。
(3)实验前重点熟悉的内容:
汉明码的编码规则、汉明码的纠错能力。
(4)思考题。
1)什么是汉明码?
它能纠几位错码?
它有什么特点?
汉明码是一种能够纠正一位错码且编码效率较高的线性分组码。
它可以纠正一位错码。
2)本实验中汉明编码器的输入数据速率为32kbps,输出数据速率为多少?
为汉明编码器的输入信号选择m序列信号时,跳线开关SWCO1、KCO1如何汉明编码器的输入信号选择来自ADPCM模块的ADPCM信号时,跳线开关如何设置?
汉明编码器的输入数据速率为32kbps,输出数据率为56kbps。
m序列时,选择ADPCM码字由工作方式选择开关SWCO1中的ADPCM状态决定,当处于ADPCM状态时(插入跳线器)。
二、实验目的
(1)掌握汉明码编译码原理。
(2)掌握汉明码纠错检错原理。
(3)通过纠错编解码实验,加深对纠错编解码理论的理解。
三、实验仪器
(1)ZH5001A通信原理综合实验系统
(2)20MHz双踪示波器
四、基本原理
差错控制编码的基本原理是:
由发送端的信道编码器在信息码元序列中增加一些监督码元。
这冗余的码元与信息之间以某种确定的规则建立校验关系,使接收端可以利用这种关系由信道译码器来发现或纠正可能存在的错码。
不同的编码方法有不同的检错或纠错能力。
为了纠正位错码,在分组码中最少要加入多少监督位才可行呢?
编码效率能否提高呢?
从这种思想出发进行研究,便导致了汉明码的诞生。
汉明码是一种能够纠正一位错码且编码效率较高的线性分组码。
下面介绍汉明码的编码原理。
一般来说,若码长为
,信息位数为
,记作
码,则监督位数
,如果希望用
个监督位构造出
个监督关系式来指示一位错码的
种可能位置,则要求
通信原理综合实验系统中的纠错码系统采用(7,4)汉明码。
用
表示这7个码元,用
表小3个监督关系式中的校正子,则
的值与码元间构成偶数监督关系:
在发送端编码时,信息位
和
的值决定于输入信号,因此它们是随机的。
监督位
和
应根据信息位的取值按监督关系来确定,即监督位应使以上=式中
的值为零(表示变成的码组中应无错码),即
上式经移项运算,解出监督位
给定信息位后,可直接按上式算出监督位,其结果如下表
信息位
监督位
信息位
监督位
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
1110
100
0111
010
1111
111
接收端收到每个码组后,先按式(12-2)~式(12-4)计算出
,再按上表判断错码情况。
例如,若接收码组为0000011,按式(12-2)~式(12-4)计算可得
。
由于
等于011,故可知在
位有一错码。
按上述方法构造的码称为汉明码。
(7,4)汉明码的最小码距d=3,因此,这种码能纠正一个错码或检测两个错码。
汉明码有以下特点:
码长
最小码距d=3
信息码位
纠错能力t=1
监督码位
这里,m为
的正整数,给定m后,即可构造出具体的汉明码(n,k)。
汉明码的编码器和译码器电路如图所示。
汉明编码模块实验电路工作原理描述如下。
1.输入数据
汉明编码输入数据可以来自ADPCM1模块的ADPCM码字,或来自同步数据端口数据、异步端口数据、CVSD编码数据、m序列。
选择ADPCM码字由工作方式选择开关SWCO1中的ADPCM状态决定,当处于ADPCM状态时(插入跳线器),汉明编码器对ADPCM信号编码否则处于非ADPCM状态时(拔除跳线器),输入编码数据来自开关KCO1所设置的位置,分别为同步数据端口数据、异步端口数据、CVSD编码、m序列。
2.m序列发生器
m序列用于测试汉明编码规则,输出数据信号与开关SWCO1位置如下表。
3.编码使能开关
此开关应与接收端汉明译码器使能开关同步使用,该开关处于使能状态(H-EN短路器插入),汉明码编码器工作;否则汉明码编码器不工作。
需要注意:
汉明码编码器不工作时,ADPCM和CVSD话音数据无法通过调制解调信道通话,这是因为编码速率与信道速率不匹配。
4.错码产生
错码产生专门设计用于测量汉明译码器的纠错和检错性能。
输出错码与开关SWCO1位置如下表所示。
错码可以用示波器从错码指示端口TPC03监测。
汉明编码模块各测试点定义如下。
(1)TPCO1:
输入数据。
(2)TPC02:
输入时钟。
(3)TPC03:
错码指示(无加错时,该点为低电平)。
(4)TPC04:
编码模块输出时钟(56kHz/BPSK/DBPSK)。
(5)TPC05:
编码模块输出数据(56kbtps/BPSK/DBPSK)。
汉明编码模块电路功能组成框图见图12-2。
汉明译码模块实验电路工作原理描述如下。
1.输入信号选择开关
开关KWO1、KW02用于选择输入信号和时钟是来自解调器信道或直接来自汉明编码模块。
当KWO1、KW02设置在1-2位置(CH:
左端),则输入信号来自信道开关KWO1、KW02设置在2_3位置(LOOP:
右端)则输入信号来自汉明编码模块。
2.汉明译码器
主要由串/并变换器、校正子生成器、3/8译码器和纠错电路构成。
该电路专门由一个CPLD(EPM7128)实现。
3.汉明译码使能开关
SW03中H-EN与发端编码使能开关同步使用。
汉明译码模块各测试点定义如下。
TPWO1;输入时钟(56kHz)。
TPW02:
输入数据(56kbps)。
TPW03:
检测错码指示。
TPW04:
输出时钟。
TPW05:
CVSD数据输出。
TPW06:
同步数据输出。
TPW07:
m序列输出。
TPW08:
异步数据输出。
汉明译码模块电路功能组成框图见图12-3。
五、实验内容
(一)准备工作
(1)首先通过菜单将调制方式设置为BPSK或DBPSK方式;将汉明编码模块内工作方式选择开关SWCO1中:
编码使能开关插入(HEN),ADPCM数据断开(ADPCM);加错开关EMODO、EMOD1均拔出接入;将输入数据选择开关KCO1设置在m序列(DTM)位置,设置m序列方式为00(MSEL2和MSEL1拔下),此时m序列输出为1/0码。
(2)将汉明译码模块内输入信号和时钟选择开关KWO1、KW02设置在LOOP位置(右端),输入信号直接来自汉明编码模块(不通过调制、信道、解调);将译码器使能开关KW03设置在工作位置ON(左端)。
(二)编码规则验证
(1)用示波器同时观测编码输入信号TPCO1波形和编码输出波形TPC05,观测时以TPCO1同步,观测是否符合汉明编码规则(参见表12-1)。
注意此时输入、输出数据速率不同,输入数据速率为32kbps,输出数据速率为56kbps。
上方为TPC01波形,下方为TPC05波形:
可见上方数据为:
…1100……
TPC05编码波形数据为:
……1100010……
对比上面编码表,可以看出,是正确的。
(2)设置m序列方式为10(MSEL2插入、MSEL1拔下),此时m序列输出为1l/00码(参见表12-1)。
用示波器同时观测编码输入信号TPCO1波形和编码输出波形TPC05,观测时以TPCO1同步,观测是否符合汉明编码规则。
上方为TPC01波形,下方为TPC05波形:
可见上方数据为:
…1100……
TPC05编码波形数据为:
……1100010……
对比上面编码表,可以看出,是正确的。
(三)译码数据输出量
(1)设置m序列方式为11(MSEL2,MSEL1均插入用示波器同时观测汉明编码模块的编码输入信号TPCO1波形和汉明译码模块译码输出m序列波形TPW07,观测时以TPCO1同步。
测量译码输出数据与发端信号是否保持一致。
注意:
输出波形与输入波形之间有时延。
记录输出波形和输入波形。
上方为TPC01波形,下方为TPW07波形:
可见上方数据为:
……11001101……
TPW07解码输出波形数据为:
……11111111……
可以看出,两者之间存在6个码元的延迟。
(四)译码同步过程观测
将汉明编码模块工作方式选择开关SWCO1的编码使能开关插入(H_EN);ADPCM数据有效(ADPCM)将汉明译码模块的输入信号和时钟选择开关KWO1、KW02设置在23位置(右端),输入信号直接来自汉明编码模块。
(1)用示波器检测汉明译码模块内错码检测指示输出波形TPW03。
将汉明编码模块内工作方式选择开关SWCO1的编码使能开关断开(H_EN,使汉明译码模块失步,观测TPW03变化;将编码使能开关插入(H_EN),观测汉明译码的同步过程,记录测量结果。
可以看到,失步后TPW03输出指示一连串的错误。
当重新插上H_EN后,TPW03输出为零,指示没有错误。
(五)发端加错信号和汉明译码检错能力观测
用示波器同时测量汉明编码模块内加错指示TPC03和汉明译码模块内错码检测指示输出波形TPW03的波形,观测时以TPC03同步。
(1)将汉明编码模块工作方式选择开关SWCO1的加错开关E_MOD0、E_MOD1均拔出,此时无错码,记录结果。
上方为TPC03波形,下方为TPW03波形:
可见无错码时只有两个低电平输出。
(2)将汉明编码模块工作方式选择开关SWCO1的加错开关E_MOD0接入、产生1位错码,定性观测明译码能否检测出错码,记录结果。
上方为TPC03波形,下方为TPW03波形:
可见一位错码时发端和收端都有错误提示输出。
(3)将汉明编码模块工作方式选择开关SWCO1的加错开关E_MOD1,产生2位错码,定性观测明译码能否检测出错码,记录结果。
上方为TPC03波形,下方为TPW03波形:
可见两位错码时发端和收端都有错误提示输出。
但电平宽度不变。
(4)将汉明编码模块工作方式选择开关SWCO1的加错开关E_MOD0、E_MOD1都插入产生更多错码,定性观测明译码能否检测出错码和失步,记录结果。
上方为TPC03波形,下方为TPW03波形:
可见两位错码时发端和收端都有错误提示输出。
但电平宽度不变。
但是这时的错误提示实际上是错误的。
(六)汉明译码纠错性能量
汉明编码的输入信号设置m序列方式为11(MSEL2,MSEL1均插入);用示波器同时观测汉明编码模块的输入信号TPCO1波形和汉明译码模块译码输出m序列波形TPW07,观测时以TPCO1同步。
(1)将汉明编码模块工作方式选择开关SWCO1的加错开关E_MODO、E_MOD1均拔出,此时无错码,记录结果。
上方为TPC01波形,下方为TPW07波形:
可见没有错码时收端可以正常工作,解码正常。
(2)将汉明编码模块工作方式选择开关SWCO1的加错开关E_MODO接入,产生1位错码,定性观测汉明编译码系统能否纠1位错码,记录结果。
上方为TPC01波形,下方为TPW07波形:
可见一位错码时收端可以将错码纠正,输出任然正常。
(3)将汉明编码模块工作方式选择开关SWCO1的加错开关EMOD1接入,产生2位错码,定性观测汉明编译码系统能否纠2位错码,记录结果。
上方为TPC01波形,下方为TPW07波形:
可见两位错码时收端有部分情况可以正常解码,但是会有较大的错误,因此解码输出端出现了严重的“拖影”。
六、实验结论分析
本次实验验证了汉明编码的原理,观察了编码的过程。
此外,我们还试验了汉明码的纠错性能,即汉明码可以纠正1位错码,可以检测出两位错码。
得到了理论与实践一致的结论。
此外,由于教材上面编码表有误,我重新按照实验箱上面的规则改正了原理部分中的推导过程。
就此说明。
七、思考题
(2)汉明编码器模块的使能开关、译码器模块的使能开关(H_EN断路器)起什么作用?
汉明编码器模块的使能开关是使能编码模块的汉明编码功能。
译码器模块是使能译码器模块的汉明译码功能。