通信课设汉明码仿真

实验一 汉明码编解码实验

一、实验目的

1、掌握汉明码的编解码原理。 2、掌握汉明码的软件仿真方法。 3、掌握汉明码的硬件仿真方法。 4、掌握汉明码的硬件设计方法。

二、预习要求

1、掌握汉明码的编解码原理和方法。 2、熟悉matlab的应用和仿真方法。

3、熟悉Quatus的应用和FPGA的开发方法。

三、实验原理

1、信道编码的概念

通信信号是通过信道的传输,从信源传到信宿。由于信道有着不同的特征,这些特征将会影响传输中的通信信号,使信宿不能正确接受和识别信源的信号。因此需要采取各种方式抗信道干扰,信道编码就是一种广泛采用的抗信道干扰的方法。信道编码的思想是按照一定规律在待发送的信息码中加入一些冗余的信息,接收端根据这些冗余信息和信息码来恢复原来的信号。因此,信道编码的任务就是以最小的冗余代价来换取抗干扰性能最好的码。 2、汉明码的原理

汉明码是1949年提出的一种能纠正单个错误的线性分组码。实验中采用的含明码为(7,4)汉明码,其

3f(x)?x?x?1。 采用的本原多项式为

其生成矩阵为G=[1011000,1110100,1100010,0110001]。 监督矩阵为:H=[1001110,0100111,0011101]。

当输入编码序列为I时,输出编码序列R=IG,输出的编码序列为系统码。接收的待译码序列D=R+E,E为错误序列。错误图样S=DHT,根据错误图样S可以判决得到错误序列E。将错误序列和接收的待译码序列运算可以得到正确的译码输出。

设(7,4)汉明码中共有4个信息码,3个监督码。我们用a6a5a4a3a2a1a0表示这7个码元,用S1,S2,S3表示三个监督关系式中的校正子,则S1,S2,S3的值与错码的位置的对应关系规定如下表所示: (其中S1?a6?a5?a4?a2;S2?a6?a5?a3?a1;S3?a6?a4?a3?a0)

S1S2S3 001 010 100 011 错误位置 S1S2S3 101 110 111 000 错误位置 a0 a1 a2 a3 a4 a5 a6 无错 下表是汉明码编码信息位与监督位的对应表:

信息位 监督位 信息位 监督位 a6a5a4a3 0000 0001 0010 0011 0100 0101 0110 0111 a2a1a0 000 011 101 110 110 101 011 000 a6a5a4a3 1000 1001 1010 1011 1100 1101 1110 1111 a2a1a0 111 100 010 001 001 010 100 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); subplot(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:8 SNR=i-3;

sim('hammingsim'); biterr(i)=0; for j=1:length(err)

biterr(i)=biterr(i)+err(j,1); end;

biterr(i)=biterr(i)/length(err); end; figure(2);

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4