hdb3编译码器仿真设计程序
通信原理HDB3编码与译码课程设计
课程设计I(数据通信原理)设计说明书HDB3编码与译码的设计与仿真学生姓名赵嘉伟学号1318064006班级网络工程1301班成绩指导教师贾伟数学与计算机科学学院2015年 9 月 12 日课程设计任务书2015—2016学年第1 学期课程设计名称:课程设计Ⅱ课程设计题目:HDB3编码与译码的设计与仿真完成期限:自2015 年8 月11 日至2015年9 月11 日共 2 周设计内容:一、任务说明1.使用Matlab/Simulink仿真软件。
2.设计所选择的基带传输的编码和译码系统。
3.系统能根据随机信源输入的二进制信息序列给出对应的编码及译码结果,并以图形化的方式显示出波形。
4.能观察各分系统的各级波形。
二、要求1)对课本知识的全面复习,了解基带编码与译码原理;2)掌握使用matlab语言及其工具箱进行基本信号分析与处理的方法。
3)用matlab和simulink设计一个通信系统,加深对通信原理基本原理和matlab应用技术的理解;4)对MATLAB仿真软件的学习,能够使用该工具进行基带编码和译码的仿真验证;5)通过团队合作,完成编码与译码的设计,并用MATLAB软件进行仿真验证;6)课程设计的结果全面正确,功能模块清晰分明;7)加强团队合作精神,开拓创新能力;8)文档资料完整规范。
指导教师:教研室负责人:课程设计评阅本课程设计是应用MATLAB软件,实现对信源的HDB3编码及译码的仿真。
设计采用MATLAB中Simulink下的模块实现对信源码的V码及加B码,然后再采用AMI编码方式实现最终的HDB3编码。
之后再按照逆推的思想来实现HDB3码的译码工作。
关键词:MATLAB;HDB3;V码;B码;编码;译码1.课题设计的内容 (1)1.1数字基带信号码型设计原则 (1)1.2编码原理 (2)1.3译码原理 (2)2.课程设计的目的与要求 (4)2.1课程设计的目的 (4)2.2课程设计的要求 (4)3. HDB3 编码模块设计 (5)3.1编码原理 (5)3.2四个连“0”的判断 (5)3.3“B”码产生器 (6)3.4“ V ”码产生器 (7)3.5AMI 码编码器 (8)4.HDB3 译码模块设计 (10)5. HDB3编译码的仿真及结果 (11)5.1仿真系统中模块参数设置: (11)5.2仿真实验结果 (14)6.总结 (16)参考文献 (16)1.课题设计的内容1.1数字基带信号码型设计原则数字基带信号是数字信息的电脉冲表示,电脉冲的形式称为码型。
基于FPGA的HDB3码的编译码器与译码器设计(软件设计)
昆明学院2013 届毕业论文(设计)论文(设计)题目基于FPGA的HDB3码的编码器与译码器设计(软件设计)子课题题目姓名周艳学号 7所属院系自动控制与机械工程学院专业年级 2010级通信技术1班指导教师任杰2013年 5月摘要HDB3码是基带传输码型之一,因为它具有无直流分量、低频分量少、连0数不超过3个这些特点,所以有利于信号的恢复和检验,所以HDB3码被广泛应用到井下电缆遥传系统以及高速长距离书记通信中等。
FPGA具有成本低、可靠性高、开发周期短、可重复编程等特点。
利用EDA技术,可对其实现硬件设计软件化,加速了数字系统设计的效率,降低了设计成本。
本文先对HDB3码,FPGA器件和EDA技术的发展背景进行简述。
接着阐述EDA技术中常用的VHDL语言的发展与优点,并以VHDL为核心,简要说明硬件电路的设计的方法步骤。
然后介绍HDB3码的编译码原理以及其特点。
最后,对HDB3码的编译原理进行重点分析,并且以VHDL语言为主,分别对编码器部分和译码器部分的具体实现方法进行说明,给出具体设计的思考方案和程序流程图,并对设计方案进行软件仿真,同时给出仿真结果并对其进行分析,证明设计方案的正确性。
关键词:HDB3码;FPGA;EDA;VHDL;编译码AbstractHDB3 code is one of codes used in the transmission system. It has no DC components and a few of LF components. Moreover, it has continuous zeros no more than three. The features of HDB3 code help the signal to be rebuilt and be checked for error easily, so HDB3 code is the commonly used code in the transmission system. Low cost, dependability, short design cycle and repeated program ability are the features of FPGA. You can design hardware of digital circuits by using software as a result of using FPGA with EDA. It will construct the digital system quickly system quickly and reduce the cost of design.This paper first introduces the development and background of HDB3.FPGA and EDA, and then expands VHDL. which is commonly used as design-entry language for EDA.A summa ry of digital circuits’ design by using VHDL is provided. Moreover, the principle and decoder is designed by using VHDL. Finally, the plan of design, the flow of software design and the simulated waveform of HDB3 encoder and decoder is presented, showing correctness of the design.Keywords: HDB3 code; FPGA ; EDA ; VHDL; Encoder and Decoder目录第一章概述 (1)1.1 HDB3码的简述 (1)1.2 FPGA简介 (2)1.2.1 FPGA的发展历程 (2)1.2.2 FPGA基本结构及其特点 (3)1.3 EDA技术 (4)1.4 VHDL硬件描述语言 (4)1.4.1 简介 (4)1.4.2 VHDL具有的特点 (5)1.4.3 VHDL的优点 (7)1.4.4 VHDL设计硬件电路的方法 (7)第二章 HDB3码的编译规则 (10)2.1主要的基带传输码型 (10)2.1.1 NRZ码的编码规则 (10)2.1.2 AMI码的编码规则 (10)2.2 HDB3码的编码规则 (11)2.3 HDB3码的译码规则 (12)2.4 HDB3码的检错能力 (12)第三章 HDB3编码器的FPGA实现 (13)3.1 HDB3码编码器的实现分析 (13)3.2 HDB3码编码器的设计思路 (13)3.2.1 4连‘0’的检出加V及判‘1’极性 (13)3.2.2 取代节的选取 (13)3.3设计建模 (14)3.3.1插“V”码模块设计及仿真 (15)3.3.2插“B”码模块设计及仿真 (17)3.3.3 HDB3编码器的极性转换模块设计及仿真 (20)第四章 HDB3译码器的FPGA实现 (24)4.1 译码器的实现分析 (24)4.2 HDB3译码器的设计思路 (24)4.3 V的检测 (25)4.4 扣V扣B (25)4.5 设计建模 (25)4.5.1扣V扣B的实现 (26)4.6 软件仿真 (26)第五章结论 (28)参考文献 (29)附录 (30)辞 (38)第一章概述1.1 HDB3码的简述HDB3(High Density Bipolar of order 3code)码的全称是三阶高密度双极性码,又称为四连“0”取代码,它是一种AMI码的改进,保持了AMI码的优点而克服其缺点。
HDB3码的仿真设计
课程设计任务书HDB;码编码规则首先将消息代码变换成AMI码;然后检查AMI码中的连0情况,当无4个或4个以上的连0串时,则保持AMI的形式不变;若出现4个或4个以上连0串时,则将1后的第4个0变为与前一非0符号(+1或-1 )同极性的符号,用V表示(+1记为+V, -1记为-V);最后检查相邻V符号间的非0符号的个数是否为偶数,若为偶数,贝I;再将当前的V符号的前一非0符号后的第1个0变为+B或-B符号,且B的极性与前一非0符号的极性相反,并使后面的非0符号从V符号开始再交替变化关键词:HDB3码MATLAB编码原则V码B码1课程设计目的 (4)2课程设计要求 (4)3相关知识 (4)4课程设计分析 (6)5仿真 (12)6结果分析 (14)7参考文献 (15)、设计目的1•综合应用《Mat lab编程与系统仿真》、《信号与系统》、《现代通信原理》等多门课程知识,使学生建立通信系统的整体概念;2.培养学生系统设计与系统开发的思想;3.培养学生利用软件进行通信仿真的能力;4.培养学生独立动手完成课题设计项目的能力;5.培养学生查找相关资料的能力。
二、设计要求1.每人独立完成一个题目2.对通信系统有整体的较深入的理解,深入理解自己仿真部分的原理的基础,画出对应的通信子系统的原理框图3.提出仿真方案;4.完成仿真软件的编制5.仿真软件的演示6.提交详细的设计报告三、相关知识在实际的传输系统中,并不是所有的代码电气波形都可以信道中传输。
含有直流分量和较丰富的单极性基带波形就不适宜在低频传输特性差的信道中传输,因为它有可能造成信号的严重的畸变。
在传输码(或称线路吗)的结构将取决于实际信道特性和系统的工作条件。
通常,传输码的结构应具有以下的特性:(1)相应的基带信号无直流分理,且低频分量少:(2)便于从信号中提取定时信息:(3)信号中高频分应尽量少以节省传输频带并减少码间串扰。
(4)不受信号源统计特性影响,即能适应于信息源变化:(5)具有在的检错能力,传输的码型应具有一定的规律性,以便利用这一规律性进行宏观监测:(6)编译码设备要尽可能简单,等等。
HDB3码编译码电路的设计
HDB3码编译码电路的设计摘要:在数字通信中,选择合适在信道中传输的码型是十分重要的,HDB3码(三阶高密度码)是比较常用的信道传输码型,因此HDB3码的编译码就显得非常重要。
通过对HDB3编译码原理的分析,提出了一种基于可编程逻辑器件EPM7064LC84-15实现HDB3编译码的方法,给出了软件设计流程、原理图和仿真波形。
编译码器已通过硬件下载、测试,可用于实际电路中。
此方法中由于CPLD可重复编程的特点,可对其进行在线修改,便于设备的调试和运行。
关键词:三阶高密度码;复杂可编程逻辑器件;编译码Design of HDB3 Encoding and Decoding CircuitAbstract:In digital communication, it is very important for transmitting quality.HDB3 is the abbreviation of High Density Bipolar 3.It's used in digital transmission,so it's important to design circuit of HDB3.By analyzing the principle of HDB3 encoding and decoding,this paper gives a novel HDB3 encoding method based on EPM7064LC84-15 and the flow of software design、schematic diagram and the simulated waveform of HDB3 encoder and decoder.Downloading and testing shows that this encoder and decoder has stable performance and therfore can be applied to circuitry.Since CPLD can be reprogrammed,it can be repaired online,thus making it convenient to debug and run the equipment.Key words: HDB3;CPLD;Encoding and Decoding目录摘要: (I)Abstract: (II)第1章绪论 (2)1.1 课题背景 (2)1.1.1 EDA技术简介 (2)1.1.2 MaxplusII 简介 (2)1.1.3 HDB3码简介 (3)第2章方案论证 (4)2.1 方案一:基于 XC9572的HDB3编译码器 (4)2.2 方案二:基于CPLD的HDB3编解码器 (5)第3章 HDB3编译码电路的设计 (7)3.1 HDB3编码器的设计 (7)3.1.1 HDB3编码器原理 (7)3.1.2 HDB3编码器的设计 (8)3.2 HDB3译码器的设计 (11)3.2.1 HDB3译码器的原理 (11)3.2.2 HDB3译码器的设计 (12)3.3 引脚锁定 (13)第4章编程下载和测试 (14)结论 (15)致谢 (16)参考文献 (17)附录A (18)附录B (19)第1章绪论1.1课题背景1.1.1EDA技术简介EDA(Electrical Design Automation,电子设计自动化)技术是现代集成电路及电子整机系统设计科技创新和产业发展的关键技术。
基于VHDL语言和可编程逻辑器件实现HDB3编译码器的设计
基于VHD1语言和可编程逻辑器件实现HDB3编译码器的设计1、引言HDB3(HighDensityBiPO1ar三阶高密度双极性)码是在AM1码的基础上改进的一种双极性归零码,它除具有AM1码功率谱中无直流分量,可进行差错自检等优点外,还克服了AMI码当信息中出现连“0”码时定时提取困难的缺点,而且HDB3码频谱能量主要集中在基波频率以下,占用频带较窄,是ITU-TG.703推荐的PCM基群、二次群和三次群的数字传输接且码型,因此HDB3码的编解码就显得极为重要了。
目前,HDB3码主要由专用集成电路及相应匹配的外围中小规模集成显来实现,但集成程度不高,特别是位同步提取非常复杂,不易实现。
随着可编程器件的发展,这一难题得到了很好地解决。
本文利用现代EDA设计方法学和VHD1语言及模块化的设计方法,设计了适合于FPGA实现的HDB3编译码器的硬件实现方案。
不但克服了分立硬件电路带来的抗干扰差和不易调整等缺陷,而且具有软件开发周期短,成本低,执行速度高,实时性强,升级方便等特点。
2、HDB3编解码原理要了解HDB3码的编码规则,首先要知道AMI码的构成规则,AMI码就是把单极性脉冲序列中相邻的“1”码(即正脉冲)变为极性交替的正、负脉冲。
将“0”码保持不变,把“1”码变为+1、-1交替的脉冲。
如:NRZ码:IOOOOIOOOOI1OOOOIIAMI码:TOOOO+10000T+10000T+1HDB3码是一种AM1码的改进型,它的编码原理可简述为,在消息的二进制代码序列中:(1)当连“0”码的个数不大于3时,HDB3编码规律与AM1码相同,即“1”码变为“+1”、“T”交替脉冲;(2)当代码序列中出现4个连“0”码或超过4个连“0”码时,把连“0”段按4个“0”分节,即“0000”,并使第4个“0”码变为“1”码,用V脉冲表示。
这样可以消除长连“0”现象。
为了便于识别V脉冲,使V脉冲极性与前一个“1”脉冲极性相同。
实验1 AMIHDB3编译码仿真实验
实验1 AMI/HDB编译码仿真实验31.1 实验目的1、掌握AMI/HDB3码的编码规则。
2、掌握AMI/HDB3码的译码规则。
3、掌握MATLAB基本语法和软件操作。
1.2 基本原理1、AMI/HDB3码的编码规则AMI码的编码规律是:将二进制信息码的“1”码交替编码为“+1”码和“-1”码,而“0”码编码后仍为“0”码。
HDB3码的编码规律是:少于4个连“0”的情况按AMI码编码规则进行,4个连“0”二进制信息码用取代节“000V”或“B00V”代替,当两个相邻V码中间有奇数个信息“1”码时取代节为“000V”,有偶数个信息“1”码(包括0个信息“1”码)时取代节为“B00V”;其它的信息码中“0”码编码后仍为“0”码;信息码的“1”码编码后变为“+1”码或“-1”码。
HDB3码中“1”、“B”的符号与其前一个非“0”码的符号相反,符合交替反转原则;而“V”的符号与其前一个非“0”码的符号相同,破坏了符号交替反转原则;但相邻V码的符号又是交替反转的。
仿真程序设定AMI码与HDB3码波形的占空比为1,即“+1”码、“+B”码和“+V”码对应正脉冲,“-1”码、“-B”码和“-V”码对应负脉冲,而正脉冲和负脉冲的宽度τ与码元周期T S的关系是τ=T S,属于非归零波形。
设信息码为1000 0110 0000 1000 0000 0010,则NRZ码、AMI码,HDB3码及其波形如当信息代码连“0”个数太多时,从AMI码中较难于提取稳定的位同步信号,而HDB3中连“0”个数最多为3,这对提取高质量的位同信号是有利的。
这也是HDB3码优于AMI码之处。
2、AMI/HDB3码的译码规则AMI码的译码规律是:AMI码中的“0”对应原信码的“0”,“±1”对应原信码的“1”。
HDB3码的译码规律是:从收到的符号序列中可以容易的找到破坏点V,于是也断定V符号及其前面的三个符号必是连“0”符号,从而恢复4个连“0”码,再将所有剩下的“±1”变成“1”即可。
数字基带信号HDB3码的译码器设计
南华大学电气工程学院通信原理课程设计设计题目:数字基带信号HDB3码的译码器设计班级:电子 1002 班学生姓名: 王超学号: 20104470245 指导教师:李圣摘要在数字基带信号传输中,HDB3码(三阶高密度双极性码)是常用的传输码型之一。
HDB3码是AMI码的一种改进型,它既保留了AMI码无直流成分的优点,又解决了原信码出现长连“0”串的问题,使连“0”个数不超过3个。
本设计针对数字基带传输系统中HDB3码的特点,使用MATLAB编程实现HDB3码的译码功能和其码型图。
关键词:数字基带传输;HDB3码(三阶高密度双极性码);MATLAB。
目录1、绪论 (1)2、设计原理及方案 (1)2.1数字基带通信系统 (1)2.2 HDB3编译码 (1)2.3设计方案 (2)2.3.1 编码程序 (2)2.3.2 译码程序 (3)2.3.3 绘图程序 (3)3、程序调试及结果分析 (4)4、总结与体会 (9)5、参考文献 (10)1、绪论在生活中,我们得到的大多是低频信号或直流信号,但是,含有直流分量和较丰富低频分量的单极性基带信号波形不适合在普通的信道中传输,因为一般的信道的低频传输特性差容易受噪声的干扰,可能造成信号严重畸变,甚至可能被噪声完全淹没而分不出信号,因此有必要对传输的信号进行编码,而经过信道编码后的传输码具有较强的波形抗干扰性。
我们常用的编码规则为HDB3编码。
HDB3码的编码规则虽然比较复杂,但解码却比较简单。
从编码规则看出,每一个破坏脉冲V总是与前一非“0”脉冲同极性(包括B在内)。
这就是说,从收到的符号序列中可以容易地找到破坏点V,于是也断定V符号及前面的三个符号必是连“0”符号,从而恢复四个连“0”码,再将所有—1和+1变成1后便得到原消息代码。
在本课程设计中,我根据编码及译码规则,采用MATLAB编程实现了原码转换成HDB3码,再从HDB3码转换成译码的过程。
2、设计原理及方案2.1 数字基带通信系统数字基带传输系统的输入信号是由终端设备或编码设备产生的二进制脉冲序列,通常使用的是单极性的矩形脉冲信号(NRZ码)。
HDB3码编码器设计
HDB3码编码器设计HDB3编码器是一种常用的数字编码方案,用于传输数字信号时提高码元传输效率和信号传输质量。
HDB3编码器使用了高度密集的编码方式,将4位二进制数据编码成5位二进制码元。
HDB3编码规则如下:1.将输入的二进制数据按照顺序分组,每组四位。
2.检测每组中连续出现的0的数量。
如果连续零的数量达到四个,则执行步骤3,否则执行步骤43.在连续的四个零前插入特殊位。
特殊位是0011或1100,根据上一个特殊位的类型来决定。
-如果前一个特殊位是0011,则在四个零前插入1100特殊位。
-如果前一个特殊位是1100,则在四个零前插入0011特殊位。
4.如果没有连续零序列,根据下列规则编码:-如果当前输入位为1,则输出+1码元(0100)。
-如果当前输入位为0,则输出-1码元(0000)。
-如果输入位的累计数量达到四个,则对其奇偶性进行判断。
-如果四个输入位的奇偶性相同,则输出反转码元(000V);其中V是有电平变化的码元(0或1),用来解决直流偏置的问题。
-如果四个输入位的奇偶性不同,则使用和上一个输出码元相同的码元。
基于以上规则,我们可以设计一个HDB3编码器的逻辑电路。
以下是一个可能的设计:1.首先,我们需要一个计数器来记录连续零的数量。
计数器的初始值为零。
2.创建一个4位寄存器,用于存储最近四个输入位的数据。
3.创建一个类型寄存器,用于存储上一个特殊位的类型。
初始值可以设定为0,表示上一个特殊位为1100。
4.创建一个输出寄存器,用于存储当前输出码元。
5.实现一个逻辑电路来根据输入的二进制数据判断要执行的操作。
-如果连续零的数量达到四个,判断上一个特殊位的类型。
-如果上一个特殊位是0011,则将1100特殊位插入到输入码元中,并将类型寄存器更新为1-如果上一个特殊位是1100,则将0011特殊位插入到输入码元中,并将类型寄存器更新为0。
-将连续零的数量重置为0。
-如果连续零的数量没有达到四个,根据输入位的奇偶性执行操作。
AMI HDB3编译码实验
AMI/HDB3编译码实验一、实验目的:学会利用MATLAB软件对AMI/HDB3的仿真。
通过实验提高学生实际动手能力和编程能力,为日后从事通信工作奠定良好的基础。
二、实验内容根据二进制消息代码,利用MATLAB软件编写其AMI/HDB3程序,进一步加强对AMI/HDB3编译码原理的理解。
(1)设二进制数字序列为-1 0 +1 -1 0 0 0 -3 0 0 +1 -1 +1 0 0 0 3 0 0 -1 0,编程产生其AMI码,并进行译码。
(2)设二进制数字序列为1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0,编程产生其HDB3码,并进行译码。
三、程序和实验结果:(1)AMI码x=[1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0];n=-1;for i=1:length(x)if(x(i)==1)y(i)=n;n=-1*n;elsey(i)=0;endendfor i=1:length(y)if(y(i)==0)y1(i)=0;elsey1(i)=1;endendsubplot(2,1,1);stem(y);title('AMI:');subplot(2,1,2);stem(y1);title('译码后:')(2)HDB3码x=[1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0];n=-1;y=[];for i=1:length(x)if(x(i)==1)y(i)=n;n=-1*n;elsey(i)=0;endendfor i=1:length(y)s(i)=y(i);endfor i=1:length(s)-5if((s(i)==1||s(i)==-1)&&s(i+1)==0&&s(i+2)==0&&s(i+3)==0&&s(i+4)==0) s(i+4)=1*s(i);endendfor i=1:length(s)if(s(i)==0)s1(i)=0;elses1(i)=1;endendsubplot(2,1,1);stem(s);title('HDB3:');subplot(2,1,2);stem(s1);title('译码后:')四、实验结果以及分析:(1)实验结果图1 图2(2)分析传号交替反转码(AMI),其编码规则是将消息码中的0保持不变,1交替的变换成+1和-1,本编程中定义了一个变量n,利用循环遍历数组中的每一个值,循环中采用if…else的判断语句判断当数组中有值为1时,将此值替换为当前变量n的值-1,之后将变量n值变换为1,遇到数组中下一个为1的元素时,将值替换为变换后n的值1。
基于VHDL语言的HDB3码编解码器方案设计书
引言 (3)1 绪论 (2)1.1可编程逻辑器件概述 (2)1.1.1 可编程逻辑器件的发展历程 (2)1.1.2 可编程逻辑器件的特点 (3)1.1.3 可编程逻辑器件的一般设计流程 (4)1.1.4 现代数字系统的设计方法 (6)1.2 VHDL语言概述 (7)1.2.1 VHDL语言介绍 (7)1.2.2语言特性、功能与特点 (7)1.2.3 TOP-DOWN的设计思想简介 (8)1.3 Quartus® II的介绍 (9)1.3.1 Quartus® II的产生与发展 (9)1.3.2 Quartus® II功能概论 (10)1.3.3 Quartus® II的应用 (10)2 HDB3码介绍 (20)2.1 数字基带信号 (20)2.2 NRZ,AMI,HDB3码之间的对应关系 (21)2.3 HDB3码的编/译码规则 (22)3 用VHDL语言设计HDB3编码器 (23)3.1 HDB3编码器实现的基本原理 (23)3.2 HDB3编码器的设计过程 (24)3.3 HDB3编码器仿真波形 (28)4 用VHDL语言设计HDB3译码器 (29)4.1 HDB3解码器实现的基本原理 (29)4.2 HDB3解码器的设计过程 (30)4.3 HDB3解码器仿真波形 (32)5总结 (32)5.1 系统设计思路小结 (32)5.2 毕设存在的问题及不足 (33)5.3 毕设后的感想 (33)致谢 (34)参考文献 (35)附录:基于VHDL语言的HDB3码编/解码器设计程序 (36)摘要现代通信在技术一般的数字通信系统中首先将消息变为数字基带信号,称为信源编码,经过调制后进行传输,在接收端先进行解调恢复为基带信号,再进行解码转换为消息。
在实际的基带传输系统中,并不是所有电波均能在信道中传输,因此有基带信号的选择问题,因此对码型的设计和选择需要符合一定的原则。
HDB3编码器设计码器设计
通信原理课程设计报告HDB3编码器设计班级:通信指导教师:学号:姓名:设计日期:2007年11月19日至2007年11月23日第1章HDB3编码器的仿真概述1.1 引言数字基带信号的传输是数字通信系统的重要组成部分。
在数字通信中,有些场合可不经过载波调制和解调过程,而对基带信号进行直接传输。
采用AMI码的信号交替反转,有可能出现四连零现象,这不利于接收端的定时信号提取。
而HDB3码因其无直流成份、低频成份少和连0个数最多不超过三个等特点,而对定时信号的恢复十分有利,并已成为CCITT 协会推荐使用的基带传输码型之一。
为此,本文利用VHDL 语言对数据传输系统中的HDB3编码器进行了设计。
1.2 HDB3码的编码规则HDB3码是AMI码的改进型,称为三阶高密度双极性码,它克服了AMI码的长连0串现象。
HDB3码的编码规则为先检查消息代码(二进制)的连0串,若没有4个或4个以上连0串,则按照A MI码的编码规则对消息代码进行编码;若出现4个或4个以上连0串,则将每4个连0小段的第4个0变换成与前一非0符号(+1或-1)同极性的V符号,同时保证相邻V符号的极性交替(即+1记为+V,-1记为-V);接着检查相邻V符号间非0符号的个数是否为偶数,若为偶,则将当前的V符号的前一非0符号后的第1个0变为+B或-B符号,且B的极性与前一非0符号的极性相反,并使后面的非0符号从V符号开始再交替变化。
2.1 HDB3编码器的仿真2.1.1 编码原理以四连“0”的可能性通过如表1所列的多“0”消息代码进行分析,并利用EDA工具对VHDL 源程序进行编译、适配、优化、逻辑综合与仿真。
仿真结果显示其完全可以达到编码要求。
而将HDB3编码硬件描述下载到CPLD或FPGA目标芯片中,然后连接好CC4052进行实际应用测试。
(以上为三级标题,黑体,四号,左对齐。
)2.1.2数字基带信号的码形数字基带信号的码型设计原则所谓数字基带信号,就是消息代码的电脉冲表示――电波形。
HDB3码编译码电路的设计
HDB3码编译码电路的设计摘要:在数字通信中,选择合适在信道中传输的码型是十分重要的,HDB3码(三阶高密度码)是比较常用的信道传输码型,因此HDB3码的编译码就显得非常重要。
通过对HDB3编译码原理的分析,提出了一种基于可编程逻辑器件EPM7064LC84-15实现HDB3编译码的方法,给出了软件设计流程、原理图和仿真波形。
编译码器已通过硬件下载、测试,可用于实际电路中。
此方法中由于CPLD可重复编程的特点,可对其进行在线修改,便于设备的调试和运行。
关键词:三阶高密度码;复杂可编程逻辑器件;编译码Design of HDB3 Encoding and Decoding CircuitAbstract:In digital communication, it is very important for transmitting quality.HDB3 is the abbreviation of High Density Bipolar 3.It's used in digital transmission,so it's important to design circuit of HDB3.By analyzing the principle of HDB3 encoding and decoding,this paper gives a novel HDB3 encoding method based on EPM7064LC84-15 and the flow of software design、schematic diagram and the simulated waveform of HDB3 encoder and decoder.Downloading and testing shows that this encoder and decoder has stable performance and therfore can be applied to circuitry.Since CPLD can be reprogrammed,it can be repaired online,thus making it convenient to debug and run the equipment.Key words: HDB3;CPLD;Encoding and Decoding目录摘要: (I)Abstract: (II)第1章绪论 (4)1.1 课题背景 (4)1.1.1 EDA技术简介 (4)1.1.2 MaxplusII 简介 (4)1.1.3 HDB3码简介 (5)第2章方案论证 (6)2.1 方案一:基于 XC9572的HDB3编译码器 (6)2.2 方案二:基于CPLD的HDB3编解码器 (7)第3章 HDB3编译码电路的设计 (9)3.1 HDB3编码器的设计 (9)3.1.1 HDB3编码器原理 (9)3.1.2 HDB3编码器的设计 (10)3.2 HDB3译码器的设计 (13)3.2.1 HDB3译码器的原理 (13)3.2.2 HDB3译码器的设计 (14)3.3 引脚锁定 (15)第4章编程下载和测试 (16)结论 (17)致谢 (18)参考文献 (19)附录A (20)附录B (21)第1章绪论1.1课题背景1.1.1EDA技术简介EDA(Electrical Design Automation,电子设计自动化)技术是现代集成电路及电子整机系统设计科技创新和产业发展的关键技术。
HDB3码编码器及解码器verilog代码编程及实现
clk
图(3)单双极性转换模块波形仿真 (clk:时钟信号;addb_out:输入数据;BP;HDB3 码正;BN;HDB3 码负)
* 顶层模块设计 * module bian(clk,data,BP,BN); * input clk,data; * output BP,BN; * add_v u1(.clk(clk),.data_in(data),.data_out(a)); * add_b u2(.clk(clk),.add_in(a),.addb_out(b)); * polar
通信原理
基带信号的选择: AMI码
HDB3码
HDB3码保持了AMI码的优点,克服 了AMI码在遇到连“0”长时难以提 取定时信息的困难,因而获得广泛 应用。
HDB3码编码规则
*HDB3码为3阶高密度双极性码,其编码规则为: *1将消息代码转换为AMI码; *2检查AMI码中连“0”的情况,出现4个或4个以上连
D
Q
ENA CLR
ENA CLR
ENA CLR
ENA CLR
addb_out~2
0
addb_out[1..0]
Equal1
A[1..0] B[1..0]
0 1
Add0
A[0] B[0]
2' h3 --
=
EQUAL 0 1 0
addb_out~1 addb_out~3 counter
PRE D 0 1 Q
*编码器实现
:
*在实际电路设计时,先在纯粹的数字电路下
完成插“V”的操作,再完成插“B”的操 作;然后再将单极性变成双极性。这样可以 在数字电路中实现,且降低寄存器需求。 以在具体电路中,需做以下替换:0-00,101,V-11, B-10。
HDB3线路编码通信系统虚拟仿真
HDB3线路编码通信系统虚拟仿真实验一、实验目的1、熟悉HDB3编译码器在通信系统中位置及发挥的作用;2、熟悉HDB3通信系统的系统框架。
二、实验器材1、主控&信号源、21号、2号、7号、8号、13号模块各一块2、双踪示波器一台3、连接线若干三、实验原理1、实验原理框图2# 模块7# 模块8# 模块HDB3线路编码通信系统实验框图2、实验框图说明信号源输出音乐信号经过21号模块进行PCM编码,与2号模块的拨码信号一起送入7号模块,进行时分复用,然后通过8号模块进行HDB3编码;编码输出信号再送回8号模块进行HDB3译码,其中译码时钟用13号模块滤波法位同步提取,输出信号再送入7号模块进行解复接,恢复的两路数据分别送到21号模块的PCM译码单元和2号模块的光条显示单元,从而可以从扬声器中听到原始信号源音乐信号,并可以从光条中看到原始拨码信号。
注:图中所示连线有所省略,具体连线操作按实验步骤说明进行。
四、实验步骤1、准备工作。
按照实验原理部分的实验原理框图准备好各个模块,包括信号源模块、拨码开关复用信号模块、PCM编译码模块、时分复用模块、HDB3编译码模块、滤波法位同步模块等。
2、关电,按表格所示进行连线。
3、开电,设置主控菜单,选择【主菜单】→【通信原理】→【HDB3线路编码通信系统综合实验】。
可以在【信号源】菜单中更改输出音乐信号(音乐信号可选音乐1和音乐2)。
将模块13的拨码开关S4设置为1000,开关S2拨为滤波器法位同步。
将21号模块的开关S1拨至A-LAW(或U-LAW)。
4、主控&信号源模块设置成功后,可以观察到7号模块的同步指示灯亮。
FS为模式1。
5、将2号模块拨码开关S1为01110010,可以从数字信号接收显示的三个光条中观察到输入的数字信号,拨动拨码开关S2、S3和S4验证输入数字信号与输出数字信号。
6、信号流向:本次实验选用音乐信号作为信源,对音乐信号使用PCM信源编码方式,线路编码采用HDB3编译码传输方式,最终输出信号到接收端。
EDA课程设计_基于VHDL的HDB3编译码器的设计(1)
EDA课程设计---基于VHDL的HDB3编译码器的设计课题:基于VHDL的HDB3编译码器的设计指导老师:姓名:学号:目录1 绪论 (1)1.1可编程逻辑器件概述 (1)1.1.1 可编程逻辑器件的发展历程 (1)1.1.2 可编程逻辑器件的特点 (2)1.1.3 可编程逻辑器件的一般设计流程 (4)1.1.4 现代数字系统的设计方法 (6)1.2 VHDL语言概述 (7)1.2.1 VHDL语言介绍 (7)1.2.2语言特性、功能与特点 (7)1.2.3 TOP-DOWN的设计思想简介 (8)2 HDB3码介绍 (10)2.1 数字基带信号 (10)2.2 NRZ,AMI,HDB3码之间的对应关系 (10)2.3 HDB3码的编/译码规则 (11)3 用VHDL语言设计HDB3编码器 (13)3.1 HDB3编码器实现的基本原理 (13)3.2 HDB3编码器的设计过程 (13)3.3 HDB3编码器仿真波形 (22)4 用VHDL语言设计HDB3译码器 (23)4.1 HDB3解码器实现的基本原理 (23)4.2 HDB3解码器仿真波形 (24)5. 单/双极性变换的硬件实现 (25)5.1单/双极性变换的硬件实现 (25)6 总结 (27)6.1 系统设计思路小结 (27)6.2 课程设计存在的问题及不足 (28)参考文献 (28)1 绪论1.1可编程逻辑器件概述1.1.1 可编程逻辑器件的发展历程从20世纪60年代开始,数字集成电路经历了小规模集成电路(SSI-SmallScale Interation,几十到几百门),中规模集成电路(MSI-Medium ScaleIntegration,几百到几千门),大规模集成电路(LSI-Large Scale Integration,几千到几万门),超大规模集成电路(VLSI-Very Large Scale Integration,几百万门以上)等几个发展阶段。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity hdb3 isport(codein: in std_logic;clk : in std_logic;clr : in std_logic;hdb3 : out std_logic_vector(1 downto 0);codeout1: out std_logic;codeout2:out std_logic);end hdb3;architecture rtl of hdb3 issignal codeout: std_logic_vector(1 downto 0);signal count0 : integer:=0;signal codeoutv: std_logic_vector(1 downto 0);signal s0 : std_logic_vector(4 downto 0):="00000"; signal s1 : std_logic_vector(4 downto 0):="00000"; signal clkb : std_logic;signal count1 : integer range 1 downto 0;signal codeoutb: std_logic_vector(1 downto 0);signal flagv : integer range 1 downto 0;signal firstv : integer range 0 to 1;signal flag1b : integer range 1 downto 0;component dff --调用元件dffport (d : in std_logic;clk : in std_logic;q : out std_logic);end component;beginadd_v:process(clk,clr) --插入V符号进程 beginif(rising_edge(clk)) thenif(clr='1') thencodeoutv<="00"; --用00代表0count0<=0;elsecase codein iswhen '1'=>codeoutv<="01"; --用01代表1count0<=0;if(count0=3)then --当有4个连续0时插入Vcodeoutv<="11"; --用11代表Vcount0<=0;elsecount0<=count0+1;codeoutv<="00";end if;when others=>codeoutv<="00";count0<=count0;end case;end if;end if;end process add_v;s0(0)<=codeoutv(0);s1(0)<=codeoutv(1);ds11: dff port map(s1(0),clk,s1(1)); --调用库中的D触发器来实现延迟作用ds01: dff port map(s0(0),clk,s0(1));ds12: dff port map(s1(1),clk,s1(2));ds02: dff port map(s0(1),clk,s0(2));ds13: dff port map(s1(2),clk,s1(3));ds03: dff port map(s0(2),clk,s0(3));bclk: clkb<=not clk;add_b:process(clkb) --插入符号B进程beginif(rising_edge(clkb)) thenif(codeoutv="11") thenif(firstv=0) thencount1<=0;firstv<=1;s1(4)<=s1(3);s0(4)<=s0(3);elseif(count1=0) then --用10代表Bs1(4)<='1';s0(4)<='0';count1<=0;elses1(4)<=s1(3);s0(4)<=s0(3);end if;end if;elsif(codeoutv="01") thencount1<=count1+1;s1(4)<=s1(3);s0(4)<=s0(3);elses1(4)<=s1(3);s0(4)<=s0(3);count1<=count1;end if;end if;end process add_b;codeoutb<=s1(4)&s0(4);output:process(clk) --单极性变双极性进程 beginif(rising_edge(clk)) thenif((codeoutb="01")or(codeoutb="10"))then --1 or B if(flag1b=1) thencodeout<="11";flag1b<=0;elsecodeout<="01";flag1b<=1;end if;elsif(codeoutb="11") then ---Vif(flag1b=1) thencodeout<="01";elsecodeout<="11";end if;elsecodeout<="00";flag1b<=flag1b;end if;end if;hdb3<=codeout;end process output;end rtl;8.2 附录二 HDB3码译码器程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity hdb3 isport(out0:in std_logic;out1:in std_logic;clock:in std_logic;data_out:out std_logic);end hdb3 ;architecture rtl of hdb3 issignal reg0:std_logic_vector(4 downto 0);signal reg1:std_logic_vector(4 downto 0);beginprocess(clock)beginif rising_edge(clock)thenif out1='1' and out0='0' and reg0(4 downto 1)="0001" and reg1(4 downto 1)="0000" thenreg0<="00001";reg1<="00000";elsif out1='1' and out0='1' and reg0(4 downto 1)="0001" and reg1(4 downto 1)="0001" thenreg0<="00001";reg1<="00000";elsif out1='1' and out0='1' and reg0(4 downto 2)="001" and reg1(4 downto 2)="001" thenreg0<="0000"®0(1);reg1<="0000"®1(1);elsif out1='1' and out0='0' and reg0(4 downto 2)="001" and reg1(4 downto 2)="000" thenreg0<="0000"®0(1);reg1<="0000"®1(1);elsereg0<=out1®0(4 downto 1);reg1<=out0®1(4 downto 1);end if;end if;end process;process(clock)beginif rising_edge(clock) thenif reg0(0)='1' or reg1(0)='1' then data_out<='1';elsedata_out<='0';end if;end if;end process;end rtl;。