通信原理课程设计报告以及CPLD汉明码编译_第1页
通信原理课程设计报告以及CPLD汉明码编译_第2页
通信原理课程设计报告以及CPLD汉明码编译_第3页
通信原理课程设计报告以及CPLD汉明码编译_第4页
通信原理课程设计报告以及CPLD汉明码编译_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课 程 设 计 报 告课程名称 通信原理课程设计 系 别: 专业班级: 学 号: 姓 名: 课程题目: 汉明码编译码CPLD实现完成日期: 指导老师: 课 程 设 计 目 的利用课程设计加强对通信原理课程的基本概念、基本理论、分析方法和实现方法的理解。结合数字通信技术和微电子技术,学习现代数字通信系统的建模和设计方法。将理论和实际紧密联系,培养创新思维和设计能力,增强软件编程实现能力和解决实际问题的能力。课 程 设 计 要 求要求熟练地运用通信理论,进行数字基带信号、 数字信号频带传输系统设计,掌握对数字基带信号的处理方法,并进行通信系统建模完成对汉明码编译码CPLD实现。课 程 设 计 注

2、意 事 项1熟悉数字电路设计的一般方法。2熟悉和掌握MAXPLUS软件的使用。3按设计要求进行建模。4设计完成后,按学校“课程设计工作规范”中的“统一书写格式”,撰写课 程设计报告一份,包括:设计题目、设计要求、逻辑分析、设计总体电路、模块设计、模块程序(含对程序的说明)、仿真波形、实验结果分析、心得体会(不少于500字)、参考文献(不少于5篇)。 课 程 设 计 内 容设计内容是采用新型数字系统设计的方法实现(7,4)循环码。循环码是差错控制编码中最主要、最常用的一种。它有很强的纠错能力,所以普遍应用于各种实际的差错控制系统。要求用CPLD实现(7,4)循环码编码解码的方法,可以采用原理图或

3、VHDL编程输入的方式。课 程 设 计 简 要 操 作 步 骤1简要介绍线性分组码、循环码的基本原理的基础。2分析CPLD实现(7,4)循环码编码解码的算法,建立模型,写出流程图。3原理图输入或用VHDL语言编写的程序。4进行编译,并进行仿真。分析仿真波形,检查所实现的编码器是否正确。5进行引脚定义。6进行并口下载电缆的配置。7检查无误后,生成下载文件,并进行可编程器件的烧写。8硬件验证功能是否实现。课 程 设 计 心 得 体 会经过这次课程设计,不仅加强了我的动手、思考和解决问题的能力,还学到了很多课外知识,比如独立思考解决问题,出现差错的随机应变能力等。这次课程设计使我懂得了理论与实际相结

4、合是很重要的,只有理论知识是远远不够的,要想在本专业学精就要把所学的理论知识与实践相结合起来,如此才能提高自己的实际动手能力和独立思考的能力。仿佛这是工作前的又一次预热,熟悉了座学问和工作的整个流程。课 程 设 计 评 语 及 成 绩评 语成 绩指导教师(签 名)2010年7月 1 日附件: 汉 明 码 编 译 码 CPLD 实 现摘要:通过利用CPLD实现对汉明码进行编译。利用ALTERA公司的FLEX10K系列芯片设计和实现了汉明码的编译码,详细地阐述了设计的方法和实现的过程。首先进行电路设计,然后在MAX+PLUSII编辑环境下,采用自顶向下的层次设计方法,以及VHDL文本输入的输入方法

5、编制程序,经编译正确后进行波形仿真,经过仿真、调试,验证了功能和时序正确性后,将编辑的程序烧写到CPLD。关键词:CPLD 汉明码 编译 MAX+PLUSII正文一汉明码理论: 汉明码是一种能够纠正一位错码且编码效率较高的线性分组码。汉明码的编译码原理:汉明码的编码是对信源端发出的原始码字上加入一些监督码,得到新的码字,这的码字增加了信息的冗余,但保证了传输的质量,设其码字为A=a6,a5,a4,a3,a2,a1,a0, 其中前4位是信息元,后3位是监督元,使信息码元与 监督码元通过线性方程式联系起来,可用下列线性方程组来描述该分组码,产生监督元: 发送端计算监督位 a n = a

6、n-1 Åa n-2Å . Åa 0=0 ,接收端解码计算 S = a n-1 Åa n-2 Å . Åa n-2Åa0 ,校正子S =0则无错、S=1则有错,该式为监督关系式;S称为校正子。由于校正子S只有两种取值,故它只能代表有错和无错这两种信息,而不能指出错码的位置。一般来说,若码长为n,信息位数为k,则监督位数rnk。用r个监督位构造出r个监督关系式来指示1位错码的n种可能位置,则2r -1 ³ n 即2r ³ k+r+1满足此汉明不定式。(7, 4)汉明码,为了纠正1位错码,由上式可知,要求监督

7、位数 r ³ 3。若 r = 3,则n = k + r = 7。我们用a6 a5¼ a0表示这7个码元,用S1、S2和S3表示3个监督关系式中的校正子,则S1、S2和S3的值与错码位置的对应关系可以规定如下:表格一:S1 00101110S201010110S310011010S1 = a6 Å a5Å a4Åa2 S2= a6 Åa5 Åa3 Åa1S3 = a6Åa4 Åa3 Åa0错错码位置 a0 a1 a2 a3 a4 a5 a6 无错码 仅当一位错码的位置在a2 、a4、a5

8、或a6时,校正子S1为1;否则S1为零。这就意味着a2 、a4、a5和a6四个码元构成偶数监督关系;同理,a1、a3、a5和a6构成偶数监督关系;以及a0、a3、a4 和a6构成偶数监督关系。在发送端编码时,信息位a6、a5、a4和a3的值决定于输入信号,因此它们是随机的。监督位a2、a1和a0应根据信息位的取值按监督关系来确定,即监督位应使上3式中S1、S2和S3的值为0(表示编成的码组中应无错码):a6 Å a5Å a4Åa2=0 a2=a6Å a5Å a4a6 Åa5 Åa3 Åa1=0 移项运算,解出监督位

9、 a1= a6 Åa5 Åa3a6Åa4 Åa3 Åa0=0 a0= a6Åa4 Åa3 根据上面三个表达式,可以得到16个许用码组如下表许用码组表 表格二: 信息位a6 a5 a4 a3监督位a2 a1 a0信息位a6 a5 a4 a3监督位a2 a1 a00000000100011100010111001100001010110100100011110101100101001101100001010110111010100110011111010001110001111111 (7,4)码的三个监督方程式可以重新改写为如

10、下形式: 可以用矩阵形式来表示:记作:或 ,其中 通常H称为监督矩阵,A称为信道编码得到的码字。在这个例子中H为r×n阶矩阵,P为r×k阶矩阵,Ir为r×r(3x3)阶单位矩阵,具有这种特性的H矩阵称为典型监督矩阵,这是一种较为简单的信道编译码方式。典型形式的监督矩阵各行是线性无关的。接收端收到每个码组后,先计算出S1、S2和S3,再查表判断错码情况。例如,若接收码组为0000011,按上述公式计算可得:S1 = 0,S2 = 1,S3 = 1。由于S1 S2 S3 等于011,故查表可知在a3位有1错码。 按照上述方法构造的码称为汉明码。表中所列的(7, 4)汉

11、明码的最小码距d0 = 3。因此,这种码能够纠正1个错码或检测2个错码。由于码率k/n = (n - r) /n =1 r/n,故当n很大和r很小时,码率接近1。可见,汉明码是一种高效码。 二软件部分:1、(7,4)汉明码的编码、程序流程图汉明码的编码就是将输入的四位信息码编成七位的汉明码,即加入三位监督位。因为A = a6 a5 a4 a3 ·G,信息码与生成矩阵G的乘积就是编好以后的(7,4)汉明码,而生成矩阵G又是已知的,可得             

12、;      1 0 0 0  1 1 1                   0 1 0 0  1 1 0             G =   0 0 1 0  1 0 1  &

13、#160;                                   0 0 0 1  0 1 1所以,可以得出如下方程组          

14、;  a6 = a6            a5 =      a5            a4 =           a4        

15、;    a3 =                a3                     (方程组2)        

16、60;   a2 = a6 + a5 + a4            a1 = a6 + a5      + a3            a0 = a6      + a4 + a3根据上式就可以完成设计编码程序。编码流程图如下图: (7,4)汉明码的编码仿真

17、图2、(7,4)汉明码的译码、程序流程图及仿真(7,4)汉明码的译码思路:(7,4)汉明码的译码就是将输入的七位汉明码翻译成四位的信息码,并且纠正其中可能出现的一个错误。由于生成矩阵G是已知的,由G = Ik  Q ,(其中Ik是4x4阶单位阵)可以得到矩阵Q的值                   1 1 1        &

18、#160;     Q =  1 1 0  = PT                      (3.2.1)                 

19、60; 1 0 1                   0 1 1那么               1  1  1  0           

20、;  P =   1  1  0  1                     (3.2.2)                   1  0

21、  1  1而监督矩阵H与PT又存在一定的关系,即H =P Ir                                        (3.2.3)那么就可以算出监督矩阵

22、H的值,即                   1 1 1 0 1 0 0             H =   1 1 0 1 0 1 0            

23、;      (3.2.4)                   1 0 1 1 0 0 1所以                 1  1  1   

24、                  1  1  0                     1  0  1       

25、   HT  =    0  1  1                        (3.2.5)                

26、;     1  0  0                     0  1  0                   

27、  0  0  1根据式S = BHT =(A + E)HT  = EHT (S称为伴随式或校正子,收发码组之差定义为错误图样E,即 E = B - A ),可以看出校正子S与错误样E之间有确定的线性变换关系如下表所示。表格三:序号错误码位ESe6    e5    e4    e3    e2    e1    e0s2   s1

28、60;  s00/0    0    0    0    0    0    00    0    01b00    0    0    0    0    0    1

29、0    0    12b10    0    0    0    0    1    00    1    03b20    0    0    0    1 

30、0;  0    01    0    04b30    0    0    1    0    0    00    1    15b40    0    1    0

31、    0    0    01    0    16b50    1    0    0    0    0    01    1    07b61    0 

32、0;  0    0    0    0    01    1    1(7,4)汉明码S与E的对应关系表E = en-1,en-2,e1,e0 ,算出校正子S与(7,4)汉明码各位之间的关系表达式为S2 = a2 + a6 + a5 + a4          S1 = a1 + a6 + a5 +a3  

33、                                       S0 = a0 + a6 + a4 + a3明显可以确定每一位出错时,对应的校正子s2s1s0的值。译码流程图如右图所示: (7,4)汉明码的

34、译码仿真图 三程序清单:(7,4)汉明码的编码程序:library ieee;use ieee.std_logic_1164.all;entity bm isport(a:in std_logic_vector(3 downto 0);     b:out std_logic_vector(6 downto 0);end ;architecture one of bm isbeginb(6)<=a(3);b(5)<=a(2);b(4)<=a(1);b(3)<=a(0);b(2)<=a(3) xor a(2) xor a(1)

35、;b(1)<=a(3) xor a(2) xor a(0);b(0)<=a(3) xor a(1) xor a(0);end;(7,4)汉明码的译码程序:library ieee;use ieee.std_logic_1164.all;entity ym isport(a:in std_logic_vector(6 downto 0);     s:out std_logic_vector(2 downto 0);     b:out std_logic_vector(3 downto 0); 

36、;    c:out std_logic_vector(2 downto 0);end ;architecture one of ym isbeginprocess(a)variable ss:std_logic_vector(2 downto 0);variable bb:std_logic_vector(6 downto 0);beginss(2):=a(6) xor a(5) xor a(4) xor a(2);ss(1):=a(6) xor a(5) xor a(3) xor a(1);ss(0):=a(6) xor a(4) xor a(3) xor a

37、(0);bb:=a;if ss> "000"   thencase ss iswhen "001" =>bb(0):= not bb(0);c<="000"when "010" =>bb(1):= not bb(1);c<="001"when "100" =>bb(2):=not bb(2);c<="010"when "011" =>bb(3):=not bb(3);c

38、<="011"when "101" =>bb(4):=not bb(4);c<="100"when "110" =>bb(5):=not bb(5);c<="101"when "111" =>bb(6):=not bb(6);c<="110"when others => null;c<="111"end case;else b<= a(6)&a(5)&a(4)&

39、amp;a(3);end if;s<=ss;b<=bb(6)&bb(5)&bb(4)&bb(3);end process;end;四编译结果及分析编译结果:图1(7,4)汉明码的编码程序的仿真在max+plus 采用波形编辑器:先建立一个仿真通道文件bm·scf,如下图示:图二编辑的wdf文件如图所示:图三编译结果如下:图四(7,4)汉明码的编码程序的编译和仿真分析 按照上述编码程序的编写思路,编写好程序,点击,进行编译,出现一些错误,列举如下:图五Error 1表明在使用"std_logic_vector"时,没有打开可以使用这个函数的库,应该在程序的最前

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论