汉明码性能分析_Lucy_1008_2013_
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汉明码编码前后在BPSK 和高斯噪声下的
性能比较
Lucy 2013.10.8
一.准备工作
1.弄清BPSK 调制的误码率性能,调制的每个步骤都要理解,并能够用matlab 程序实现。
2.了解汉明码的编解码原理 二.汉明码编解码的原理
为了纠正一位错码,在分组码中最少要加入的监督位数是我们一直考虑的问题。
从提高编码效率的思想出发进行研究,产生了汉明码。
汉明码是一种能够纠正一位错码且编码效率较高的线性分组码。
本程序的主要思想就是对未编码和汉明编码后的信号在BPSK 下且有高斯噪声影响下的误码率性能进行比较。
以(7,4)汉明码为例,其主要参数如下:
码长:21m
n =-,这里m=3
信息位:21m
k m =--
校验位:m n k =-,且3m ≥ 最小距离:min 03d d ==
其生成矩阵G (前四位为信息位,后三位为冗余位)如下:
系统码可分为消息部分和冗余部分两部分,根据生成矩阵,输出码字可按下式计算: 所以有 信息位 冗余位
1000110010001100101110001101G ⎡⎤⎢⎥⎢
⎥=⎢⎥
⎢⎥⎣⎦
3210321010001100100011(,,,)(,,,)00101110001101b a a a a G a a a a ⎡⎤⎢⎥
⎢
⎥=∙=∙⎢⎥⎢⎥⎣⎦
63
52
41
30
b a b a b a b a ====2310
1321
0210
b a a a b a a a b a a a =⊕⊕=⊕⊕=⊕⊕
由以上关系可以得到(7,4)汉明码的全部码字如下所示。
(编解码原理也可详见樊昌信版通信原理课本P335)
三.汉明码编码前后在BPSK和高斯噪声下的性能比较的matlab实现详细步骤1 .为了确保画出的图与理论接近,取信息码元数N=100000,汉明码组中监督码元数r=3,信息码元数数n=7;
2 .利用randint随机产生N行,(n-r)列的只有0和1元素的随机矩阵m,调用格式为randint(N,n-r,2),2表示产生的整数小于2;
3 .通过encode函数来对码元矩阵m进行汉明码编码产生了新的矩阵m2,调用格式为encode(m,n,n-r);
4 .通过调用pskmod函数来随机矩阵m进行bpsk调制产生新的矩阵m1,调用格式为pskmod(m,2),2表示是二进制的psk调制;
5 .同样通过调用pskmod函数实现对m2矩阵的bpsk调制,调用格式为pskmod (m2,2);
6 .假设接收端的输入信噪比SNRindB是从0到10db;
7 .将假设的输入信噪比从db换算为倍数;
8 .由于SNR=S/N,S是信号功率,N为噪声功率,信号的幅度假设为1,那么S=1/2,那么根据固定的SNR和S便可求出接收端叠加的噪声的功率N,对N进行sqrt 运算就可求出叠加上的噪声信号的幅度no1。
9 .利用no1*randn(N,n-r)和no1*randn(N,n)分别来产生N行n-r列和N行n列的高斯噪声;
10.将未汉明码编码的bpsk信号m1叠加上噪声信号得出trx1,将汉明码编码的bpsk信号(注意此时它是N行n列而非(n-r)列)叠加上噪声得出trx2;
11 .通过调用pskdemod函数对trx1和trx2分别进行解调得出解调后的信号y1和y2,调用格式为pskdemod(trx1,2);
12 .对解调出来的y2信号还要进行汉明码解码得到解码信号y3,调用decode函数,格式为decode(y2,n,n-r);
13 .利用biterr函数来计算出解码后的信号y1(未经汉明码编码)和y3(汉明码编解码)相对于初始码元序列m的错误码元数和误码率,调用格式为
[num,rat]=biterr(y1,m)
14:利用for语句重复上述步骤分别得出不同SNR下的误码率;
15:利用semilogy函数分别画出未经汉明码编码和汉明码编码两种情况的SNRindB与误码率rat的函数关系图。
四.举例说明性能分析过程
以(7,4)汉明码为例,程序中为了得到接近理论的曲线,取发送的码元个数N=100000,在这里为了方便举例,先取N=10。
第一步,产生10x4的信号码元序列m
m =
1 0 1 0
1 0 0 0
0 1 0 1
0 1 0 1
1 0 0 0
0 0 1 0
1 1 0 0
0 1 0 0
0 1 1 0
0 1 0 1
第二步,汉明码编码得到码元序列m2
m2 =
0 0 1 1 0 1 0
1 1 0 1 0 0 0
1 1 0 0 1 0 1
1 1 0 0 1 0 1
1 1 0 1 0 0 0
1 1 1 0 0 1 0
1 0 1 1 1 0 0
0 1 1 0 1 0 0
1 0 0 0 1 1 0
1 1 0 0 1 0 1
第三步,分别对汉明码编码前后的两个码元序列m和m2进行bpsk
调制得到m1(未编码的bpsk信号)和m3(编码后的bpsk信号)
m1 =
-1.0000 + 0.0000i 1.0000 -1.0000 + 0.0000i 1.0000 -1.0000 + 0.0000i 1.0000 1.0000 1.0000
1.0000 -1.0000 + 0.0000i 1.0000 -1.0000 + 0.0000i
1.0000 -1.0000 + 0.0000i 1.0000 -1.0000 + 0.0000i
-1.0000 + 0.0000i 1.0000 1.0000 1.0000
1.0000 1.0000 -1.0000 + 0.0000i 1.0000
-1.0000 + 0.0000i -1.0000 + 0.0000i 1.0000 1.0000
1.0000 -1.0000 + 0.0000i 1.0000 1.0000
1.0000 -1.0000 + 0.0000i -1.0000 + 0.0000i 1.0000
1.0000 -1.0000 + 0.0000i 1.0000 -1.0000 + 0.0000i
第四步,在不同的SNR条件下分析未进行汉明码编码和汉明码编码的误码率性能比较。
可以假设SNR从1到10,从而得出误码率随着SNR的变化。
五.软件仿真
1.仿真坏境
码型:汉明码
调制方式:BPSK
信道条件:高斯白噪声信道
2.仿真结果及分析
1234
5678910
10
10
10
10
10
10
Eb/N0
误比特率
未编码与汉明编码后BPSK 在高斯噪声下的性能
分析:1.未编码和编码后的信号序列都随着信噪比的增大,信号的误码率降低
2.在相同的条件下,经过汉明码编码后的信号的误码率性能得到了很大的改善,并且随着信噪比SNR 越大,改善的程度越大。