开篇:润墨网以专业的文秘视角,为您筛选了一篇基于MATLAB的IRIG―B(DC)码编码实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘要:IRIG-B(dc)码是由IRIG制定的一种串行格式的标准时间码,具有信息量丰富、分辨率高、速率适中等优点,在国内外得到了广泛采用。利用MATLAB平台强大的程序设计功能,对B码编码格式进行了仿真,更形象、更直观的展现B码的特点,有助于从业人员进一步加深对B码编码格式的理解和掌握。
关键词:B码;编码;程序;MABLAT
中图分类号:TN911 文献标识码:A 文章编号:1007-9416(2017)01-0033-02
IRIG-B码是由美国IRIG(INTER―RANGE INSTRAMENTATION GROUP,简称靶场间仪器组)所属的TCG所负责制定的一种标准时间格式,以编码信息量丰富、速率适中、分辨率高等优点得到了国外大多数时统设备的广泛采用。而我国为了实现时统设备体制的标准化,采用标准时间码作为与用户设备接口的时间信号,而该标准时间码是在IRIG-B码的基础上制订的,除编入时间信息外,在制定编码标准时保留一些码元用于各种控制、识别和其它特殊目的的功能编码,用户可根据具体的需要来确定时间码是否具有控制功能码元以及如何使用它[1]。本文介绍了一种在实际应用中的IRIG-B(DC)码编码格式,并利用matlab平台进行了编码实现。
1 B(DC)码编码格式
IRIG-B(DC)码也称直流码,它是一种串行格式的时间码,B码中每个脉冲称为码元,每个码元的准时参考点是该脉冲的前沿[2]。时帧周期为1秒,每帧由100个码元组成,码元周期为10ms,码元速率为100PPS。每10个码元中有一个位置识别标志,其宽度为8ms,位置识别标志分别称为P1,P2,…,P9,P0。参考标志是由位置识别标志P0和相邻的参考码元Pr组成的,参考码元Pr的宽度也为8ms,而且Pr的前沿即该帧B码的准秒时刻,因此可以说参考码元Pr是B码中最重要的码元。从秒准时点起,按秒、分、时、天的时序对时间信息进行8421编码,低位在前,高位在后,以原码形式表示,位置在P1、P2、P3、P4、P5;P6、P7、P8、P9、P0主要用来传输控制功能码,如地址码、修正量(采用反码表示)等。B码的信息采用脉宽调制的方式表示,码元宽度有3种,即2ms、5ms和8ms。B码中表示时间信息的码元共有30个,这些码元称为码字。表示二进制“1”的码字宽度为5ms,表示二进制“0”的码字宽度为2ms[2]。另外B码中索引标志的码元宽度也为2ms。具体编码格式如下:
P1的第1位是参考码元Pr,第2至5位为秒的个位,第6位为空位,第7至9位为秒的十位,第10位为位置识别标志位P1;P2的第1至4位为分的个位,第5位为空位,第6位至9位为分的十位,第10位为位置识别标志位P2;P3的第1至4位为时的个位,第5位为空位,第6位至9位为时的十位,第10位为位置识别标志位P3;P4的第1至4位为天的个位,第5位为空位,第6位至9位为天的十位,第10位为位置识别标志位P4;P5的第1至4位为天的百位,第5位为空位,第6位至9位备用,第10位为位置识别标志位P5;P6的第1位至第4位为地址位(0―15共16个地址),第5位为空位,第6位至第9位为修正量的十位,第10位为位置识别标志位P6;P7的第1位至第4位为修正量的百位,第5位为空,第6位至第9位为修正量的千位,第10位为位置识别标志位P7;P8的第1位至第4位为修正量的万位,第5位为空,第6位至第9位樾拚量的十万位,第10位为位置识别标志位P8;P9的第1位至第4位为修正量的个位,第5位为空,第6位至第9位为修正量的十分位,第10位为位置识别标志位P9;P0作为备用。
2 B(DC)码编码实现
Matlab作为一种应用广泛的科学计算软件,不仅具有强大的数值计算、数据可视化功能,而且具有强大的程序设计功能。通过编写扩展名为.m的M文件,用户可以实现各种复杂的功能,且Matlab语言语法简单、库函数丰富、程序易于调试[3]。根据B(DC)码编码格式,其编码算法简要流程如下:第一步是对输入的时间信息和控制功能信息进行8421编码;第二步通过插入参考码元Pr、位置标志Pi(i=1,2,….,9,0)和索引标志后形成与B码码元速率相对应的码流;第三步对码流进行脉宽调制生成标准时间码。软件主程序和脉宽调制子程序流程图分别如图1,图2所示。
时间信息按秒个位-秒十位-分个位-分十位-时个位-时十位的时序进行8421编码,且低位在前,高位在后,以原码形式表示,编码完成后按标准格式插入P码和空位,产生时间编码数组,完成P1、P2、P3的编码;根据文献[1],在IRIG-B码中日期是用天来表示的,从001到365或366,即将每年的1月1日编为第001天,而将12月31日编为第365天或366天(闰年),按天个位-天十位-天百位的时序进行8421编码,以原码形式表示,并且也是低位在前,高位在后,插入P码与空位后完成P4、P5编码,Matlab中用函数datenum来根据输入的日期计算天数;地址编码比较简单,直接将地址量变为二进制数即可,修正量与时间、日期、地址编码唯一不同的是采用反码表示,插入P码与空位后完成P6、P7、P8、P9、P0编码;其中所有P码用“2”表示,空位用“0”表示。利用MATLAB编写程序[3][4][5]运行结果分别如图3、图4、图5所示。最后将上述结果合成码元数组,通过编程即可产生DC码波形,并且通过对各项初始值采用手动输入的方法即可产生任意时刻的DC码波形,设当前时间为2013年09月05日15时23分56秒,终端用户地址为12,修正量为456789.8,程序运行结果如图6所示。从图中可以看出,程序运行的实际结果与标准编码格式是完全一致的,验证了编码程序的可行性。
3 结语
通过利用MATLAB平台对B码编码格式的仿真,更形象、更直观的展现了B码的特点,为从业人员理解和掌握B码编码格式提供了帮助。随着现代微电子技术和工艺的发展,利用可编程器件(如CPLD、FPGA)来产生标准化时间信号已成为目前标准化时统设备采取的主要方式,并在通信、数据处理、军事和航空航天等众多领域得到了广泛应用。
参考文献
[1]童宝润.时间统一系统[M].北京:国防工业出版社,2003.9.
[2]王丽敏,胡永辉,侯雷,刘军良.基于FPGA的IRIG-B(DC)码的解码方案的设计与实现[J].时间频率学报,2012.10第10期.
[3]管爱红,张红梅,杨铁军等.matlab基础及其应用教程[M].北京:电子工业出版社,2009.8.
[4]罗军辉.MATLAB在数字信号处理中的应用[M].北京:机械工业出版社,2005.
[5]敬照亮.MATLAB教程与应用[M].北京:清华大学出版社:北京交通大学出版社,2011.5.