通信原理课程设计01doc.docx

上传人:b****4 文档编号:27494820 上传时间:2023-07-02 格式:DOCX 页数:21 大小:225.67KB
下载 相关 举报
通信原理课程设计01doc.docx_第1页
第1页 / 共21页
通信原理课程设计01doc.docx_第2页
第2页 / 共21页
通信原理课程设计01doc.docx_第3页
第3页 / 共21页
通信原理课程设计01doc.docx_第4页
第4页 / 共21页
通信原理课程设计01doc.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

通信原理课程设计01doc.docx

《通信原理课程设计01doc.docx》由会员分享,可在线阅读,更多相关《通信原理课程设计01doc.docx(21页珍藏版)》请在冰豆网上搜索。

通信原理课程设计01doc.docx

通信原理课程设计01doc

课程设计目的

1.为了学生加深对所学的通信原理知识理解;

2能比较扎实地掌握本专业的基础知识和基本理论;

3.掌握通信系统及有关设备的分析、开发等基本技能,受到必要工程训练;

4.初步的科学研究方法和实践训练,增强分析和解决问题的能力。

课程设计要求

1.采用VHDL语言输入法进行设计;

2.根据汉明码的编码原理,确定编解码器具体设计方案;

3画出汉明码的编解码的程序设计流程图;

4.编写VHDL源程序、调试及仿真时序波形.

课程设计注意事项

1、严格遵守实验室的各项规章制度,不得有违纪现象发生;

2、在课程设计期间,注意树立当代大学生的良好形象,文明,讲礼貌,虚心学习,尊重他人,服从指导教师的安排;

3、课程设计期间,注意安全,爱护设备,不得出现违章操作;

4、课程设计过程中,要求学生要有独立思考、深入钻研的精神和严肃认真、一丝不苟、精益求精的工作态度。

课程设计内容

1.差错控制编码;

2.(7,4)汉明码的编码原理;

3.汉明码编译码的设计和仿真;

4.软件的调试和优化;

5.总结语。

课程设计简要操作步骤

 

1了解数字通信系统的设计要求;

2熟悉系统的建模与仿真设计方法;

3分析题目,设计通信系统框图,设计仿真程序流程;

4编写程序代码;

5上机调试程序,修改并完善设计;

6完成设计报告。

课程设计心得体会

通过这次课程设计,我学到了很多的东西,不仅巩固了所学的知识,而且学到了很读在书本上学不到的东西。

通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实际相结合起来,从理论中得出结论,才是真正的知识,才能提高自己的实际动手动手能力和独立思考的能力。

在设计的过程中遇到了各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学的知识理解不够深刻,掌握的不够牢固,通过这次课程设计,把以前所学过的知识重新温故,巩固了所学的知识。

课程设计评语及成绩

评语

成绩

指导教师

(签名)

 

2010年6月日

附件:

汉明码编译码CPLD实现

摘要:

汉明码是一种能够纠正一位错码或检测两位错码的一种效率较高的线形分组码。

本次课程设计的任务就是利用EDA技术在QuartusⅡ软件下用VHDL语言实现汉明码的编译码的设计和仿真。

EDA技术是随着集成电路和计算机技术飞速发展应运而生的一种高级、快速、有效的电子设计自动化工具。

目前,VHDL语言已经成为EDA的关键技术之一,VHDL是一种全方位的硬件描述语言,具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门级三个不同层次的设计,支持结构、数据流、行为三种描述形式的混合描述,覆盖面广,抽象能力,因此在实际中应用越来越广泛。

VHDL语言具有强大的语言结构,可用明确的代码描述复杂的控制逻辑设计,并且具有多层次的设计描述功能,支持设计库和可重复使用的元件的生成,近几十年来,EDA技术获得了飞速的发展,它以计算机为平台,根据硬件描述语言VHDL,自动地完成逻辑编译,化简分割、综合及优化,布局布线,仿真直至对特定目标芯片的适配编译,逻辑映射和编程下载等工作,以自顶向下的设计方法,使硬件设计软件化,摆脱了传统手工设计的众多缺点,随着EDA技术的深入发展,基于硬件描述语言的方法将有取代传统手工设计方法的趋势。

第一章绪论

1.1差错控制编码

1.1.1概述

数字信号在传输过程中,由于受到干扰的影响,码元波形将变坏。

接收端收到后可能发生错误判决。

由于乘性干扰引起的码间串扰,可以采用均衡的办法来纠正。

而加性干扰的影响则需要用其他办法解决。

在设计数字通信系统时,应该首先从合理选择调制制度,解调方法以及发送功率等方面考虑,使加性干扰不足以影响到误码率要求。

在仍不能满足要求时,就要考虑采用差错控制措施了。

从差错控制角度看,按加性干扰引起的错码分布规律不同,信道可以分为3类,即随机信道,突发信道和混合信道。

在随机信道中,错码的出现是随机的,而且错码之间是统计独立的。

在突发信道中,错码是成串集中出现的,而且在短促的时间段之间存在较长的无错码区间。

把既存在随机错码又存在突发错码的的信道称为混合信道。

对于不同类型的信道,应该采用不同的差错控制技术。

1.1.2纠错编码原理

我们把信息码分组,为每组信息码附加若干监督码的编码称为分组码(blockcode).在分组码中,监督码元仅监督本码组中的信息码元。

分组码一般用符号(n,k)表示,其中n是码组的总位数,又称为码组的长度(码长),k是码组中信息码元的数目,n-k=r为码组中的监督码元的数目,或者称为监督位数目,分组码的结构如图2示,图中前k位为信息位,后面附加r个监督位。

其中an-1到ar为k个信息位,ar-1到a0为r个监督位。

an-1

an-2

………

ar

ar-1

………

ao

图1-1-1分组码的结构

在分组码中,把码组中“1”的个数称为码组的重量,简称码重。

把两个码组中对应位上数字不同的位数称为码组的距离,简称为码距,码距又称为汉明距离。

我们把某种编码中各个码组之间距离的最小值称为最小码距(d0)。

一种编码的最小距离的大小直接关系着这种编码的检错与纠错能力:

(1)为检测e个错码,要求最小码距d0大于等于e+1;

(2)为了纠正t个错码,要求最小码距d0大于等于2t+1;

(3)为纠正t个错码同时检测e个错码,要求最小码距d0大于等于e+t+1(e>t).

1.2汉明码编码

Hamming码中文称作汉明码。

汉明码是由汉明于1950年提出的,具有纠正一位错误能力的线性分组码它的突出特点是:

编译码电路简单,易于硬件实现;用软件实现编译码算法时,软件效率高;而且性能比较好。

1.2.1汉明码的定义:

若一致监督矩阵H的列是由不全为0且互不相同的所有二进制m(m≥2的正整数)重组成,则由此H矩阵得到的线性分组码称为[2m-1,2m-1-m,3]汉明码。

1.2.2汉明码的构造特点:

1).绐定一个m,我们由二进制m重组成线性分组码的监督矩阵H,由二进制m重来标定一个发生错误的位置。

由此可知,二进制m重共有2种位组合,去掉一个全为0的位组合,则余下共有2m-1种位组合。

故汉明码的最大码长n=2m-1。

2).由上面分析,我们可以知道:

m即是汉明码监督位的位数。

3).汉明码的距离为3,因此可以纠正1位错误,检出2位错误。

1.2.3汉明码编码的主要算法

汉明码的编码就是如何根据信息位数k,求出纠正一个错误的监督矩阵H,然后根据H求出信息位所对应的码字。

构造汉明码监督矩阵H的方法很多,这里仅介绍一种。

1)根据已知的信息位数k,从汉明不等式中求出校验位数m=n-k;

2)在每个码字C:

(C1,C2,⋯,C2m-1)中,用c02,c12,cn-12作为监督位,剩下的位作为信息位;

3)用二进制数字表示2m-1列,得到2m-1列和m行监督矩阵H;

4)用3步的H形成HCT=0,从而得出m个监督方程;

5)将已知的信息代入方程组,然后求出满足上述方程组的监督位c(i=0,1,⋯,m一1)。

例如,用以上方法,很容易求出[7,4,3]汉明码的监督矩阵:

1110100

H=1101010

1011001

及编码所对应的码字为C=011001。

第二章(7,4)汉明码的编码原理

2.1基本构造

对于码组长度为n、信息码元为k位、监督码元为r=n-k位的分组码,常记作(n,k)码,如果满足2r-1≥n,则有可能构造出纠正一位或一位以上错误的线性码。

下面我们通过(7,4)汉明码的例子来说明如何具体构造这种码。

设分组码(n,k)中,k=4,为能纠正一位误码,要求r≥3。

现取r=3,则n=k+r=7。

我们用a0ala2a3a4a5a6表示这7个码元,用S1、S2、S3表示由三个监督方程式计算得到的校正子,并假设三位S1、S2、S3校正子码组与误码位置的对应关系如表1所示。

S1S2S3

错码位置

S1S2S3

错码位置

001

a0

101

a4

010

al

110

a5

100

a2

111

a6

011

a3

000

无错码

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

由表可知,当误码位置在a2、a4、a5、a6时,校正子S1=1;否则S1=0。

因此有S1=a6⊕a5⊕a4⊕a2,同理有S2=a6⊕a5⊕a3⊕a1和S3=a6⊕a4⊕a3⊕a0。

在编码时a6、a5、a4、a3为信息码元,a2、a1、a0为监督码元。

则监督码元可由以下监督方程唯一确定:

a6⊕a5⊕a4⊕a2=0

a6⊕a5⊕a3⊕a1=0(2.1.1)

a6⊕a4⊕a3⊕a0=0

也即

a2=a6⊕a5⊕a4

a1=a6⊕a5⊕a3(2.1.2)

a0=a6⊕a4⊕a3

 

由上面方程可得到表2所示的16个许用码组。

在接收端收到每个码组后,计算出S1、S2、S3,如果不全为0,则表示存在错误,可以由表1确定错误位置并予以纠正。

举个例子,假设收到码组为0000011,可算出S1S2S3=011,由表1可知在a3上有一误码。

通过观察可以看出,上述(7,4)码的最小码距为dmin=3,纠正一个误码或检测两个误码。

如果超出纠错能力则反而会因“乱纠”出现新的误码.

信息位

监督位

信息位

监督位

a6a5a4a3

a2a1a0

a6a5a4a3

a2a1a0

0000

0001

0010

0011

0100

0101

0110

0111

000

011

101

110

110

101

011

000

1000

1001

1010

1011

1100

1101

1110

1111

111

100

010

001

001

010

100

111

表2-2(7,4)汉明码的许用码组

2.2监督矩阵

上面有提到过,线性码是指信息位和监督位满足一组线性代数方程的码,式(1.1.1)就是这样的例子,现在将它改写成

1*a6⊕1*a5⊕1*a4⊕0*a3⊕1*a2⊕0*a1⊕0*a0=0

1*a6⊕1*a5⊕0*a4⊕1*a3⊕0*a2⊕1*a1⊕0*a0=0(2.2.1)

1*a6⊕0*a5⊕1*a4⊕1*a3⊕0*a2⊕0*a1⊕1*a0=0

我们可以将式(1.1.3)表示成如下的矩阵形式:

a6

a5

1110100a40

1101010a3=0(2.2.2)

1011001a20

a1

a0

式(2.2.2)还可以简记为H*AT=0T或A*HT=0(2.2.3)其中:

1110100

H=1101010A=a6a5a4a3a2a1a00=000

1011001

上角“T”表示将矩阵转置。

例如HT是H的转置,即HT的第一行为H的第一列,第二行为第二列。

我们将H称为监督矩阵(parity—checkmatrix).只要监督矩阵H给定,编码时监督位和信息位的关系就完全确定了。

由(2.2.2)和(2.2.3)都可以看出,H的行数就是监督关系式的数目r,H的每一行中的“1”的位置表示相应码元之间存在的监督关系。

式(2.2.2)中的H矩阵可以分为两部分。

1110100

H=1101010=PIr(2.2.4)

1011001

式中:

P为r*k阶矩阵;Ir为r*r阶单位方阵。

2.3生成矩阵

由代数理论可知,H矩阵的的各行应该是线性无关的,否则将得不到r个线性无关的监督关系式,从而也得不到r个独立的监督位。

若一矩阵可以写成PIr的矩阵形式,则其各行一定是线性无关的。

因为容易验证Ir的各行是线性无关的,故PIr的各行也是线性无关的。

类似于(2.1.1)改成(2.2.2)那样,(2.1.2)可以改写成:

a6

a21110a5

a1=1101a4(2.3.1)

a01011a3

或者

111

a2a1a0=a6a5a4a3110=a6a5a4a3Q(2.3.2)

101

011

其中,Q为一个k*r阶矩阵,它为P的转置,即:

Q=PT

式(1.1.8)表示,在信息位给定后,用信息位的行矩阵乘矩阵Q就产生出监督位。

我们将Q的左边加上一个k*k阶单位方阵,就构成一个矩阵G

1000111

G=IKQ=0100110(2.3.3)

0001011

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

a6a5a4a3a2a1a0=a6a5a4a3G=A(2.3.4)

第三章(7,4)汉明码编译码的设计和仿真

3.1(7,4)汉明码的编码思路

(7,4)汉明码的编码就是将输入的四位信息码编成七位的汉明码,即加入三位监督位。

根据式(2.2.0)A=[a6a5a4a3]·G可知,信息码与生成矩阵G的乘积就是编好以后的(7,4)汉明码,而生成矩阵G又是已知的,由式(2.3.3)得:

1000111

G=0100110

0010101

0001011

所以,可以得出如下方程组:

   a6=a6

        a5=a5

        a4=a4

        a3=a3        (3.1.1)     

        a2=a6+a5+a4

        a1=a6+a5+a3

        a0=a6+a4+a3

根据式(3.1.1)就可以编出编码程序了。

3.2(7,4)汉明码的编码程序设计

根据(7,4)汉明码的编码原理,首先画出程序设计的流程图:

图3-2-1编码流程图

输入信息码a3a2a1a0,输出(7,4)汉明码b6b5b4b3b2b1b0。

首先,输入信息码a3a2a1a0,即使用以下语句:

port(a:

instd_logic_vector(3downto0);

然后,根据式(2.2.1),就可以得到监督位与信息码之间的对应关系,使用异或运算,即:

b(6)<=a(3);

b(5)<=a

(2);

b(4)<=a

(1);

b(3)<=a(0);

b

(2)<=a(3)xora

(2)xora

(1);

b

(1)<=a(3)xora

(2)xora(0);

b(0)<=a(3)xora

(1)xora(0);

最后,将算好的监督位与原来输入的信息一起输出,就是编码结束了。

3.3(7,4)汉明码的编码程序的编译

(1)在max+plusⅡ中采用原理图输入如下所示:

步骤一:

指定设计项目名字

步骤二:

建立一个新的图形文件

步骤三:

输入图元和功能符号

步骤四:

命名引脚和链接逻辑符号

图3-3-1

编译结果如下:

图3-3-2

(2)在max+plusⅡ采用文本输入法:

(7,4)汉明码的编码程序如下:

libraryieee;

useieee.std_logic_1164.all;

entitybmis

port(a:

instd_logic_vector(3downto0);

    b:

outstd_logic_vector(6downto0));

endbm;

architecturestrcofbmis

begin

b(6)<=a(3);

b(5)<=a

(2);

b(4)<=a

(1);

b(3)<=a(0);

b

(2)<=a(3)xora

(2)xora

(1);

b

(1)<=a(3)xora

(2)xora(0);

b(0)<=a(3)xora

(1)xora(0);

endstrc;

文本编辑如下:

图3-3-3

图3-3-4

3.4(7,4)汉明码的编码程序的仿真

在max+plusⅡ采用波形编辑器:

先建立一个仿真通道文件bm·scf,如图3-4-1示:

图3-4-1

 

编辑的wdf文件如图所示:

图3-4-2

图3-4-3

4.5(7,4)汉明码的编码程序的编译和仿真分析

按照上述编码程序的编写思路,编写好程序,点击,进行编译,出现一些错误,列举如下:

图3-5-1

 

Error1表明在使用"std_logic_vector"时,没有打开可以使用这个函数的库,应该在程序的最前面加上如下语句:

libraryieee;

useieee.std_logic_1164.all;

图3-5-2

Error2:

vhdlsyntaxerror:

theendingsimplename“bm”mustmatchtheentityidentifier“ym”.

Error2表明程序中的文件名与保存时的文件名不一致,两者应该相同。

排除上述错误后,就可以进行波形仿真了。

如bm.wdf所示,当a3a2a1a0为0101时,b2b1b0为101,则整个输出码组为0101101。

对照表2,故编码正确。

3.6(7,4)汉明码的译码程序的编程与仿真

从编码输出之后是7位码元进入译码模块命名为ym,则其程序流程图如下:

 

 

图3-6-1译码程序流程图

这里要特别提出的是要加一个错码发生器,然后来实现译码。

错码发生器的源代码如下:

LIBRARYIEEE;    

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYERRORIS  

PORT(A:

IN STD_LOGIC_VECTOR(6DOWNTO0);

    B:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

END;

ARCHITECTUREONEOFERRORIS

BEGIN            

b(6)<=nota(6);

b(5)<=a(5);

b(4)<=a(4);

b(3)<=a(3);

b

(2)<=a

(2);

b

(1)<=a

(1);

b(0)<=a(0);

endone;

得到的译码仿真图为

 

图3-6-2译码模块仿真图

由图可以看出,当错码位置C=6时,即a(6)有错码,校正子S正好为7,当S=0时无错。

当错码位置在C=5时,即a(5)有错码,校正子S正好为6.由此说明译码仿真正确。

第四章软件的调试和优化

4.1编译码系统模块的链接

在编码和译码程序都验证结束后,为了将编码和译码结合起来,就可以将编码的输出结果送到译码器的输入端,然后译码器将7位输入的汉明码译成4位的信息码,顶层文件如图所示:

 

图4-1-1编译码系统原理图

仿真结果如下:

 

图4-1-2编译系统仿真图

由仿真图可以看出:

B[3..0]的输出和datain[3..0]输入的一样,则此编译系统仿真正确。

参考文献:

1.南利平、李学华等.通信原理简明教程.北京:

清华大学出版社,2007

2.达新宇等.通信原理实验与课程设计(第2版).北京邮电大学出版社,2009

3.樊昌信、曹丽娜.通信原理.国防工业设计,2006

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1