资源描述:
《通信报告汉明编译码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、汉明编译码实验1、通过实验,进一步了解差错控制的概念;2、通过纠错编解码实验,加深对纠错编解码理论的理解;3、加深对hanming码的产生、加错、纠错、译码的过程。二.实验仪器KJH5001通信原理综合实验系统一台2、20MHz双踪示波器一台3、JH900I型误码测试仪(或GZ9001型)一台三.实验原理差错控制编码的基本作法是:在发送端被传输的信息序列上附加一些监督码元,这些多余的码元与信息之间以某种确定的规则建立校验关系。接收端按照既定的规则检验信息码元与监督码元之间的关系,一旦传输过程中发牛差错,则信息码元与监督码元之间的校验关系将受到破坏,从而可以发现错误,乃至纠
2、正错误。通信原理综合实验系统屮的纠错码系统采用汉明码(7,4)。所谓汉明码是最小码距d=3纠错能力t=l能纠正单个错谋的线性分组码。它有以下特点:码长n=2m-1信息码位k=2n-m-1监督码位r=n~k这里ni位22的正整数,给定m后,既可构造出具体的汉明码(n,k)0用a6、a5、a4>a3代表4个信息元,a2、al>aO三个监督码元可表示为:a2=a6+a5+a4al=a6+a5+a3a0=a6+a4+a3汉明译码的方法,可以采用计算校正子,然后确定错误图样并加以纠正的方法。校正子可表示为:sl=a6+a5+a4+a2;s2=a6+a5+a3+als3=a6+a4+
3、a3+a0S的值与错码位置对应关系为:S错码位置S错码位置001a0101a4010al110a5100a2111a6011a3000无错表一图9.1和图9.2给岀汉明编码器和译码器电原理图。表9.1(7,4)汉明编码输入数据与监督码元生成表4位信息位细,a5,迦,a33位监督码元02,ai,ao4位信息位a6,a5,如,a33位监督码元a2,ai,a0000000010001010001Oil100111000101101010Oil001110110110000100111110001001011001101001011000111101000111010mi111表
4、9.1为(7,4)汉明编码输入数据与监督码元生成表。编码输出数据最先输出是%bit,其次是a5、a4,最后输出a()位。图9.2汉明译码器电原理图二.程序设计1、设计分析首先根据实验要求绘制出框图。如下:图1吋钟产生框图实验的输入吋钟为14.336MHz,编码输入的码元速率为32kbps,生成的4位m序列码元信息,再经编码器后变成7位汉明码发送,码元速率为32*7/4=56kbps。故需要将14.336MHz时钟进行448和256分别分频得到32kHz和56KHz时钟。图2汉明编译码过程框图2、程序清单声明部分modulett(clk,m_out,h_out,im_out
5、);inputelk;outputregm_out;outputregh_out;outputregim_out;regm_clk;regh_clk;reg[3:0]m_reg;reg[6:0]h_reg;reg[6:0]h_reg2;reg[3:0]m;reg[7:0]cntl;reg[7:0Jcnt2;reg[1:0]m_cnt;reg[2:0]h_cnt;reg[l:0]im_cnt;reg[2:0
6、ih_cnt;reg[6:0Jih_reg;reg[3:0]im_reg;reg[3:0]im_reg2;reg[2:0]si;reg[2:0]s2;reg[7:0]e
7、_cnt;(1)、时钟产生模块〃224分频,32kHz吋钟always@(posedgeelk)beginif(cntl==8*d223)beginm_clk<二〜m_clk;cntl<=8'd0;endelsecntl<=cntl+8'dl;end//128分频,56kHz时钟always@(posedgeelk)beginif(cnt2==8*dl27)beginh_clkv=~h_clk;cnt2<=8*d0;endelsecnt2<=cnt2+8'dl;end分析:木模块将原木的14.336MHz时钟,分别经过224和128分频产生32kHz时钟和56kHz时钟。
8、通过对时钟上升沿的计数来将寄存器值翻转实现分频。(2)、m序列产生模块always@(posedgem_clk)beginif(m二二4'b0000)m=4'bllll;elsebeginm[0]<=mf0]Ainf3];m[l]<=m[0];m[2]<=m[l];m[3]<=m[2];m_out<=m[3];endend分析:如图三所示是用四位移位寄存器来产生m序列,其中最高位a3由上周期最高位与最末位异或求得,M序列输出取最末位aO。四位移位寄存器根据移位寄存器的值如下:图三取末尾为m序列,则输出的m序列为00011110