数字基带信号HDB3译码器设计与建模.docx

上传人:b****1 文档编号:23214069 上传时间:2023-05-15 格式:DOCX 页数:25 大小:703.34KB
下载 相关 举报
数字基带信号HDB3译码器设计与建模.docx_第1页
第1页 / 共25页
数字基带信号HDB3译码器设计与建模.docx_第2页
第2页 / 共25页
数字基带信号HDB3译码器设计与建模.docx_第3页
第3页 / 共25页
数字基带信号HDB3译码器设计与建模.docx_第4页
第4页 / 共25页
数字基带信号HDB3译码器设计与建模.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

数字基带信号HDB3译码器设计与建模.docx

《数字基带信号HDB3译码器设计与建模.docx》由会员分享,可在线阅读,更多相关《数字基带信号HDB3译码器设计与建模.docx(25页珍藏版)》请在冰豆网上搜索。

数字基带信号HDB3译码器设计与建模.docx

数字基带信号HDB3译码器设计与建模

学号:

课程设计

 

课程名称

通信系统原理课程设计

学院

信息工程学院

专业

电子信息工程

班级

电信1301班

姓名

秦子越

指导教师

 

2015——2016学年第1学期

课程设计任务书

学生:

秦子越专业班级:

电信1301班

指导教师:

苏工作单位:

理工大学

题目:

数字基带信号HDB3译码器设计与建模

初始条件:

〔1〕MAXPLUSII、QuartusII、ISE等软件;

〔2〕课程设计辅导书:

《通信原理课程设计指导》

〔3〕先修课程:

数字电子技术、模拟电子技术、电子设计EDA、通信原理。

要求完成的主要任务:

〔包括课程设计工作量与其技术要求,以与说明书撰写等具体要求〕

〔1〕课程设计时间:

第17周;

〔2〕课程设计题目:

数字基带信号HDB3译码器设计与建模;

〔3〕本课程设计统一技术要求:

按照要求对的题目进展逻辑分析,了解HDB3译码器译码原理,了解各模块电路的逻辑功能,设计通信系统框图,画出实现电路原理图,编写VHDL语言程序,上机调试、仿真,记录实验结果波形,对实验结果进展分析;

〔4〕课程设计说明书按学校“课程设计工作规〞中的“统一书写格式〞撰写,并标明参考文献〔至少5篇〕;

〔5〕写出本次课程设计的心得体会〔至少500字〕。

时间安排:

第17周

参考文献:

段吉海.数字通信系统建模与设计.:

电子工业,2004

江国强.EDA技术与应用.:

电子工业,2010

JohnG.Proakis.Digitalmunications.:

电子工业,2011

指导教师签名:

年月日

系主任〔或责任教师〕签名:

年月日

摘要

在数字基带信号传输中,HDB3码〔三阶高密度双极性码〕是常用的传输码型之一。

本设计针对数字基带传输系统中HDB3码的特点,将编码器分成三个局部:

插V模块、插B模块、单极性变双极性模块来实现HBD3的编码输出。

在编码的过程中,主要利用移位存放器和计数器来实现整个插V插B的过程,并且,双相码的引入为准确识别“V〞、“B〞、“+1〞、“-V〞、“-B〞、“-1〞码提供了可能。

而译码器设计的过程中,通过用V码检测模块所检测出的V码信号,去控制一个移位存放器,以实现V码的检测和译码输出。

最后,在QuartusⅡ开发环境中,采用VHDL语言设计对每个模块进展仿真,实现相应功能再进展整体仿真。

关键字:

数字基带传输HDB3码译码VHDL语言

Abstract

 In the digital baseband signal transmission, HDB3 code (the third order high density bipolar codes) is one of the monly used transmission type. This design aiming at the characteristics of HDB3 code in digital baseband transmission system, the encoder is divided into three parts:

 V module, interpolation module B, single polarity dual polarity change module to realize the HBD3 code output. In the process of coding, the main shift register and the counter is used to realize the whole process of plug V plug B, and the introduction of the bipolar codes for accurate identification of "V", "B", "+ 1", "V", "B", "1". And decoder in the process of design, by using the V code detection module to detect the V code signal, to control a shift register, in order to realize the V code detection and decoding output. Finally, in the Quartus Ⅱ development environment, design of each module are simulated using VHDL language, realize the corresponding function and then to the whole simulation. 

Key words:

 digital baseband transmission HDB3 code DecodingVHDL language 

1.设计要求与思路

1.1设计要求

本课程设计统一技术要求:

按照要求对“数字基带信号HDB3译码器设计与建模〞进展逻辑分析,了解HDB3译码器译码原理,了解各模块电路的逻辑功能,设计通信系统框图,画出实现电路原理图,编写VHDL语言程序,上机调试、仿真,记录实验结果波形,对实验结果进展分析。

1.2设计思路

用V码检测模块所检测出的V码信号,去控制一个移位存放器,假如未碰到V脉冲,如此整流输出合成信号在时钟的节拍下,顺利通过移位存放器;当碰到有V脉冲时,该V脉冲将使移位存放器清零。

考虑到四连0,即V脉冲与其前面的三个码元应为0码,所以,可设置四位移位存放器,当V码清零时,同时将移存器中的四位码全变为0。

不管是否有B脉冲,在此模块中,一并清零,因而无需另设扣B电路。

另外移位存放器起到延四位时钟周期的作用,以使所检测出的V脉冲与信号流中的V脉冲位置对齐,保证清零的准确性。

2.设计原理与方案

2.1译码器译码原理

译码原理:

根据编码规如此,V脉冲与前一个脉冲同极性。

因而可从所接收的信码中找到V码,V码与前面的三位代码必然是取代码,在译码时,需要全部复原为四连0,完成了扣V扣B功能。

2.2各模块电路的逻辑功能

2.2.1系统框图

HDB3译码器的模型框图:

图2.1HDB3译码器模型

双/单极性变换电路:

正负整流电路分别提取正负电平码局部。

V码检测电路:

V脉冲必然是同极性脉冲。

当无V脉冲时,传号脉冲“+1〞和“-1〞交替出现。

当连续出现两个“+1〞或“-1〞时,如此后一个一定是V脉冲。

时钟提取电路用于提取同步时钟。

扣V扣B电路在V脉冲和同步时钟的控制下,完成扣V扣B的功能。

2V码检测模块的建模:

+V码检测:

来自负整流电路

来自正整流电路+v码输出

图2.2+V码检测模型框图

为方便起见,设从正、负整流电路输出的信号分别为+A、-A(其中+A包括+V和+1信号,-A包括-V和-1信号)。

当+A的上升沿到来时,对输入的+A脉冲进展计数,当计数值等于2时,输出一个脉冲作为+V脉冲,同时计数器清零。

且在计数期间,不能有-A信号。

这是因为只有在连续两个+A脉冲之间无-A脉冲,才能说明这两个+A脉冲在HDB3码中,是真正同极性,于是就可以判定第二个+A脉冲实际是+V码,达到检测+V码的目的。

-V码检测:

来自正整流电路

来自负整流电路

图2.3-V码检测模型框图

-V码检测原理与+V码检测的类似。

所不同的是,-V码检测电路在+A控制下,对来自-A信号进展计数和检测、判定。

假如检测到-V码,如此输出-V码信号。

2.2.3扣V扣B模块建模:

HDB3码全波整流信号HDB3译码输出

V码清零clr

图2.4扣V扣B模块的模型框图

扣V扣B模块有三个输入信号:

时钟信号、V码信号和合路信号。

合路信号可能包含有B脉冲和V脉冲,因此需要在扣V扣B模块中,去除V和B脉冲。

本模块的建模方法是,用V码检测模块所检测出的V码信号,去控制一个移位存放器,假如未碰到V脉冲,如此整流输出合成信号在时钟的节拍下,顺利通过移位存放器;当碰到有V脉冲时,该V脉冲将使移位存放器清零。

不管是否有B脉冲,在此模块中,一并清零,因而无需另设扣B电路。

另外移位存放器起到延迟四位时钟周期的作用,以使所检测出的V脉冲与信号流中的V脉冲位置对齐,保证清零的准确性。

2.3VHDL语言程序

新建一个工程“NewProjectWizard〞并保存,然后选择“File〞—“New〞,弹出图2.5。

图2.5新建文件

选择“VHDLFiles〞,新建VHDL文件,将代码输入,添加到Files里。

图2.6转换程序

图2.7译码程序

2.4电路原理图

2.4.1译码器电路

由代码VHDL文件可生成BSF文件,以译码器代码为例,双击“hdb3dec.vhd〞,选择“File〞—“Create/Update〞—“CreateSymbolFilesforCurrentFile〞,或者选中“hdb3dec.vhd〞,单击右键,选择“CreateSymbolFilesforCurrentFile〞,会弹出如下图,说明添加成功。

图2.8显示添加成功

然后双击图2.9中Files,会弹出图2.10所示,键入Filename,然后单击“Add〞,“OK〞。

图2.9

图2.10添加到工程

图2.11为添加成功的译码器电路:

图2.11译码器电路图

其部电路结构

图2.12译码器部逻辑电路

.2单/双极性转换电路

图2.13单/双极性转换电路

其部电路结构

图单/双极性转换电路部逻辑电路

.3编码器电路

图2.15编码器电路图

其部电路结构

图2.16编码器部逻辑电路

.4总体电路图显示

新建一个BDF文件,将三个BSF文件插入,按照原理进展连接,如如下图

图2.14总电路图

其RTL仿真图如下:

图RTL仿真图

3.上机调试与仿真

编译并运行程序,无错误。

图3.1程序运行结果

分别对单双极性转换电路和译码器电路进展波形仿真,如如下图所示

图3.2单双极性转换电路波形仿真

图3.3译码器电路波形仿真

建立VWF文件进展波形仿真,双击Name下面空白处,添加输入clk,clr,codein,输出codeout,plusout,minusout,datout。

如如下图输入代码为0110100100001000010000000010000000

图3.4波形仿真输入

4.实验结果与分析

4.1实验结果

按运行键进展运行仿真,得出实验结果:

图4.1仿真波形结果图

4.2实验结果分析

表4.2输入码元与其转换

原码codein

1010

0100

0010

0001

HDB3码

+10-10

0+100

0+V-10

00-V+1

codeout

10000100

00100000

00100100

00000110

原码codein

0000

0000

1000

0000

HDB3码

000+V

-B00-V

+1000

+V000

codeout

00000010

01000001

10000000

10000000

图4.2为各个理论值,与仿真波形图中各值相比结果正确。

仿真波形图中,clk为时钟信号,clr是控制信号且低电平有效,codein为输入的任意码元,codeout为编码输出信号也是极性转换电路输入信号,plusout,minusout为极性转换电路输出信号,plusout为1表示出现了“+1〞,minusout为1表示出现了“-1〞,datout为译码输出的信号。

当plusout或minusout连续出现两个“+1〞或“-1〞时,如此后一个一定是V脉冲。

由仿真波形图知,仿真结果即译码输出为:

仿真结果正确,与原码相比出现延迟。

5.心得体会

这次通信系统原理课程设计我们历时一个星期左右,在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。

为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。

当然,也碰到了很多问题。

第一,不够细心,由于对课本理论的不熟悉导致编程出现错误。

第二,是在学习态度上,这次课设是对我的学习态度的一次检验。

对于这次课程设计,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。

我们这次实习所遇到的多半问题多数都是由于我们不够严谨。

第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。

在课程设计过程中,我们不断发现错误,不断改正,不断领悟,这次课程设计终于顺利完成了。

在今后社会的开展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进展解决,只有这样,才能成功的做成想做的事,收获喜悦。

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

在实验过程中,也对团队精神的进展了考察,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。

团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。

参考文献

[1]鑫,蒋亮,齐兆群,晓凯.VHDL与数字电路设计.:

机械工业出版,.2005

[2]詹仙宁,田耕.VHDL开发精解与实例剖析.:

电子工业,2009

[3]潘松,黄继业.EDA技术与VHDL.:

清华大学,2005

[4]潘松,王国栋.VHDL实用教程.:

电子科技大学,1999

[5]侯伯亨,顾新.VHDL硬件描述语言与数字电路设计.:

电子科技大学,1999

[6]冯玉珉.通信系统原理.:

北方交通大学,2003年

[7]段吉海,黄智伟.基于CPLD/FPGA的数字通信系统建模与设计.:

电子工业,2004

[8]江国强.EDA技术与应用.:

电子工业,2004

[9]段吉海.数字通信系统建模与设计.:

电子工业,2004

附录

附录1:

编码程序

libraryieee;

useieee.std_logic_1164.all;

entityxhdb3IS

port(codein:

instd_logic;

clk:

instd_logic;

clr:

instd_logic;

codeout:

outstd_logic_vector(1downto0));

endxhdb3;

architecturebehaveofxhdb3is

signalt0:

integer:

=0;

signalflag0:

integerrange1downto0:

=0;

signalflag1:

integerrange1downto0:

=0;

signalflag2:

integerrange1downto0:

=1;

signalflag3:

integerrange1downto0:

=0;

signalfirstv:

integerrange1downto0:

=0;

signalcodeoutv:

std_logic_vector(2downto0);

signals0:

std_logic_vector(4downto0):

="00000";

signalcodeoutb:

std_logic_vector(2downto0);

signals1:

std_logic_vector(4downto0):

="00000";

signalclkb:

std_logic;

signalclkv:

std_logic;

signalclkout:

std_logic;

signals2:

std_logic_vector(4downto0):

="00000";

signals3:

std_logic_vector(2downto0);

ponentdff

port(d:

instd_logic;

clk:

instd_logic;

q:

outstd_logic);

endponent;

begin

vclk:

clkv<=clkafter10ns;

add_v:

process(clk,clr)

begin

ifclk'eventandclk='1'then

ifclr='1'then

codeoutv<="000";

t0<=0;

else

casecodeinis

when'1'=>

t0<=0;

if(flag0=0)then

codeoutv<="110";

flag0<=1;

else

codeoutv<="";

flag0<=0;

endif;

when'0'=>

ift0=3then

iffirstv=0then

ifflag0=0then

codeoutv<="011";

flag1<=0;

else

codeoutv<="111";

flag1<=1;

endif;

firstv<=1;

else

ifflag1=0then

codeoutv<="111";

flag1<=1;

flag0<=1;

else

codeoutv<="011";

flag1<=0;

flag0<=0;

endif;

endif;

t0<=0;

else

t0<=t0+1;

codeoutv<="000";

endif;

whenothers=>

codeoutv<="000";

t0<=t0;

endcase;

endif;

endif;

endprocessadd_v;

s0(0)<=codeoutv(0);

s1(0)<=codeoutv

(1);

s2(0)<=codeoutv

(2);

ds21:

dffportmap(s2(0),clk,s2

(1));

ds11:

dffportmap(s1(0),clk,s1

(1));

ds01:

dffportmap(s0(0),clk,s0

(1));

ds22:

dffportmap(s2

(1),clk,s2

(2));

ds12:

dffportmap(s1

(1),clk,s1

(2));

ds02:

dffportmap(s0

(1),clk,s0

(2));

ds23:

dffportmap(s2

(2),clk,s2(3));

ds13:

dffportmap(s1

(2),clk,s1(3));

ds03:

dffportmap(s0

(2),clk,s0(3));

bclk:

clkb<=notclk;

add_b:

process(clkb)

begin

ifclkb'eventandclkb='1'then

casecodeoutvis

when"110"=>

flag3<=1;

s2(4)<=s2(3);

s1(4)<=s1(3);

s0(4)<=s0(3);

when""=>

flag3<=0;

s2(4)<=s2(3);

s1(4)<=s1(3);

s0(4)<=s0(3);

when"111"=>

ifflag3=0then

s2(4)<='1';

s1(4)<='0';

s0(4)<='1';

flag3<=1;

else

s2(4)<=s2(3);

s1(4)<=s1(3);

s0(4)<=s0(3);

endif;

flag2<=1;

when"011"=>

ifflag3=0then

s2(4)<=s2(3);

s1(4)<=s1(3);

s0(4)<=s0(3);

else

s2(4)<='0';

s1(4)<='0';

s0(4)<='1';

flag3<=0;

endif;

flag2<=0;

whenothers=>

s2(4)<=s2(3);

s1(4)<=s1(3);

s0(4)<=s0(3);

endcase;

codeoutb<=s2(4)&s1(4)&s0(4);

endif;

endprocessadd_b;

outclk:

clkout<=clkafter5ns;

output:

process(clkout)

begin

IFclkout'eventandclkout='1'then

ifcodeoutb="000"then

codeout<="00";

elsifcodeoutb="001"orcodeoutb=""orcodeoutb="011"then

codeout<="01";

else

codeout<="10";

endif;

endif;

endprocessoutput;

endbehave;

附录2:

双单极性转换程序

Libraryieee;

Useieee.std_logic_1164.all;

Useieee.std_logic_unsigned.all;

Entityhdb3poled2is

Port(clk:

instd_logic;

Plusbin:

instd_logic_vector(1downto0);

Plusout:

outstd_logic;

Minusout:

outstd_logic);

Endhdb3poled2;

Architecturebehaveofhdb3poled2is

Begin

Process(clk)

Begin

ifclk'eventandclk='1'then

Plusout<=Plusbin

(1);

Minusout<=Plusbin(0);

Endif;

Endprocess;

Endbehave;

附录3:

译码程序

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityhdb3decis

port(clk:

instd_logic;

plusin:

instd_logic;

minusin:

instd_logic;

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

当前位置:首页 > 高中教育 > 其它课程

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

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