汉明码编解码

上传人:飞*** 文档编号:32311171 上传时间:2018-02-10 格式:DOC 页数:9 大小:178KB
返回 下载 相关 举报
汉明码编解码_第1页
第1页 / 共9页
汉明码编解码_第2页
第2页 / 共9页
汉明码编解码_第3页
第3页 / 共9页
汉明码编解码_第4页
第4页 / 共9页
汉明码编解码_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《汉明码编解码》由会员分享,可在线阅读,更多相关《汉明码编解码(9页珍藏版)》请在金锄头文库上搜索。

1、实验一 汉明码编解码实验一、实验目的1、掌握汉明码的编解码原理。2、掌握汉明码的软件仿真方法。3、掌握汉明码的硬件仿真方法。4、掌握汉明码的硬件设计方法。二、预习要求1、掌握汉明码的编解码原理和方法。2、熟悉 matlab 的应用和仿真方法。3、熟悉 Quatus 的应用和 FPGA 的开发方法。三、实验原理 1、信道编码的概念通信信号是通过信道的传输,从信源传到信宿。由于信道有着不同的特征,这些特征将会影响传输中的通信信号,使信宿不能正确接受和识别信源的信号。因此需要采取各种方式抗信道干扰,信道编码就是一种广泛采用的抗信道干扰的方法。信道编码的思想是按照一定规律在待发送的信息码中加入一些冗余

2、的信息,接收端根据这些冗余信息和信息码来恢复原来的信号。因此,信道编码的任务就是以最小的冗余代价来换取抗干扰性能最好的码。2、汉明码的原理汉明码是 1949 年提出的一种能纠正单个错误的线性分组码。实验中采用的含明码为(7,4)汉明码,其采用的本原多项式为 1)(3xf。其生成矩阵为 G=1011000,1110100,1100010,0110001 。监督矩阵为:H=1001110,0100111,0011101。当输入编码序列为 I 时,输出编码序列 RIG,输出的编码序列为系统码。接收的待译码序列DR E,E 为错误序列。错误图样 SDH T,根据错误图样 S 可以判决得到错误序列 E。

3、将错误序列和接收的待译码序列运算可以得到正确的译码输出。设(7,4)汉明码中共有 4 个信息码,3 个监督码。我们用 表示这 7 个码元,用6543210aS1,S2,S3 表示三个监督关系式中的校正子,则 S1,S2,S3 的值与错码的位置的对应关系规定如下表所示:(其中 ; ; )65421Saa6531Sa6430SaS1S2S3 错误位置 S1S2S3 错误位置001 0a101 4a010 1110 5100 2111 6011 3a000 无错下表是汉明码编码信息位与监督位的对应表:信息位 监督位 信息位 监督位6543a210a6543a210a0000 000 1000 111

4、0001 011 1001 1000010 101 1010 0100011 110 1011 0010100 110 1100 0010101 101 1101 0100110 011 1110 1000111 000 1111 111四、汉明码的波形和误码率仿真1、建立仿真文件(hammingsim.mdl )AWGN Channel的参数SNR设置为SNR;Bernoulli Binary Generator的参数Sample Time设置为SampleTime。2、仿真程序clear all;SampleTime=1;SNR=1;sim(hammingsim);figure(1);su

5、bplot(2,2,1);stem(hammingin);title(编码输入序列);subplot(2,2,2);stem(hammingen);title(编码输出序列);subplot(2,2,3);stem(hammingene);title(解码输出序列);subplot(2,2,4);stem(hammingde);title(解码输出序列);clear all;SampleTime=1/1000;for i=1:8SNR=i-3;sim(hammingsim);biterr(i)=0;for j=1:length(err)biterr(i)=biterr(i)+err(j,1);

6、end;biterr(i)=biterr(i)/length(err);end;figure(2);semilogy(-2:5,biterr,*);hold on;semilogy(-2:5,biterr);xlabel(SNR(dB);ylabel(BER);grid on;3、仿真结果(1)编解码波形(2)白高斯噪声信道误码率仿真结果五、实验中的汉明码编解码程序1、汉明编码(1)端口设置cs_hanming:输入汉明编码使能位, 1电平有效;datain_hanming:输入 4 位编码输入位;dataout_hanming:输出 16 位编码输出位,低 7 位为编码输出位,高 9 位为

7、0。 (2)主程序if cs_hanming=1thendataout_hanming(6 downto 3)=datain_hanming(3 downto 0);dataout_hanming(0)=datain_hanming(3) xor datain_hanming(1) xor datain_hanming(0);dataout_hanming(1)=datain_hanming(3) xor datain_hanming(2) xor datain_hanming(0);dataout_hanming(2)=datain_hanming(3) xor datain_hanming

8、(2) xor datain_hanming(1);dataout_hanming(15 downto 7)=000000000;elsedataout_hanming(15 downto 0)=0000000000000000;end if;(3)输出结果如图所示:编码输入为 0001,编码输出为 0001011。2、汉明解码(1)端口设置 cs_hanming:输入汉明解码设置使能位, 1电平有效;datain_hanming:输入 7 位汉明编码位;error_hanming:输出错误标志位,当信道加错时,输出 1电平表示信道有错;dataout_hanming:输出 4 位汉明解码位。

9、(2)主要程序-产生错误图样sel(2)=(datain_hanming(6) xor datain_hanming(5) xor (datain_hanming(4) xor datain_hanming(2);sel(1)=(datain_hanming(6) xor datain_hanming(5) xor (datain_hanming(3) xor datain_hanming(1);sel(0)=(datain_hanming(6) xor datain_hanming(4) xor (datain_hanming(3) xor datain_hanming(0);-输出错误序列

10、with sel selectout38=0000000 when 000,0000001 when 001,0000010 when 010,0000100 when 100,0001000 when 011,0010000 when 101,0100000 when 110,1000000 when 111;-输出错误标志with sel selecterror_flag=0 when 000,1 when others;-纠错dataout_hanming(3)=out38(6) xor datain_hanming(6);dataout_hanming(2)=out38(5) xor

11、datain_hanming(5);dataout_hanming(1)=out38(4) xor datain_hanming(4);dataout_hanming(0)=out38(3) xor datain_hanming(3);error_hanming=error_flag;如图所示:解码输入为 0001011,解码输出为 0001。六、实验操作说明开关置 ON 表明输入 0,OFF 表明输入 1;LED 亮表明输出 1,暗表明输出 0。1、编码输入:由 SW101-8, SW101-7,SW101-6,SW101-5,SW101-4 ,SW101-3,SW101-2,SW101-1

12、可以输入由高位到低位的 8 位编码输入位。2、编码方式选择SW102-2,SW102-1,SW102-0 编码方式000 汉明码编码001 CRC 编码010 BCH 码编码011 卷积码编码100 Turbo 码编码101 扩展用110 扩展用111 汉明码交织编码3、信道选择(选择加错位置)SW103-6,SW103-5,SW103-4,SW103-3 加错位置0000 从 0 位置加错0001 从 1 位置加错0010 从 2 位置加错0011 从 3 位置加错 .1111 从 15 位置加错4、加错数目选择SW103-2,SW103-1 加错位置00 加 0 位错01 加 1 位错10

13、 加 2 位错11 加 3 位错从 SW103-6,SW103-5,SW103-4,SW103-3 指示的位置开始,每帧加错的位数有 SW103-2,SW103-1 的状态决定。5、编码输出设置D116,D115,D114,D113,D112 ,D111 ,D110,D109,D108,D107 ,D106,D105,D104,D103,D102,D101 为 16 位编码输出位。TP102 和 TP103 分别可以测量编码输出的帧和对应该帧的时钟信号。6、解码方式选择SW201-3,SW201-2,SW201-1 解码方式000 汉明码解码001 CRC 解码010 BCH 码解码011 卷

14、积码解码100 Turbo 码解码101 扩展用110 扩展用111 汉明码交织解码7、解码数据输出端:D208,D207,D206,D205,D204,D203,D202,D201。错误指示灯(当判断出数据有错码时就指示):D220。8、其他:七段码显示表明维特比译码的四路路径度量。七、实验内容1、用 matalab 中的 simulink 对(7,4)汉明码进行软件仿真,绘制(7,4)汉明码的误码率图,分析它的纠错能力和码率;2、在 Quatus 中分别对(7,4)汉明码的编码和解码程序进行仿真,分析(7,4)汉明码的编解码过程;3、在实验系统中,分别置 SW102-2,SW102-1 ,

15、SW102-0 为”000”和 SW201-3,SW201-2,SW201-1 为”000”,选择汉明码编解码方式。置 SW103-6,SW103-5 ,SW103-4,SW103-3,SW103-2 ,SW103-1 为”000000”,即不加任何错。4、由 SW101-8,SW101-7,SW101-6,SW101-5,SW101-4 ,SW101-3,SW101-2,SW101-1 任意输入 8位数据,观察并记录D116,D115,D114,D113,D112 ,D111 ,D110,D109,D108,D107 ,D106,D105,D104,D103 ,D102,D101 对应的编码

16、后的输出数据。其中 D115,D114,D113,D112,D111 ,D110,D109 对应于SW101-8,SW101-7,SW101-6,SW101-5 输入的四位数据的汉明码编码结果;D107,D106,D105,D104,D103 ,D102 ,D101 对应于 SW101-4,SW101-3,SW101-2 ,SW101-1 输入的四位数据的汉明码编码结果。D116 和 D108 为保持一帧 16 位的补零数据。5、用示波器分别测量 TP102 和 TP103,观察并编码输出的帧的帧格式。6、观察并记录解码数据输出端 D208,D207,D206,D205,D204,D203,D202,D201 的解码输出状态和错误指示灯(当判断出数据有错码时就指示)D220 的输出状

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 广告经营

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号