通信原理设计报告(7-4)汉明码的编解码设计_第1页
通信原理设计报告(7-4)汉明码的编解码设计_第2页
通信原理设计报告(7-4)汉明码的编解码设计_第3页
通信原理设计报告(7-4)汉明码的编解码设计_第4页
通信原理设计报告(7-4)汉明码的编解码设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

通信系统课程设计报告 第 1 页 共 22 页 目录 前 言 1 第 1 章 设计要 求 3 第 2 章 Quartus 软件介 绍 4 第 3 章 汉明码的构造原 理 6 3 1 7 4 汉明码的构造原 理 6 3 2 监督矩阵 H 与生成矩阵 G 7 3 3 校正子 伴随式 S 8 第 4 章 7 4 汉明码编码器的设 计 10 4 1 7 4 汉明码的编码原理及方 法 10 4 2 7 4 汉明码编码程序的设 计 10 4 3 7 4 汉明码编码程序的编译及仿 真 11 通信系统课程设计报告 第 2 页 共 22 页 第 5 章 7 4 汉明码译码器的设 计 12 5 1 7 4 汉明码的译码方 法 12 5 2 7 4 汉明码译码程序的设 计 13 5 3 7 4 汉明码译码程序的编译及仿 真 15 第 6 章 7 4 汉明码编译码器的设 计 17 6 1 7 4 汉明码编译码器的设 计 17 参考文 献 18 体会与建 议 19 附 录 20 前 言 汉明 Hamming 码是一种能够纠正一位错码或检测两位错码的一种效率较 通信系统课程设计报告 第 3 页 共 22 页 高的线性分组码 本次课程设计的任务就是利用 EDA 技术在 Quartus II 软件下 用 VHDL 语言实现 7 4 汉明码的编译码的设计和仿真 从而进一步加深对汉 明码编译码原理的理解 EDA Electronic Design Automation 技术是随着集成电路和计算机技术 飞速发展应运而生的一种高级 快速 有效的电子设计自动化工具 目前 VHDL 语言已经成为 EDA 的关键技术之一 VHDL 是一种全方位的硬件描述语言 具有极强的描述能力 能支持系统行为级 寄存器传输级和逻辑门级三个不同 层次的设计 支持结构 数据流 行为三种描述形式的混合描述 覆盖面广 抽象能力 因此在实际应用中越来越广泛 VHDL 语言具有功能强大的语言结构 可用明确的代码描述复杂的控制逻辑 设计 并且具有多层次的设计描述功能 支持设计库和可重复使用的元件的生 成 近几十年来 EDA 技术获得了飞速的发展 它以计算机为平台 根据硬件 描述语言 VHDL 自动地完成逻辑编译 化简分割 综合及优化 布局布线 仿 真直至对特定目标芯片的适配编译 逻辑映射和编程下载等工作 以自顶向下 的设计方法 使硬件设计软件化 摆脱了传统手工设计的众多缺点 随着 EDA 技术的深入发展 基于硬件描述语言的方法将由取代传统手工设计方法的趋势 第 1 章 设计要求 通信系统课程设计报告 第 4 页 共 22 页 1 采用 VHDL 语言输入法进行设计 2 根据 7 4 汉明码的编解码原理 确定编解码器具体设计方案 3 画出 7 4 汉明码的编解码的程序设计流程图 4 编写 VHDL 源程序 调试及仿真时序波形 第 2 章Quartus 软件介绍 Quartus Quartus 软件软件 通信系统课程设计报告 第 5 页 共 22 页 Quartus 是 Altera 公司推出的 CPLD FPGA 的开发工具 Quartus 提供了 完全集成且于电路结构无关的开发环境 具有数字逻辑设计的全部特性 Quartus 设计软件提供完整的多平台设计环境 可以很轻松地满足特定设 计的需要 它是可编程片上系统 SOPC 设计的综合性环境 拥有 FPGA 和 CPLD 设计的所有阶段的解决方案 与其他 EDA 软件相比较 Quartus 软件的 主要特点包括 可利用原理图 结构框图 VerilogHDL AHDL 和 VHDL 完成电路描述 并 将其保存为设计实体文件 芯片 电路 平面布局连线编辑 LogicLock 增量设计方法 用户建立并优化系统 然后添加对原始系统的 性能影响较小或无影响的后续模块 功能强大的逻辑综合工具 完备的电路功能仿真与时序逻辑分析 定时 时序分析与关键路径延时分析 可使用 SignalTap 逻辑分析工具进行嵌入式的逻辑分析 支持软件源文件的添加和创建 并将它们链接起来生成编程文件 使用组合编译方式可一次完成整体设计流程 自动定位编译错误 高效的器件编程与验证工具 可读入标准的 EDIF 网表文件 VHDL 网表文件和 Verilog 网表文件 能生成第三方 EDA 软件使用的 VHDL 网表文件和 Verilog 网表文件 VHDLVHDL 语言语言 VHDL 语言主要用于描述数字系统的结构 行为 功能和接口 除了含有许 多具有硬件特征的语句外 VHDL 的语言形式和描述风格与句法是十分类似于一 般的计算机高级语言 VHDL 的程序结构特点是将一项工程设计 或称设计实体 可以是一个元件 一个电路模块或一个系统 分成外部 或称可视部分 和内 部 或称不可视部分 既涉及实体的内部功能和算法完成部分 在对一个设计 通信系统课程设计报告 第 6 页 共 22 页 实体定义了外部界面后 一旦其内部开发完成后 其他的设计就可以直接调用 这个实体 这种将设计实体分成内外部分的概念是 VHDL 系统设计的基本点 应 用 VHDL 进行工程设计的优点如下几点 1 与其他的硬件描述语言相比 VHDL 具有更强的行为描述能力 从而决 定了他成为系统设计领域最佳的硬件描述语言 强大的行为描述能力是避开具 体的器件结构 从逻辑行为上描述和设计大规模电子系统的重要保证 2 VHDL 丰富的仿真语句和库函数 使得在任何大系统的设计早期就能查 验设计系统的功能可行性 随时可对设计进行仿真模拟 3 VHDL 语句的行为描述能力和程序结构决定了他具有支持大规模设计的 分解和已有设计的再利用功能 符合市场需求的大规模系统高效 高速的完成 必须有多人甚至多个代发组共同并行工作才能实现 4 对于用 VHDL 完成的一个确定的设计 可以利用 EDA 工具进行逻辑综合 和优化 并自动的把 VHDL 描述设计转变成门级网表 5 VHDL 对设计的描述具有相对独立性 设计者可以不懂硬件的结构 也 不必管理最终设计实现的目标器件是什么 而进行独立的设计 第 3 章 7 4 汉明码的构造原理 通信系统课程设计报告 第 7 页 共 22 页 3 1 汉明码的构造原理 线性分组码是一类重要的纠错码 应用很广泛 在 n k 分组码中 若监督码元是按线性关系模 2 相加而得到的 则称其为线性分组码 现在以 7 4 分组码为例来说明线性分组码的特点 设其码字为 A 6 a 前 4 位是信息元 后 3 位是监督元 可用下列线性方程组 012345 aaaaaa 来描述该分组码产生监督元 式 3 1 显然 这 3 个方程是线性无关的 代入上述公式可得 7 4 码的全部码组 如表 1 所示 表表 1 7 4 汉明码的全部码组 汉明码的全部码组 信息位信息位 a6 a5 a4 a3 监督位监督位 a2 a1 a0 信息位信息位 a6 a5 a4 a3 监督位监督位 a2 a1 a0 00000001000111 00010111001100 00101011010010 00111101011001 01001101100001 01011011101010 01100111110100 01110001111111 由上表可知 7 4 汉明码的最小码距 3 它能纠 1 位错或检 2 位错 0 d 3460 3561 4562 aaaa aaaa aaaa 通信系统课程设计报告 第 8 页 共 22 页 由此可见 汉明码是能够纠正单个错误的线性分组码 其特点是 最小码距 3 码长 n 与监督位 r 满足关系式 说明上述所说的 7 4 线 0 dn r 12 性分组码就是汉明码 同时 由于码率 故当很大和nrnrnnk 1 n 很小时 码率接近 1 可见 汉明码是一种高效码 r 3 2 监督矩阵 H H 和生成矩阵 G G 监督矩阵监督矩阵 H H 式 3 1 所示的 7 4 汉明码的监督方程可以改写为 0 2456 aaaa 式 3 2 1 0 1356 aaaa 0 0346 aaaa 用矩阵的形式可以将上式表示为 式 3 2 2 并简记为 或 TT AH0 0 AH T 其中 H 成为监督矩阵 只要 H 给定 信息位和监督位的关系也就随即确 定下来了 H 的行数就是监督矩阵的数目 等于监督数目 r H 序列可分为两部 分 式 3 2 3 其中 P 为阶矩阵 为阶单位阵 kr r Irr 6 5 4 3 2 1 0 11101000 11010100 10110010 a a a a a a a r PIH 0011011 0101101 1001110 通信系统课程设计报告 第 9 页 共 22 页 因为 所以可以用这个关系式来作为判断接收码字 A 是否出错0 AH T 的依据 若 则说明码字 A 有错 反之则说明码字 A 无错 0 AH T 生成矩阵生成矩阵 G G 若将 3 2 1 式 的监督方程补充完整并写成矩阵的形式 式 3 2 4 即 A G G M 6 a 345 aaa 上式中 G 式 3 2 5 011 0001 101 0010 110 0100 111 1000 G 成为生成矩阵 根据式 3 2 4 知 由 G 和信息码就能产生所有码字 生成矩 阵也可分为两部分 即 G 式 3 2 6 QIk 上式中 Q 式 3 2 7 T P 011 101 110 111 Q 为阶矩阵 为阶单位阵 rk k Ik 3 3 校正子 伴随式 S S 6 5 6 4 5 3 4 2 3 1 0 1000 0100 0010 0001 1110 1101 1011 a a a a a a a a a a a 通信系统课程设计报告 第 10 页 共 22 页 设一发送码组 A 在传输的过程中可能发生误码 接受码组 0121 aaaa nn B 收发码组之差定义为错误图样 E 0121 bbbb nn E B AE B A 式 3 3 1 其中 E 令 S 称为校正子 伴随式 0121 eeee nn T HB 式 3 3 2 TTT HEHEAHBS 可见 校正子 S 与错误图样 E 之间由确定的线性变换关系 7 4 汉明码的校正子和错误图样之间的对应关系如表 2 所示 表表2 2 7 4 7 4 汉明码汉明码S S 与与E E 对应关系对应关系 错误图样错误图样E E校正子校正子S S 错误码位错误码位 6 e 5 e 4 e 3 e 2 e 1 e 0 e 012 SSS 错误位置错误位置C C 0 b 0 0 0 0 0 0 10 0 10 1 b 0 0 0 0 0 1 00 1 01 2 b 0 0 0 0 1 0 01 0 02 3 b 0 0 0 1 0 0 00 1 13 4 b 0 0 1 0 0 0 01 0 14 5 b 0 1 0 0 0 0 01 1 05 6 b 1 0 0 0 0 0 01 1 16 无错 0 0 0 0 0 0 00 0 07 由上表可知 当 S 001 时 则出错在 0 位 即 b0 出错 当 S 010 时 则出错在 1 位 即 b1 出错 当 S 100 时 则出错在 2 位 即 b2 出错 当 S 011 时 则出错在 3 位 即 b3 出错 当 S 101 时 则出错在 4 位 即 b4 出错 当 S 110 时 则出错在 5 位 即 b5 出错 通信系统课程设计报告 第 11 页 共 22 页 当 S 111 时 则出错在 6 位 即 b6 出错 当 S 000 时 则无错 第 4 章 7 4 汉明码编码器的设计 4 1 7 4 汉明码编码方法 7 4 汉明码的编码就是将输入的 4 位信息码 M 加上 3 位监督 3456 aaaa 码从而编成 7 位汉明码 编码输出 B 012 bbb 6 a 012345 aaaaaa 6 a 5 a 4 a 3 a 由式 A M G G 可知 信息码 M 与生成矩阵 G 的乘 2 a 1 a 0 a 3456 aaaa 积就 是编好以后的 7 4 汉明码 4 2 7 4 汉明码编码程序设计 根据 7 4 汉明码的编码原理 由于输入的是 4 位的信息码 M 0123 aaaa 输出的是 7 位的 7 4 汉明码 B 所以定义 4 位输入信 6 a 012345 aaaaaa 息码 的语句为 port datain in std logic vector 3 downto 0 0123 aaaa 编码输出的语句为 port b out std logic vector 6 downto 0 再根据 式 3 1 即可得到监督位与信息码之间的对应关系 编码输出的 表示语句可写成如下形式 b 2 a 3 XOR a 2 XOR a 1 b 1 a 3 XOR a 2 XOR a 0 b 0 a 3 XOR a 1 XOR a 0 最后将上式计算所得的监督位和输入的信息位一起输出 则此次编码就算完成 了 7 4 汉明码的编码源程序见下文附录 通信系统课程设计报告 第 12 页 共 22 页 编码流程图及打包生成的分立元件编码流程图及打包生成的分立元件 编码程序的设计流程图 开始 输入信息码 a3a2a1a0 编出监督位 b2b1b0 输出 7 4 汉明 码 b6b5b4b3b2b1b0 结束 4 3 7 4 汉明码编码程序的编译及仿真 用 QuartusII 进行编译仿真 在编译没有出错的的情况下选择新建波形文 件 根据程序验证的需要设置波形 即设置好输入信息码的初始值 0123 aaaa 点击 波形仿真 出现如下波形 7 4 7 4 汉明码的编码仿真波形汉明码的编码仿真波形 编码器分立元件 通信系统课程设计报告 第 13 页 共 22 页 从上图的波形中可以看出 datain 输入 4 位信息码 0000 1111 分别对 应编码输出为 b 输出了对应的 7 位 7 4 汉明码 对照表 1 汉明码全部码 字 可见本次 7 4 汉明码编码的正确性 第 5 章 7 4 汉明码的译码器的设计 5 1 7 4 汉明码译码方法 7 4 汉明码的译码器的功能就是把输入的 7 位汉明码 B 23456 bbbbb 01b b 译为 4 位信息码 并且根据伴随矩阵 S 从而纠正编码中可能出现的 1 3 a 2 a 1 a 0 a 位错码 根据监督矩阵 H H 和生成矩阵 G G 的关系 即 H H 其中是的单位阵 P r I r I33 G G 其中 是的单位阵 k IQ k I44 式 5 1 1 T QP 生成矩阵 G 由式 5 1 1 得 P 011 0001 101 0010 110 0100 111 1000 QIk 1011 1101 1110 监督矩阵 由式 3 3 2 知 其中 E TTT HEHEAHBS 0121 eeee nn 从而即可得到校正子 S 与 7 4 汉明码各位之间的关系 24562 aaaaS 13561 aaaaS 03460 aaaaS r PIH 0011011 0101101 1001110 通信系统课程设计报告 第 14 页 共 22 页 算出校正子 S 后 对照表 2 即可判断出哪位出错 并纠正出错的那 012 SSS 位 从而输出正确的码字 5 2 7 4 汉明码译码程序的设计 根据前面分析的译码原理 由于译码器的输入为 7 位汉明码 B 23456 bbbbb 01b b 输出是 4 位信息码 并且同时输出校正子 S 与错误的码位 C 可得 0123 aaaa 译码器的 7 为汉明码输入语句 port b in std logic vector 6 downto 0 译码器的信息码输出语句 port a out std logic vector 3 downto 0 译码器的校正子输出语句 port s out std logic vector 2 downto 0 译码器的错码位置输出语句 port c out std logic vector 2 downto 0 译码器的校正子 S 与 7 4 汉明码各位之间的关系语句 sss 2 b 6 XOR b 5 XOR b 4 XOR b 2 sss 1 b 6 XOR b 5 XOR b 3 XOR b 1 sss 0 b 6 XOR b 4 XOR b 3 XOR b 0 判定校正子 S 与 0 的关系 可以使用 if 语句 如果 S 为 0 则表示没有 错误 如果 S 不为 0 则表示有一位出错 然后根据表 2 可以得到校正子 S 与 错误图样 E 之间的关系 再使用 case 语句 编写如下程序 when 001 bb 0 not bb 0 cbb 1 not bb 1 cbb 2 not bb 2 cbb 3 not bb 3 cbb 4 not bb 4 cbb 5 not bb 5 cbb 6 not bb 6 c 110 通信系统课程设计报告 第 15 页 共 22 页 在上述程序中 bb sss 是设置的变量 bb 存放的是译码器的 7 位汉明码输 入 当 S 001 时 表示出错 则只要将这一位的值取反 然 23456 bbbbb 01b b 0 b 后再送给输出 就可以纠正错码了 的纠错原理同 0 b 654321 bbbbbb 0 b 程序最后的译码输出表示为 a bb 6 在程序中 C 表示错误在哪一位 若第 0 位 出错 则 C 输出 0 若 0 a 第 1 位出错 则 C 输出 1 若无错 则 C 输出 7 这样译码程序就可以 编出来了 译码源程序见附录 译码流程图及打包生成的分立元件译码流程图及打包生成的分立元件 译码程序设计的流程图 开始 译码输入七位码 b6b5b4b3b2b1b0 根据输入求 出校正子 校正子 S 0 输出四位信息码 a3a2a1a0 结束 根据 S 与 E 的关 系纠正错码 N Y 译码器分立元件 通信系统课程设计报告 第 16 页 共 22 页 5 3 7 4 汉明码译码程序的编译及仿真 编好程序后 用 QuartusII 软件进行编译仿真 设置好输入的 7 位汉明码 为 根据输入求出校正子 S 判断 S 是否为零 若为 0 则说明 23456 bbbbb 01b b 无错 直接输出 若不为 0 则根据 S 与 E 的对应关系判断出出错的那位并纠正之 然后输出纠正后的码字 7 4 7 4 汉明码的译码仿真波形汉明码的译码仿真波形 在以上波形中可见 a 为译码输入 输入 7 位信息码 分别对应译码输出 的 b 输出了对应的 4 位信息码 对照表 1 可以验证 7 4 汉明码的译码结果 是否正确 并且在输入码有单个错码的情况下能纠正错码 纠错情况对应表 2 如波形图中输入 a 为 输出 b 为 0000 并且校正子 s 为 111 错码位置 c 为 6 表示错码为 b6 如波形图中输入 a 为 输出 b 为 0000 并且校正子 S 为 000 错码位置 C 为 7 表示无错 译码器的输入输出情况如下表所示 通信系统课程设计报告 第 17 页 共 22 页 表表3 3 7 7 4 4 汉明码译码输入 输出对应关系 汉明码译码输入 输出对应关系 译码输入译码输入译码输出译码输出校正子校正子 S S错码位置错码位置 序号序号 23456 bbbbb 01b b 0123 aaaa 012 SSS 错误码位错误码位 C 00000010 1 b 1 10001100 2 b 2 20010000 无错 7 30011000 无错 7 40100011 3 b3 50101011 3 b3 60110100 5 b5 70111000 无错 7 81000000 无错 7 91001001 0 b0 101010010 1 b 1 111011100 2 b 2 121100011 3 b3 131101101 4 b 4 通信系统课程设计报告 第 18 页 共 22 页 141110110 5 b5 151111111 6 b6 第 6 章 7 4 汉明码的编译码器的设计 6 1 7 4 汉明码编译码器的设计 在编码程序和译码程序都验证结果正确以后 为了将编码和译码结合起来 将编码的输出结果送到译码器的输入端 然后由译码器将 7 位输入的汉明码译 成 4 位的信息码 分别对编译码两个程序进行打包 生成编码和译码的打包分 立元器件 然后进行连线 形成如下图所示的编译码顶层文件图 输入端输入的 datain 3 0 经过编码后形成 7 4 汉明码的全部码字 b 6 0 然后将 b 6 0 作为译码器的输入 经译码器输出为 b 3 0 n 2 0 和 s 2 0 b 3 0 的波形结果应该和 datain 3 0 的波形结果一致 则说明整 个编译码过程是正确的 通信系统课程设计报告 第 19 页 共 22 页 参考文献 1 通信原理 樊昌信 曹丽娜 国防工业出版社 2006 2 现代通信实验系统的计算机仿真 陈萍 国防工业出版社 2005 通信系统课程设计报告 第 20 页 共 22 页 体会与建议 历时 2 周的通信系统课程设计圆满结束了 体会和收获颇多 这次课程设计我做的是 7 4 汉明码的编

温馨提示

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

评论

0/150

提交评论