通信原理课程设计--汉明码的编码和译码

兰州理工大学

课 程 设 计 报 告

课程名称: 通信系统课程设计 设计名称: 汉明码的编码和译码 姓 名: 学 号: 班 级: 指导教师: 起止日期: 2014.4.7-2014.4.9

课 程 设 计 任 务 书

学生班级: 学生姓名: 学号:

设计名称: 汉明码的编译和译码 起止日期: 2012.6.11-2012.6.25 指导教师:

课 程 设 计 学 生 日 志

课 程 设 计 评 语 表

汉明码的编码和译码

一、 设计目的和意义

1. 学习汉明码的编码和译码;

2. 学习Matlab的相关使用,学会用Malab解决实际问题; 3. 培养自己全面、独立思考的能力。

二、 设计原理

2.1汉明码编码原理

一般来说,若汉明码长为n,信息位数为k,则监督位数r=n-k。若希望用r个监督位构造出r个监督关系式来指示一位错码的n种可能位置,则要求

2r1n或21kr1 (1)

下面以(7,4)汉明码为例说明原理:

设汉明码(n,k)中k=4,为了纠正一位错码,由式(1)可知,要求监督位数r≥3。若取r=3,则n=k+r=7。我们用a6a5a4a3a2a1a0来表示这7个码元,用监督关系式中的校正子,则

r

s1s2s3的值表示3个

s1s2s3的值与错误码元位置的对应关系可以规定如表1所列。

表1 校正子和错码位置的关系

则由表1可得监督关系式:

s1a6a5a4 a 2 2

s2a6a5a3 a3 s3a6a4a3a0 4

在发送端编码时,信息位a6a5a4a3的值决定于输入信号,因此它们是随机的。监督

位a2、a1、a0应根据信息位的取值按监督关系来确定,即监督位应使式(2)~式(4)中s1、

s2、s3的值为0(表示编成的码组中应无错码)



a6a5a4a20a6a5a3a10a6

a4a3a00

(5)

式(5)经过移项运算,接触监督位



a2a6a5a4

a1a6a5a3a0

a6a4a

3 (6)

式(5)其等价形式为:

a6

1110100a5

a401101010011001a301a20a

1a0 (7)

式(6)还可以简记为

HAT0T或AHT

0 (8)

其中

1110100

H1101010011001

1 Aa6a5a4a3a2a1

 a 111000P1101I1

r01

0

1011

00

1

所以有

HPIr

(9)

式(6)等价于

a2a1a0111aa110

6

a5a4

3

101a6a5011

其中Q为P的转置,即

00

0

a4

a3Q

(10 0

)

QPT (11)

式(10)表示,信息位给定后,用信息位的行矩阵乘矩阵Q就产生出监督位。 我们将Q的左边加上一个k×k阶单位方阵,就构成一个矩阵G

10kGIQ0

0

101

1 (12)

G称为生成矩阵,因为由它可以产生整个码组,即有

[***********]01

a6a5a4a3a2a1a0a6a5a4a3G (13)

或者

Aa6

a5

a4

a3G

(14)

式(13)即汉明码的编码原理

2.2汉明码纠错原理

当数字信号编码成汉明码形式(本文中即A)后在信道中传输,由于信道中噪声的干扰,可能由于干扰引入差错,使得接收端收到错码,因此在接收端进行汉明码纠错,以提高通信系统的抗干扰能力及可靠性。

一般来说接收码组与A不一定相同。若设接收码组为一n列的行矩阵B,即 Bb6b5b4b3b2bb(15)10

则发送码组和接收码组之差为

BAE (16)

E就是传输中产生的错码行矩阵 Ee6e5e4e3e2e1e0

(17)

若ei=0,表示接收码元无错误,若ei=1,则表示该接收码元有错。式(16)可改写成

BAE (18)

若E=0,即接收码组无错,则BAEA,将它代人式(8),该是仍成立,即有

BHT0 (19)

当接收码组有错时,E≠0,将B带入式(8)后,该式不一定成立。在未超过检错能力时,式(19)不成立。假设此时式(19)的右端为S,即

BHTS 20

将 BAE代入式(20),可得

S(AE)HTAHTEHT 由式(8)可知,所以

SEHT 21

此处S与前面的

s1s2s3有着一一对应关系,则S能代表错码位置。

因此,纠错原理即,接收端收到码组后按式(20)计算出S,再根据表1判断错码情况,进行差错纠正。

三、 详细设计步骤

3.1程序

3.1.1程序函数介绍

MATLAB中提供了汉明码的编码和译码函数,本程序直接调用进行编程。 ①encode函数 功能:编码函数

语法:code=encode(msg,N,K)

说明:该函数对二进制信息msg进行汉明编码,K为信息位长度,N为码字长度。msg是一个K列矩阵。 ②decode函数 功能:译码函数

语法:rcvcode=decode(code,N,K)

说明:该函数对接受码字进行译码,恢复出原始信息,译码参数及方式必须和编码时采用的完全相同。 ③hammgen函数

功能:汉明码生成矩阵和校验矩阵产生函数 语法:H=hammgen(M) [H,G]=hammgen(M) [H,G,N,K]=hammgen(M)

说明:该函数的功能是产生生成矩阵和校验矩阵,其中M=N-K为校验位的长度,H为汉明码的校验矩阵,G为汉明码的生成矩阵。

3.1.2 主程序 K=4; N=7;

msg=randint(200,4,2) %信息产生 code=encode(msg,N,K) %汉明编码 code_noise=rem(code+rand(200,7)>0.95,2 ) %加噪声 rcv=decode(code_noise,N,K) %汉明译码

disp(['Error rate in the received code: ' num2str(symerr(code,code_noise)/length(code))]) disp(['Error rate after decode: ' num2str(symerr(msg,rcv)/length(msg))]) %计算误码率

3.2 SIMULINK仿真

本系统由信号产生模块、信号汉明编码模块、AWGN信道、信号汉明译码模块、误码率计算模块组成,在图形观察模块还包括频谱仪和示波器。

3.2.1 SIMULINK电路图

在设计中,本系统信号产生模块选用伯努利二进制序列产生器(Bernoulli Binary Generator)来输出速率为100Bd的随机数字信号,进入Hamming encoder进行编码,在送入AWGN信道(加入高斯白噪声)传输,接收信号送入Hamming decoder进行差错纠正, 其后加一误码率计算模块(Error Rate Calculation)计算误码率。再用示波器scope观察波形,用spectrum scope观测频谱。电路如图1所示。

图1 SIMULINK仿真电路图

由于要绘制Hamming decoder模块输入信噪比与输出误码率的关系曲线图,所以将SNR设置成一个变量,通过ratio文件编程绘制误码率曲线图。

3.2.2 ratio文件程序

x=0:20 %定义信噪比的范围 y=x;

for i=1:length(x)

xSNR=x(i); %输入信噪比

sim('fangzhen'); %运行’fangzhen ’SIMULINK仿真文件 y(i)=xErrorRate(1); %误码率 end

semilogy(x,y); grid on;

xlabel('高斯信道中的信噪比/dB'); ylabel('误码率');

四、 设计结果及分析

4.1调试结果

4.2仿真波形

图2 Bernoulli Binary Generator输出信号波形

图3 Bernoulli Binary Generator输出信号频谱

图4 Hamming Encoder输出信号

图5 Hamming Encoder输出信号频谱

图6 AWGN Channel输出信号

图7 AWGN Channel输出信号频谱

图8 Hamming decoder输出信号

图9 Hamming decoder输出信号频谱

图10 SNR=10dB的误码率

图11 输入信噪比与输出误码率的关系曲线图

4.3仿真结果分析

通过结果可知,汉明码可以降低误码率,提高系统抗干扰能力。在SIMULINK仿真中,利用ratio文件编程绘制误码率函数曲线近似于一条直线,但是若直接控制AWGN参数模块的SNR,误码率发生变化,比较奇怪,不明白。

五、 体会

这次通信原理课程设计的题目是汉明码的编码、译码。因为之前并没有接触过MATLAB中的SIMULINK,所以在画原理图和设置参数的时候遇到了不少困难。但好在网上可借鉴的资源很多,通过学习相关的教程和查阅MATLAB中的help,这些困难都迎刃而解了。这其中我深刻地体会到专业英语的重要性。可想而知,多积累点英语对今后的工作、学习将有极大的帮助。通过本次学习,我再一次体会到MATLAB的强大。丰富的库函数、强大的数据处理能力,出色的绘图功能,友好的工作平台,简单一用的操作语言等等,这些优点都促使MATLAB成为数学处理软件发展史上的巅峰之作。这激发了我之后学习MATLAB的决心。知识的构架是千枝交错的。学到大学,知识之间相互渗透的现象可谓比比皆是,这启发我们不仅要发散思维的领域,也要拓宽知识的领域。对与本专业相关的领域多加了解百利而无一害。最后,还是那句话,实践出真知。在渴望知识的道路上,用双脚探索出来的路才是你自己的路。我还将上下左右而求索。

六、 参考文献

[1] 葛哲学.精通MATLAB.北京:电子工业出版社,2008年.

[2] 樊昌信,曹丽娜.通信原理.北京:国防工业出版社,2008年.

[3]赵静.基于MATLAB的通信系统仿真.北京:北京航空航天大学出版社,2008年.

[4]韩利竹,王华.MATLAB电子仿真与应用.北京:国防工业出版社,2003年.

兰州理工大学

课 程 设 计 报 告

课程名称: 通信系统课程设计 设计名称: 汉明码的编码和译码 姓 名: 学 号: 班 级: 指导教师: 起止日期: 2014.4.7-2014.4.9

课 程 设 计 任 务 书

学生班级: 学生姓名: 学号:

设计名称: 汉明码的编译和译码 起止日期: 2012.6.11-2012.6.25 指导教师:

课 程 设 计 学 生 日 志

课 程 设 计 评 语 表

汉明码的编码和译码

一、 设计目的和意义

1. 学习汉明码的编码和译码;

2. 学习Matlab的相关使用,学会用Malab解决实际问题; 3. 培养自己全面、独立思考的能力。

二、 设计原理

2.1汉明码编码原理

一般来说,若汉明码长为n,信息位数为k,则监督位数r=n-k。若希望用r个监督位构造出r个监督关系式来指示一位错码的n种可能位置,则要求

2r1n或21kr1 (1)

下面以(7,4)汉明码为例说明原理:

设汉明码(n,k)中k=4,为了纠正一位错码,由式(1)可知,要求监督位数r≥3。若取r=3,则n=k+r=7。我们用a6a5a4a3a2a1a0来表示这7个码元,用监督关系式中的校正子,则

r

s1s2s3的值表示3个

s1s2s3的值与错误码元位置的对应关系可以规定如表1所列。

表1 校正子和错码位置的关系

则由表1可得监督关系式:

s1a6a5a4 a 2 2

s2a6a5a3 a3 s3a6a4a3a0 4

在发送端编码时,信息位a6a5a4a3的值决定于输入信号,因此它们是随机的。监督

位a2、a1、a0应根据信息位的取值按监督关系来确定,即监督位应使式(2)~式(4)中s1、

s2、s3的值为0(表示编成的码组中应无错码)



a6a5a4a20a6a5a3a10a6

a4a3a00

(5)

式(5)经过移项运算,接触监督位



a2a6a5a4

a1a6a5a3a0

a6a4a

3 (6)

式(5)其等价形式为:

a6

1110100a5

a401101010011001a301a20a

1a0 (7)

式(6)还可以简记为

HAT0T或AHT

0 (8)

其中

1110100

H1101010011001

1 Aa6a5a4a3a2a1

 a 111000P1101I1

r01

0

1011

00

1

所以有

HPIr

(9)

式(6)等价于

a2a1a0111aa110

6

a5a4

3

101a6a5011

其中Q为P的转置,即

00

0

a4

a3Q

(10 0

)

QPT (11)

式(10)表示,信息位给定后,用信息位的行矩阵乘矩阵Q就产生出监督位。 我们将Q的左边加上一个k×k阶单位方阵,就构成一个矩阵G

10kGIQ0

0

101

1 (12)

G称为生成矩阵,因为由它可以产生整个码组,即有

[***********]01

a6a5a4a3a2a1a0a6a5a4a3G (13)

或者

Aa6

a5

a4

a3G

(14)

式(13)即汉明码的编码原理

2.2汉明码纠错原理

当数字信号编码成汉明码形式(本文中即A)后在信道中传输,由于信道中噪声的干扰,可能由于干扰引入差错,使得接收端收到错码,因此在接收端进行汉明码纠错,以提高通信系统的抗干扰能力及可靠性。

一般来说接收码组与A不一定相同。若设接收码组为一n列的行矩阵B,即 Bb6b5b4b3b2bb(15)10

则发送码组和接收码组之差为

BAE (16)

E就是传输中产生的错码行矩阵 Ee6e5e4e3e2e1e0

(17)

若ei=0,表示接收码元无错误,若ei=1,则表示该接收码元有错。式(16)可改写成

BAE (18)

若E=0,即接收码组无错,则BAEA,将它代人式(8),该是仍成立,即有

BHT0 (19)

当接收码组有错时,E≠0,将B带入式(8)后,该式不一定成立。在未超过检错能力时,式(19)不成立。假设此时式(19)的右端为S,即

BHTS 20

将 BAE代入式(20),可得

S(AE)HTAHTEHT 由式(8)可知,所以

SEHT 21

此处S与前面的

s1s2s3有着一一对应关系,则S能代表错码位置。

因此,纠错原理即,接收端收到码组后按式(20)计算出S,再根据表1判断错码情况,进行差错纠正。

三、 详细设计步骤

3.1程序

3.1.1程序函数介绍

MATLAB中提供了汉明码的编码和译码函数,本程序直接调用进行编程。 ①encode函数 功能:编码函数

语法:code=encode(msg,N,K)

说明:该函数对二进制信息msg进行汉明编码,K为信息位长度,N为码字长度。msg是一个K列矩阵。 ②decode函数 功能:译码函数

语法:rcvcode=decode(code,N,K)

说明:该函数对接受码字进行译码,恢复出原始信息,译码参数及方式必须和编码时采用的完全相同。 ③hammgen函数

功能:汉明码生成矩阵和校验矩阵产生函数 语法:H=hammgen(M) [H,G]=hammgen(M) [H,G,N,K]=hammgen(M)

说明:该函数的功能是产生生成矩阵和校验矩阵,其中M=N-K为校验位的长度,H为汉明码的校验矩阵,G为汉明码的生成矩阵。

3.1.2 主程序 K=4; N=7;

msg=randint(200,4,2) %信息产生 code=encode(msg,N,K) %汉明编码 code_noise=rem(code+rand(200,7)>0.95,2 ) %加噪声 rcv=decode(code_noise,N,K) %汉明译码

disp(['Error rate in the received code: ' num2str(symerr(code,code_noise)/length(code))]) disp(['Error rate after decode: ' num2str(symerr(msg,rcv)/length(msg))]) %计算误码率

3.2 SIMULINK仿真

本系统由信号产生模块、信号汉明编码模块、AWGN信道、信号汉明译码模块、误码率计算模块组成,在图形观察模块还包括频谱仪和示波器。

3.2.1 SIMULINK电路图

在设计中,本系统信号产生模块选用伯努利二进制序列产生器(Bernoulli Binary Generator)来输出速率为100Bd的随机数字信号,进入Hamming encoder进行编码,在送入AWGN信道(加入高斯白噪声)传输,接收信号送入Hamming decoder进行差错纠正, 其后加一误码率计算模块(Error Rate Calculation)计算误码率。再用示波器scope观察波形,用spectrum scope观测频谱。电路如图1所示。

图1 SIMULINK仿真电路图

由于要绘制Hamming decoder模块输入信噪比与输出误码率的关系曲线图,所以将SNR设置成一个变量,通过ratio文件编程绘制误码率曲线图。

3.2.2 ratio文件程序

x=0:20 %定义信噪比的范围 y=x;

for i=1:length(x)

xSNR=x(i); %输入信噪比

sim('fangzhen'); %运行’fangzhen ’SIMULINK仿真文件 y(i)=xErrorRate(1); %误码率 end

semilogy(x,y); grid on;

xlabel('高斯信道中的信噪比/dB'); ylabel('误码率');

四、 设计结果及分析

4.1调试结果

4.2仿真波形

图2 Bernoulli Binary Generator输出信号波形

图3 Bernoulli Binary Generator输出信号频谱

图4 Hamming Encoder输出信号

图5 Hamming Encoder输出信号频谱

图6 AWGN Channel输出信号

图7 AWGN Channel输出信号频谱

图8 Hamming decoder输出信号

图9 Hamming decoder输出信号频谱

图10 SNR=10dB的误码率

图11 输入信噪比与输出误码率的关系曲线图

4.3仿真结果分析

通过结果可知,汉明码可以降低误码率,提高系统抗干扰能力。在SIMULINK仿真中,利用ratio文件编程绘制误码率函数曲线近似于一条直线,但是若直接控制AWGN参数模块的SNR,误码率发生变化,比较奇怪,不明白。

五、 体会

这次通信原理课程设计的题目是汉明码的编码、译码。因为之前并没有接触过MATLAB中的SIMULINK,所以在画原理图和设置参数的时候遇到了不少困难。但好在网上可借鉴的资源很多,通过学习相关的教程和查阅MATLAB中的help,这些困难都迎刃而解了。这其中我深刻地体会到专业英语的重要性。可想而知,多积累点英语对今后的工作、学习将有极大的帮助。通过本次学习,我再一次体会到MATLAB的强大。丰富的库函数、强大的数据处理能力,出色的绘图功能,友好的工作平台,简单一用的操作语言等等,这些优点都促使MATLAB成为数学处理软件发展史上的巅峰之作。这激发了我之后学习MATLAB的决心。知识的构架是千枝交错的。学到大学,知识之间相互渗透的现象可谓比比皆是,这启发我们不仅要发散思维的领域,也要拓宽知识的领域。对与本专业相关的领域多加了解百利而无一害。最后,还是那句话,实践出真知。在渴望知识的道路上,用双脚探索出来的路才是你自己的路。我还将上下左右而求索。

六、 参考文献

[1] 葛哲学.精通MATLAB.北京:电子工业出版社,2008年.

[2] 樊昌信,曹丽娜.通信原理.北京:国防工业出版社,2008年.

[3]赵静.基于MATLAB的通信系统仿真.北京:北京航空航天大学出版社,2008年.

[4]韩利竹,王华.MATLAB电子仿真与应用.北京:国防工业出版社,2003年.


相关内容

  • 通信原理设计报告(7,4)汉明码的编解码设计
  • 目录 前言...............................................................1 第1章 设计要求..................................................3 第2章 QuartusⅡ软件介绍.... ...

  • 汉明码论文
  • 基于C51的汉明码编码器和译码器的设计 摘要:数字信号在传输过程中,由于受到干扰的影响,码元波形将变坏.接收端收到后可能发生错误判决.由乘性干扰引起的码间串扰,可以采用均衡的办法纠正,而加性干扰的影响可以采用差错控制的措施了.汉明码就是一种能纠正一位错码且编码效率较高的线性分组码,它能纠正一个错码或 ...

  • 信道编码实验报告
  • 无线通信基础课程设计报告 (信道编码) 小组成员: 指导老师: 完成时间: 无线通信系统课程设计报告 实验摘要:数字信号在传输中往往由于各种原因,使得在传送的数据流中产生误码,从 而使接收端产生图象跳跃.不连续等现象.信道编码通过对数码流进行相应的处理,使系统具有一定的检错和纠错能力,可极大地避免码 ...

  • 信息论基础
  • <信息论基础>课程教学大纲 课程编号:(0531305) 课程名称:信息论基础 参考学时:48 其中实验或上机学时:0 先修课及后续课:先修课:概率论.信号与系统 后续课:通信原理.数字图像处理.语音信号处理 说明部分 1.课程性质 本课程是电子信息类专业的技术基础课 2.课程教学的目的 ...

  • hammin(汉明)码编码规则
  • 计算机 汉明码 编码规则 若编成的海明码为Hm,Hm-1-H2H1,则海明码的编码规律为: (1)校验位分布:在m位的海明码中,各校验位Pi分布在位号为2^(i-1)的位置,即校验位的位置分别为1,2,4,8,-,其余为数据位:数据位按 原来的顺序关系排列.如有效信息码为-D5D4D3D2D1,则编 ...

  • 移动通信中纠错编码技术的应用和发展
  • 移动通信中纠错编码技术的应用和发展 一. 引言 移动通信的发展日新月异,从1978年第一代模拟蜂窝通信系统诞生至今,不过20多年的时间,就已经过三代的演变,成为拥有10亿多用户的全球电信业最活跃.最具发展潜力的业务.尤其是进几年来,随着第三代移动通信系统(3G )的渐行渐近,以及各国政府.运营商和制 ...

  • 数字通信-信道编码
  • 信道编码 实验人: 学号:07302443 一.实验目的 1. 加深对信道编码的理解,了解信道编码的作用 2. 进一步掌握基带信号检测和判决和最佳判决理论 3. 熟悉至少一种信道编码的编码及译码过程,分析信道编码后的误码率的变化 4. 掌握信噪比和误码率之间的关系和相互影响 5. 学习使用MATLA ...

  • 信息论与编码试题集与答案(新)
  • 一填空题(本题20分,每小题2分) 1.平均自信息为 表示信源的平均不确定度,也表示平均每个信源消息所提供的信息量. 平均互信息 后整个系统不确定性减少的量. 表示从Y获得的关于每个X的平均信息量,也表示发X前后Y的平均不确定性减少的量,还表示通信前 2.最大离散熵定理为:离散无记忆信源,等概率分布 ...

  • 通信原理重点知识总结
  • 第一章绪论 1.通信的目的:传递消息中所包含的 2.信息:是消息中包含的3.模拟信号信号的参量取值是 数字信号信号的参量取值是可数的有限的 4.按照信道中传输的是模拟信号还是数字信号,相应地把通信系统分为字通信系统:按照传输媒介.通信系统可分为有线通信系统和无线通信系统 5.模拟消息 ⇔ 原始电信号 ...