分享
分销 收藏 举报 申诉 / 17
播放页_导航下方通栏广告

类型学位论文-—hdb3编码器的设计.doc

  • 上传人:天****
  • 文档编号:2170451
  • 上传时间:2024-05-21
  • 格式:DOC
  • 页数:17
  • 大小:234KB
  • 下载积分:8 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    学位 论文 hdb3 编码器 设计
    资源描述:
    湖南文理学院课程设计报告 课程名称: HDB3编码器设计 系 部: 电气与信息工程学院 专业班级:        学生姓名:      指导教师:      完成时间:          报告成绩: 评阅意见: 评阅教师 日期 目 录 目 录 1 一、系统设计 2 1.1 课题目标及总体方案 2 1.2 HDB3码简介 3 1.2.1 数字基带信号 3 1.2.2 NRZ,AMI,HDB3码之间的对应关系 3 1.2.3 HDB3码的编码规则 4 二、软件模块设计 5 2.1 Quartus Ⅱ简介 5 2.2 整体系统实现方法 5 2.3 插“V”模块的实现 6 2.4 插“B”模块的实现 7 2.5 单双极性变换模块的实现 8 三、实验结果及讨论 10 四、心得体会 11 五、参考文献 12 六、附 录 13 6.1 实验源程序及注释 13 一、系统设计 1.1 课题目标及总体方案 数字基带信号的传输是数字通信系统的重要组成部分。在数字通信中,有些场合可不经过载波调制和解调过程,而对基带信号进行直接传输。采用AMI码的信号交替反转,有可能出现四连零现象,这不利于接收端的定时信号提取。而HDB3码因其无直流成份、低频成份少和连0个数最多不超过三个等特点,而对定时信号的恢复十分有利。针对数字基带传输系统中HDB3信号的特点,采用基于CPLD/FPGA的Verilog HDL语言,在QuartusⅡ的环境中,实现HDB3数字基带信号的编码器设计。 总体设计流程图如下图1: 仿真不通过 回顾VerilogHDL语言设计 分析HDB3码编码器功能 确定设计方案 应用VHDL进行编程 对系统仿真测试、选择合适芯片并定义管脚 系统功能的硬件测试 调试达到要求、完成设计 图1 总体设计流程图 1.2 HDB3码简介 1.2.1 数字基带信号 数字基带信号的传输是数字通信系统的重要组成部分之一。在数字通信中,有些场合可不经过载波调制和解调过程,而对基带信号进行直接传输。为使基带信号能适合在基带信道中传输,通常要经过基带信号变化,这种变化过程事实上就是编码过程。于是,出现了各种各样常用码型。不同码型有不同的特点和不同的用途。 作为传输用的基带信号归纳起来有如下要求:1 希望将原始信息符号编制成适合与传输用的码型;2 对所选码型的电波形,希望它适宜在信道中传输。可进行基带传输的码型较多。 1、 AMI码 AMI码称为传号交替反转码。其编码规则为代码中的0仍为传输码0,而把代码中1交替地变化为传输码的+1-1+1-1,、、、。 举例如下。 消息代码:0 1 1 1 0 0 1 0 、、、 AMI 码:0 +1 -1 +1 0 0 -1 0 、、、或 0 -1 +1 -1 0 0 +1 0 、、、 AMI码的特点: (1) 无直流成分且低频成分很小,因而在信道传输中不易造成信号失真。 (2) 编码电路简单,便于观察误码状况。 (3) 由于它可能出现长的连0串,因而不利于接受端的定时信号的提取。 2、 HDB3码 这种码型在数字通信中用得很多,HDB3码是AMI码的改进型,称为三阶高密度双极性码。它克服了AMI码的长连0传现象。 1.2.2 NRZ,AMI,HDB3码之间的对应关系 假设信息码为0000 0110 0001 0000,对应的NRZ码、AMI码,HDB3码如下图2所示。 图2 HDB3波形图 1.2.3 HDB3码的编码规则 HDB3码的编码规则: (1) 将消息代码变换成AMI码; (2) 检查AMI码中的连0情况,当无4个以上的连0传时,则保持AMI的形式不变;若出现4个或4个以上连0时,则将1后的第4个0变为与前一非0符号(+1或-1)同极性的符号,用V表示(+1记为+V,-1记为-V (3) 检查相邻V符号间的非0符号的个数是否为偶数,若为偶数,则再将当前的V符号的前一非0符号后的第1个0变为+B或-B符号,且B的极性与前一非0符号的极性相反,并使后面的非0符号从V符号开始再交替变化。 举例如下: 代码 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 HDB3码 +1 0 -1 0 +1 -1 0 0 0 -1 0 +1 -1 +1 0 0 +1 -1 V、B -V +B +V HDB3码的特点如下: (1) 基带信号无直流成分,且只有很小的低频成分; (2) 连0串符号最多只有3个,利于定时信息的提取; (3) 不受信源统计特性的影响。 二、软件模块设计 2.1 Quartus Ⅱ简介 Quartus II 是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。    Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。    Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。    此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。    Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。    Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。 2.2 整体系统实现方法 HDB3码编码器模型如图3所示: 图3 HDB3码编码器模型 HDB3码 代码输入 输输入               插“V” 插“B” 单/双极性变换 整个HDB3编码器主要包含3个功能部分:插“V”、插“B”和单极性码转变成双极性码。各部分之间采用同步时钟作用,并且带有一个异步的复位(清零)端口。下面将详细介绍各个部分的设计流程。 除以上3个编码功能模块外,还有顶层主函数模块(包含分频)及信号产生模块(本程序选用m序列),在此不再赘述,详见附录源程序。 2.3 插“V”模块的实现  插“V”模块的功能实际上就是对消息代码里的四连0串的检测即当出现四个连0串的时候,把第四个“0”变换成为符号“V”(“V”可以是逻辑“1”——高电平),而在其他情况下,则保持消息代码的原样输出。同时为了减少后面工作的麻烦,在进行插“V”时,用“11”标识它,“1”用“01”标识,“0”用“00”标识。 插“V”符号的设计思想很简单:首先判断输入的代码是什么(用一个条件语句判断),如果输入的是“0”码,则接着判断这是第几个“0”码,则把这一位码元变换成为“V”码。在其他条件下,让原代码照常输出。插“V”模块的程序框图如图4所示。 图4 插“V”模块的程序框图 2.4 插“B”模块的实现 插“B”模块的功能是保证附加“V”符号后的序列不破坏“极性交替反转”造成的无直流特性,即当相邻“V”符号之间有偶数个非0符号的时候,把后一小段的第1个“0”变换成一个非破坏符号——“B”符号。插“B”模块的程序框图如图5。 图5 插“B”模块的程序框图 2.5 单双极性变换模块的实现 根据HDB3的编码规则,我们可以知道,“V”的极性是正负交替的,余下的“1”和“B”看成一体且是正负交替的,同时满足“V”的极性与前面的非零码极性一致。由此我们可以将其分别进行极性变换来实现。从前面的程序知道,“V”、“B”、“1”已经分别用双相码“11”、“10”、“01”标识,“0”用“00”标识,所以通过以下的程序可以很容易实现。如下图6为实现极性变换功能的流程图。 图6 实现极性变换功能的流程图 “01”:标识为+1; “11”:标识为-1; “B”符号的极性与前一非零符号相反,“V”极性符号与前一非零符号一致。因此将“V”单独拿出来进行极性变换(由前面已知“V”已经由“11”标识,所以很好与其他的代码区别),余下的“1”和“B”看成一体进行正负交替,这样就完成了HDB3的编码。 三、实验结果及讨论 经过多次的排查和修改,以及总结,使用编译器编译,编译器提示编译文件正确,再下载到EPM240T100C5芯片中进行调试,示波器显示波形与仿真波形一致,达到了本次课设设计的目标。 Quartus Ⅱ软件仿真波形如下图7: 图7 系统仿真波形图 输出为4位,高2位为符号位(01=+1 11=-1 00=0),低2位为数值位(00=0 01=1 11=v 10=B) 上图中code_out是十进制显示,例如“7”,即“0111”,实则“+V”。 四、心得体会 分频的时候分的尽量大一些,我们的是2的8次方分频,导致的结果是仿真的时候需要设定很大的时间,也就导致了仿真时间的加长。 此次专业综合课程设计,让我受益匪浅。课设之初,我们认真查找、学习了关于HDB3编译码和Quartus Ⅱ软件的资料和文献作为课程设计的知识储备。经过自己的努力,在老师耐心细致的指导和同学的帮助下,我顺利完成了课程设计,也掌握了专业综合系统设计的基本方法,达到了预期的目的。 本次课程设计是为了培养我们的动手能力,学好专业知识,光满足于课本是不够的。正所谓“纸上得来终觉浅,绝知此事要躬行”,实践才能出真知。我体会到成功就是在不断摸索着前进中实现的,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步,才会一步步向自己的目标靠近,才会取得自己所要追求的成功。另外,我要感谢学院给了我这次学习和研究的机会,我还要感谢王立老师的悉心辅导和同学的帮助,我学到了很多东西,感受颇深。有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,解决不了的问题。除此之外,我也发现了自己的不足,语言表达能力还不够强,编程能力还不足,有些预先的想法都未能实现。我相信通过查阅相关资料,不断开阔眼界,并在以后的实践中不断磨练自己,能力一定会有提高。 五、参考文献 [l] 通信原理.樊昌信,曹丽娜.国防工业出版社,2007 [2] Altera CPLD MAXII240_570学习板使用指南 [3] 段吉海,黄智伟.基于CPLD/FPGA的数字通信系统建模与设计.电子工业出版社,2004 [4] 肖明波译.通信系统仿真原理与无线应用.机械工业出版社.2005 六、附 录 6.1 实验源程序及注释 //V模块程序 输出与输入之间关系 :01=1 11=v 00=0 module insert_v(clk,code_in,code_out); input clk,code_in; output code_out; reg [1:0] code_out; reg [2:0] count=0; //记录0的个数 always@(posedge clk) begin if(code_in==0) begin count<=count+1; if(count==3) //连续出现4个0,输出为V,并清零count begin code_out<='b11; count<=0; end else code_out<='b00; end else if(code_in==1) begin code_out<='b01; count<=0; end else code_out<='b00; end endmodule //B模块程序 输出与输入之间关系 :00=0 01=1 11=v 10=B module insert_B(clk,code_in,code_out); input clk; input [1:0] code_in; //B模块的输入为V模块的输出 output [1:0] code_out; //B模块的输出为两位 reg [1:0] code_out; reg count=0; //count记录两次000V之间1的个数的奇偶,若为奇数个,不变,否则变为B00V reg [1:0] s1=0,s2=0,s3=0; //移位寄存器 reg firstV=0; //表示是否出现了000V always@(posedge clk ) begin s1<=code_in; //每次在时钟上升沿的时候以为移位寄存器移一位 s2<=s1; s3<=s2; if(code_in=='b00) //输入为0,输出不变 code_out<=s3; else if(code_in=='b01) //输入为1,输出不变,奇偶改变 begin count<=count+1; code_out<=s3; end else if(code_in=='b11) //输入为V begin if(firstV==0) //判断之前是否出现了000V begin firstV<=1; //没出现,则输出不变,并记录此次V code_out<=s3; end else begin //之前出现了000V,判断出现1的奇偶性 if(count==0) code_out<='b10; //1的个数为偶数,输出B,否则输出不变 else begin count<=0; code_out<=s3; end end end else code_out<='b00; end endmodule //单双极性变换模块:01=+1 11=-1 00=0 module polarity(clk,code_in,code_out); input clk; input [1:0] code_in; //输入为B模块的输出 output [3:0] code_out; //输出为4位,高两位表示极性 reg [3:0] code_out; reg flag; //判断是否需要极性转换 always@(posedge clk) begin if(code_in=='b00) //输入为0码时,则输出信号为0000 code_out<={2'b00,code_in}; else if(code_in=='b11) //输入为V时,flag不变,即极性不变 begin if(flag==1) code_out<={2'b11,code_in}; else code_out<={2'b01,code_in}; end else if(code_in=='b01||code_in=='b10) //输入为1或B码时,flag3取反,即极性改变 begin if(flag==1) begin code_out<={2'b01,code_in}; flag<=0; end else begin code_out<={2'b11,code_in}; flag<=1; end end else code_out<='b0000; end endmodule //伪随机序列发生模块 module random (clk, code_r_out); input clk; output code_r_out; reg code_r_out; reg[5:0] m; initial begin m <= 6'b100000; end always @(posedge clk) begin m[4:0] <= m[5:1] ; m[5] <= m[1] ^ m[0] ; code_r_out <= m[0] ; end endmodule //主模块 module top(clk,code_out); input clk; reg clk128; reg[7:0] temp; always @(posedge clk) begin temp <= temp + 1; clk128 <= temp[7]; end output [3:0] code_out; wire code_r_out; wire [1:0] code_v_out,code_B_out; random r(.clk(clk128),.code_r_out(code_r_out)); insert_v v(.clk(clk128),.code_in(code_r_out),.code_out(code_v_out)); insert_B B(.clk(clk128),.code_in(code_v_out),.code_out(code_B_out)); polarity p(.clk(clk128),.code_in(code_B_out),.code_out(code_out)); endmodule 16
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:学位论文-—hdb3编码器的设计.doc
    链接地址:https://www.zixin.com.cn/doc/2170451.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork