基于MATLAB的HDB3编译码实现.pdf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLAB HDB3 译码 实现
- 资源描述:
-
石油仪器
PETROLEUM INSTRUMENIS
2012年10月
开发设计
基于 MATLAB的HDB3译码实现
沈媛煖梁浩
(长江大学电信学院湖北荆州)
摘要:通常由信源发出的数字基带信号含有较多的低烦分量,甚至带有直流分量,这些信号由于易产生码间千扰进而
直接影响传输的可靠性,所以一般不宜直接用于传输。HDB3码(三阶高密度双极性码)是基带传输码型之一,其具有编
码规则简单、无直流分量、低频分量少、连0数不超过三个、提取同步方便等优点,有利于信号的恢复和检验。文章提出
HDB3码的编码和译码算法思想,并在 matlab平台上得到了验证。
关键词:三阶高密度双极性码;编码;译码
中图法分类号:TN9117
文献标识码:B
文章编号:1004-9134(2012)05-0020-03
换成V码。在其它条件情况下,让源代码照常输出
言
补B是为了保证附加V符号后的序列不破坏“极性
传统的石油井下信号在传输过程中通常采用曼彻交替变换”造成的无直流特性,即相当于V符号之间
斯特编码方式。所谓曼彻斯特码,就是将每一个码元有偶数个非0符号时,把后一小段的第一个0变成
分成两个相等的间隔.这对于接收端提取位同步信号个非破坏符号B.至于单双极性变换,在 MATLAB
是非常有利的,但同时也带来了不利之处,如增加了中可以直接用对应的数字表示,即正极性就用“+'”
倌息传递量,延长了传输时间,所占的频带宽度比原表示,负极性就用“-1”表示
始信号宽了近一倍。随着数字通信的迅速发展,人们1.2HDB3编码算法的实现
先后提出各种适合线路传输的码型,如CMI码、AMI
实现HDB3编码算法首先应定义输入码元的长
码、 MILLER码、HDB3码等。其中HIDB3码因具有度,在输人的源码中,当码元位置为1时,如果上
无直流成分、低频成分和连0个数最多不超过三个等个非0符号为正,则下一个非0符号为负,HDB3码
明显优点,具有时钟恢复和更好的抗干扰性能,这使输出为“-1',反之下一个非0符号为正,HDB3码
它更适合于长距离信道传输。HDB3码具有较强的检输出为“+1"”,与此同时,计零标志位清零,数1标
错能力,同时HDB3码方便提取位定时信息,对定时志位将数1的个数累加当码元位置为0时,计1标
信号的恢复十分有利,是基带电信设备之间进行基带志位清零,数0标志位将数0的个数累加,当0的个
传输的主要码型之
数少于4个时,HDB3码输出为0;当数0个数等于
4时,计0标志位清零,与此同时,如果上一个V的
1HDB3编码器设计
极性为负,则当前V符号为正,将V的极性标志位及
非0符号标志位均变为正,同时HDB3码输出为“-1”
1.1HDB3码的编码设计思想
之后再判断是否需要补B。当判断完应插V的位置后
HDB3码的编码设计主要包括插V、补B及输出如果两个V符号之间有偶数个非0符号,也就是当计
极性的单/双变换山,具体设计模型如图1所示。
1个数标志位是偶数时,就将相邻的两个V之间的后
个V前面的第三个0变为与当前V相同符号的代码
代码输入
插“V
単/双极IDB3码
补“B
性变换
输出。在 Matlab中编码部分程序如下2.?
Scode=[100000100001010000001010100
图1HDB3编码器模型
lengths=length (Scode),
插“V”符号的设计思想很简单:首先判断输入
last=0;%上ー个V的符号
的信码是什么。如果输入的是0码,则接着判断这是
lastiirue=0;%上ー个HDB3非零值的符号,初始
第几个0码,如果是第四个0码,则把这一位码元变
化为0,则第一个非零码为+
counter-0;%连续出现的零的个数
第一作者简介:沈媛媛,女,1980年生,2009年通信与信息处理专业倾土毕业,现为长江大学电信学院讲师,从事数字信号处理的教学与研
究。邮编:434023
2012年第26卷第5期
沈媛媛等:基于 MATLAB的HDB3编译码实现
countllrue=0;%两个V之间的非零值个数
for codeposition=l: lengths
if(Scode (codeposition)==1)
if (astrue==0)
HDB3 (codeposition )=-1
last lrue
elseif (lasttrue=1)
HDB3 (codeposition)=1>
last' lrue=0
图4第三组编码算法验证
counter=0;%记录零的个数清零
count'true=countrie+1
比较以上的三个图,可以看出它们分别从不同的
%%非零值的个数加1
角度验证了IHDB3码的编码算法。其中图2表明,当
1,3HBD3编码算法的运行结果
相邻两个V符号之间有0个非0符号,按偶数个处
下面利用 Matlab软件取三组不同的源码分别对
理,需要进行补B;卧3表明,当从起始位置起有4
编码算法进行验证,其中第一组源码个及以上的连0申时,默认插人的第一个V前面还有
10000000000,0所得HDB3V,并且它们之间没有非0符号,起始位置按补B处
码是“-1000-101-11001-101-100
理;图4表明,当插入的第一个V前有偶数个非0符
1001-1010-10100”,如图2所示,第二组源
号时,默认在此之前的V与该V之间只有源码中出
码是“00000000000010100”,所得
现的非0符号,它们之间的其它未出现的元素都按0
HDB3码是“-100-1001-11001-101-100元素处理。
-11001-1010-10100°,如图3所示,第三组2HDB3译码器设计
源码是“0010000010000010100”,所得HDB3
码是“00-11-100-110-11001-100-112.1HDB3码的译码设计思想
0-1010-100”,如图4所示。图中“ Scode”代表
HDB3译码器包括单/双极性变换、V码检测、时
放在内部寄存器的源码,“HDB3”代表当前的HDB3码。钟提取、扣扣B四部分,图5是HDB3译码器设
计模型。
IDB3码
码检测測
B码识别
双单极源码输出
性变换
いe2:hr在3
?G
图5HDB3译码器模型
2.2HDB3译码算法的实现
.ons I' ttrzpogh
HDB3译码算法同编码算法思想一样,也需要对
输人的HDB3码定义输人码元长度。根据HDB3码的
图2第一组编码算法验证
编码规则,第一个V符号不可能出现在前三个位置,
这就保证了后面的代码位置减3有意义而且不会溢
出。在进行译码时,如果HDB3码的当前位置码元与
:yg:.P.r!titは
上一个非0符号相同,则将当前代码的位置及其前面
的非0符号位一并清0;否则源码照常输出,如果源
码位置为“-1”,全部变为“+1”输出。在 Matlab
中译码部分程序如下?:
Column 2 brough
HDB3展开阅读全文
文档分享网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。



链接地址:https://www.wdfxw.net/doc81039708.htm