本帖最后由 zengkf0102 于 2016-4-18 10:21 编辑
最近看到一个朋友做这个,我就上网查了下资料也学习着编写这个代码,由于本人初学FPGA,就是学习然后记录下过程,设计也有问题,望大神们批评指正。首先介绍下原理下的东西
1. HDB3码介绍
三阶高密度双极性码(英语:High Density Bipolar ofOrder 3,简称:HDB3码)是一种适用于基带传输的编码方式,它是AMI码即传号交替反转码的一种改进型,改进的目的是为了保持AMI码的优点二克服其缺点,使连“0”的个数不超过3个,具有能量分散,抗破坏性强等特点
2. HDB3码的编码规则(1)检查消息码中“0”的个数。当连“0”的数目小于等于3时,HDB3码与AMI码一样,+1与-1交替; (2)当连“0”的数目超过3时,将每4个连“0”化作一小节,定义为B00V,称为破坏节,其中V成为破坏脉冲,而B称为调节脉冲; (3)V与前一个相邻的非“0”脉冲极性相同(这破坏了极性交替的规则,所以V称为破坏脉冲),并且要求相邻的V码之间极性必须交替。V的取值为+1或-1; (4)B的取值可选0、+1、-1,以使V同时满足(3)中的两个要求; (5)V码后面的传号码极性也要交替。 例如:
其中的±V脉冲和±B脉冲与±1脉冲波形相同,用V或B符号表示的目的是为了示意非“0”码是由原始码的“0”变换而来的。
3.HDB3解码规则
(1)从收到的符号序列中找到破坏极性交替的点,可以断定符号及其前面的3个符号必是连0符号,从而恢复4个连码;
(2)再将所有的-1变换成+1后,就可以得到原消息代码。
4.HDB3码的特点
从以上原理可以看出,HDB3码的编码虽然比较复杂,但解码比较简单。编码规则可以看出,每一个破坏脉冲V总是与前一个“0”脉冲同极性(包括B在内)。这就是说,从收到系列中可以容易地找到破坏点V,于是也断定V符号及前面的3个符号必是连“0”符号,从而恢复4个连“0”码,再将所有-1变成+1后便得到原信息代码。HDB3码除了具有AMI码的优点外,同时还将连“0”码限制在3个以内,使得接受时能保证定时信息的提取。因此,HDB3码是目前应用最为广泛的码型,A律PCM四次群一下接口码型均为HDB3码。
5. HDB3码编码器的设计
在HDB3码的HDL建模思想是在消息代码的基础上,依据HDB3编码规则进行插人“V”符号和“B”符号的操作,且用2位二进制代码分别表示。最后完成单极性信号变成双极性信号的转换。其编码模型如下图所示: 6.HDB3码解码器的设计
解码主要分为2个部分,一是去V和B部分;二是双单极性转换部分。
具体的代码和文档放压缩包里面
|