AMI/HDB3编译码设计与实现
一、课程设计主要内容
熟悉AMI/HDB3码的编译码规则,了解AMI/HDB3码编译码的实现方法,运用MATLAB实现AMI/HDB3码编译码的仿真并分析。
二、设计原理
AMI码的全称是传号交替反转码。这是一种将消息代码0(空号)和1(传号)按如下规则进行编码的码:代码的0仍变换为传输码的0,而把代码中的1交替地变换为传输码的+1、-1、+1、-1…
由于AMI码的信号交替反转,故由它决定的基带信号将出现正负脉冲交替,而0电位保持不变的规律。由此看出,这种基带信号无直流成分,且只有很小的低频成分,因而它特别适宜在不允许这些成分通过的信道中传输。
从AMI码的编码规则看出,它已从一个二进制符号序列变成了一个三进制符号序列,而且也是一个二进制符号变换成一个三进制符号。把一个二进制符号变换成一个三进制符号所构成的码称为1B/1T码型。
AMI码除有上述特点外,还有编译码电路简单及便于观察误码情况等优点,它是一种基本的线路码,并得到广泛采用。但是,AMI码有一个重要缺点,即当它用来获取定时信息时,由于它可能出现长的连0串,因而会造成提取定时信号的困难。
为了保持AMI码的优点而克服其缺点,人们提出了许多改进的方法,HDB3码就是其中有代表性的一种。
HDB3码是三阶高密度码的简称。HDB3码保留了AMI码所有的优点(如前所述),还可将连“0”码限制在3个以内,克服了AMI码出现长连“0”过多,对提取定时钟不利的缺点。HDB3码的功率谱基本上与AMI码类似。由于HDB3码诸多优点,所以CCITT建议把HDB3码作为PCM传输系统的线路码型。
如何由二进制码转换成HDB3码呢?
HDB3码编码规则如下 :
1.二进制序列中的“0”码在HDB3码中仍编为“0”码,但当出现四个连“0”码时,用取代节000V或B00V代替四个连“0”码。取代节中的V码、B码均代表“1”码,它们可正可负(即V+=+1,V-=-1,B+=+1,B-=-1)。
2.取代节的安排顺序是:先用000V,当它不能用时,再用B00V。000V取代节的安排要满足以下两个要求:
(1)各取代节之间的V码要极性交替出现(为了保证传号码极性交替出现,不引入直流成份)。
(2)V码要与前一个传号码的极性相同(为了在接收端能识别出哪个是原始传号码,哪个是V码?以恢复成原二进制码序列)。
当上述两个要求能同时满足时,用000V代替原二进制码序列中的4个连“0”(用000V+或000V-);而当上述两个要求不能同时满足时,则改用B00V(B+00V+或B-00V-,实质上是将取代节000V中第一个“0”码改成B码)。
3.HDB3码序列中的传号码(包括“1”码、V码和B码)除V码外要满足极性交替出现的原则。
三、设计思路及程序代码
1、随机生成一组数列。
2、使其中的1交替变为1和-1实现AMI码的编码。
3、将AMI码中4个0的情况按照HDB3码的编码规则实现HDB3码的编码。
4、将AMI码中的所以的-1变为1实现AMI码的译码。
5、判断HDB3码中两个0和三个0的情况并做比较实现HDB3码的译码。
程序 :
1 | clc;clear; |
四、设计结果
五、结果分析
当原码随机成上述序列时,AMI码符合编码规则使其中的1交替变成1和-1,,故AMI码编码正确,
HDB3码中出现第一次四个零时将最后的一个零变为+v与前面第一个非零的1极性相同,故不
需要加B,当第二次出现四个0时,将最后一个0变为-v,此时的极性与前面一个非零的-1相同,
故不需要加B,所以HDB3码的编码正确。AMI码的译码中将其中所有的-1变为1得到的译码与原码
一致,故AMI码的译码正确。HDB3码的译码中出现三个0时第四个数的极性与前一个非0的数极
性一致,故将第四个非0的数置0,当出现第二次三个0时,第四个非0的数与前一个数的极性
一致,故将第四个非0的数置0,所以HDB3码的译码与原码一致。
v1.5.2