一、HDB3 码介绍
三阶高密度双极性码(英语:High Density Bipolar of Order 3 code,简称:HDB3码)是一种适用于基带传输的编码方式。它是一种 AMI 码的改进型, HDB3 码保持了 AMI 码极性反转的特点, 且减少了连 “0” 的长度,有利于接收端从基带信号中提取定时信息,低频成分少, 提取同步时钟方便, 有内在检错能力等优点, 是 CCITT(国际电报电话咨询委员会) 推荐的使用码型之一, 广泛的应用于数字基带通信。
HDB3 码有以下特点 :基带信号无直流成分,且只有很小的低频成分;连 0串符号最多只有 3 个,利于定时信息的提取;不受信源统计特性的影响,对定时信号的恢复十分有利,而成为普遍使用的基带传输码之一。 在 AMI 码中,如果连续的较长的一段序列为 “0”码, 则接收端会因为长时间无交替变化波形的控制而失去同步信号,而 HDB3 码克服了 AMI 码的上述缺点。此外, HDB3码还具有频谱能量主要集中在基波频率以下,占用频带较窄等特点。
二、编码规则
1、连0的个数不超过3时,规则与AMI相同,即0不变,1变为-1、+1交替;
2、若连0的个数超过3,则将每4个0看作一小节,定义为B00V,B可以是-1、0、+1,V可以是-1、+1;
3、B和V具体值满足以下条件:V和前面相邻非0符号极性相同;不看V时极性交替;V与V之间极性交替;
4、一般第一个B取0,第一个非0符取-1。
由于V会破坏极性交替的规律、B有3种变化以满足规则,所以V称为破坏脉冲、B称为调节脉冲,B00V称为取代节、破坏节。
HDB3编码举例
代码 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
HDB3 |
+1 |
0 |
0 |
0 |
+1 |
-1 |
+1 |
-1 |
0 |
0 |
-1 |
0 |
+1 |
V/B |
+V |
-B |
-V |
三、HDB3 码编程实现
3.1、编码器要求
HDB3编码器输入信号为: 一路串行2.048MB/S合路数据流,一路2.048MB/S位同步时钟脉冲。
HDB3编码器输出信号为: 一路串行2.048MB/S合路HDB3编码的正极性数据流H+,一路串行2.048MB/S合路HDB3编码的负极性数据流H-,一路2.048MB/S位同步时钟脉冲。
3.2、编码器总体思想
HDB3编码规则分析:
1、对输入为1码元交替翻转编码,即:依次在H+和H-端口输出1。
2、对输入为0码元同时在H+和H-端口输出0。
3、当连续输入4个0码元,且与上一个连续0码元之间1码元为奇数个时,第四个0码元改为1码元,且与之前1码元的最后一个1码元同极性,即:在同端口输出。
4、当连续输入4个0码元,且与上一个连续4个0码元之间1码元为偶数个时,第一个0码元改为1码元,与之前1码元的最后一个1码元反极性,即:在不同端口输出,第四个0码元改为1码元,且与之前1码元的最后一个1码元同极性,即:在同端口输出。
3.3、HDB3编码VHDL语言设计方案提示:
1、逐位处理输入输出数据,即:每输入一比特数据就判断处理,并在H+和H-端口同时输出一位比特脉冲.
2、为了能修改含本时钟之前4个时钟周期的输出比特,至少应移位缓存4比特输出
3、为了能处理本时刻输入的比特,应该至少已知以下状态信息:
1)、输出“1”时,确定下次1码元输出端口的确定,即极性是+或-;每输入一个“1”,极性反转一次,记录信息X
2)、更新“B00V”时,记录信息Y=1,当Y=1时,极性再反转一次X,(两次反转即同极性)
3)、开辟一个当前是否为连续“0000”;