破译BPM短波时码格式

less than 1 minute read

Published:

我偶然发现有时BPM有一些频率(5MHz大概是24小时播发时码)在载波附近大概±100Hz的位置有OOK的信号,在互联网上搜索发现了中国科学院国家授时中心蒙智谋于2014年发表的《BPM短波时码授时发播技术方案》。经过分析,此论文所述125Hz时码格式与接收到的不符。

那就只能自己分析一下了吧?

使用韩国的websdr接收5MHz的BPM,但是使用窄带CW,将通带定位在5000.098KHz上。使用了支持BPC帧的“timecode”时间码模式进行OOK的解调,可以在屏幕上显示出每一码元的长短,并且此模式下BPC时码接收显示区两分钟为一页,20秒为一行,适用于BPM一分钟一帧的定时。

Alt

图1

Alt

图2

图1与图2为2024年10月9日17时,从43分到46分接收到的数据

Alt

图3

图3为2024年10月9日18时,从6分至7分接收到的数据

通过判断图片上信号时间的长短,人肉转化为二进制,这些数据分别为

00000000011111111112222222222333333333344444444445555555555
12345678901234567890123456789012345678901234567890123456789
20241009 1743
00000000211000001020001010002110000001201000000020000000002
20241009 1744
00000000200100001020001010002110000001201000000020000000002
20241009 1745
00000000210100001020001010002110000001201000000020000000002
20241009 1746
00000000201100001020001010002110000001201000000020000000002
20241009 1806
00000000201100000021001010002110000000201000000020000000002
20241009 1807
00000000211100000021001010002110000001201000000020000000002

据此分析,每帧第0位是空缺的,为帧起始标志。有三种符号长度,其中最长的为分隔标志,最短的代表0,中等长度代表1。

第10至13位分别代表权重1 2 4 8,各位数据分别与对应权重相乘后相加即为分钟数的个位,

第15至17位分别代表权重1 2 4,如上处理后得到分钟数的十位。

第20至23位分别代表权重1 2 4 8,处理后得到小时数的个位,

第25至26位分别代表权重1 2,处理后得到小时数的十位,

但此时得到的两位小时数需要减一才是北京时间的小时数,也许BPM时码播发是按照UTC+9来的?

至此基本确定了帧结构是小端序,并且破译出了时间和分钟数,但是日期呢?如果联合我七月份接收的数据

00000000011111111112222222222333333333344444444445555555555
12345678901234567890123456789012345678901234567890123456789
20240719 1356Z 2156
00000000201100101020100001002100000000201000000020000000002
20240719 1357Z 2157
00000000211100101020100001002100000000201000000020000000002
20240719 1358Z 2158
00000000200010101020100001002100000000201000000020000000002
20240719 1359Z 2159
00000000210010101020100001002100000000201000000020000000002
20240719 1400Z 2200
00000000200000000021100001002100000000201000000020000000002
20240719 1401Z 2201
00000000210000000021100001002100000000201000000020000000002
20240719 1428Z 2228
00000000200010010021100001002100000000201000000020000000002
20240719 1429Z 2229
00000000210010010021100001002100000000201000000020000000002
20240719 1430Z 2230
00000000200000110021100001002100000000201000000020000000002
20240719 1431Z 2231
00000000210000110021100001002100000000201000000020000000002
20240720 0955Z 1755
00000000210100101020001010002010000000201000000020000000002
20240720 0956Z 1756
00000000201100101020001010002010000000201000000020000000002
20240720 1159Z 1959
00000000210010101020000001002010000000201000000020000000002
20240720 1200Z 2000
00000000200000000021000001002010000000201000000020000000002

会发现根本无法解码,因为七月份数据里小时数之后的0太多了,仅有一个进位的操作。

然而最近有人告诉我,在北京航空航天大学电子信息工程学院的王雨竹、秦红磊、万国龙发表的论文《陆基无线电授时系统信号分析与解算》中提到了他们破解的BPM时码,经过查看,情况属实…

Alt

图4 论文关于BPM的片段

不过只提到了小时个位是被提前加一的,没提到十位进位的事,而且依然描述在125Hz而不是100Hz,优势在我。

《陆基》一文提到,

第30至33代表一年当中天数的个位,

第35至38位代表天数的十位,

第40至41位代表天数的百位。

使用10月9日接收的数据进行验证,数据吻合;但与7月接收的数据不匹配。

至于到底是不是UTC+9,等我接收到23时的数据再更新这篇博客…

至于7月份数据的日期数据是什么情况,是不是发射机出了问题?尚不知情。

如果我早点发现《陆基》一文,就不用那么费劲的接收和破译了T_T


2024年12月10日更新

于本日23时接收到数据

00000000011111111112222222222333333333344444444445555555555
12345678901234567890123456789012345678901234567890123456789
20241210 2307
00000000211100000020000000002011000010211000000020000000002
20241210 2308
00000000200010000020000000002011000010211000000020000000002

根据第20至26位均为0,且天数为346(UTC+8时间应为第345天),联合分析时域信号可以得出结论

BPM时码采用UTC+9,即东九区

BPM时码在5MHz上以调幅下的2ASK(OOK)发送,子载波频率100Hz,

200ms宽脉冲代表0,500ms宽脉冲代表1,800ms宽脉冲为分隔标志。脉冲宽度与《陆基》所述基本相符。

每帧第0位是空缺的,为帧起始标志,此时时号播发频率1800Hz、宽800ms的分钟信号,信号起点应为UTC每分钟第0秒时刻。

注意到有频率为1800Hz、宽5ms的脉冲超前于时码每位起点时刻30ms,且每分钟内第一个此种脉冲滞后于上述时号的分钟信号1秒整,此脉冲应为时号的秒信号。

Alt

图5 分钟信号 秒信号 时码第一位

据《长短波授时时间频率控制与监测》等论文所述,为便于区分不同电台的秒信号,BPM的UTC秒信号脉冲超前于国家授时中心的UTC时刻20ms,未能验证。

第10至13位分别代表权重1 2 4 8,各位数据分别与对应权重相乘后相加即为分钟数的个位,

第15至17位分别代表权重1 2 4,如上处理后得到分钟数的十位。

第20至23位分别代表权重1 2 4 8,处理后得到小时数的个位,

第25至26位分别代表权重1 2,处理后得到小时数的十位。

第30至33代表权重1 2 4 8,处理后得到天数的个位,

第35至38位代表权重1 2 4 8,处理后得到天数的十位,

第40至41位代表权重1 2,处理后得到天数的百位。

由此,BPM时码的帧格式已经被全部破解完毕,可以据此解析BPM时码,得到天数、小时、分钟信息,结合数据位的定时和时号可以得到秒信号,据此确定准确的日期时间。

另外注意到数据中并不包含年份信息,年份需要手动设置以确定平闰年,获得具体的日历信息。

注意到数据中不含有校验或纠错信息,建议至少接收三帧以获得可靠的数据。

感谢BH6ABO在破解BPM时码格式中做出的支持和贡献。

附件

下面给出接收到的BPM(AM)和BPM时码(窄带CW)示例音频(均包含前后分钟的片段)

BPM


BPM时码


免责声明

本文所述BPM时码格式的知识产权应当归时码开发者或其所属单位所有。

本文所述BPM时码格式仅供个人学习研究使用,无意侵犯任何个人、单位或企业的任何知识产权。

使用本文所述BPM时码格式所造成的一切后果与本人无关。

参考文献

[1]蒙智谋.BPM短波时码授时发播技术方案[J].时间频率学报,2014,37(03):145-150.DOI:10.13875/j.issn.1674-0637.2014-03-0145-06.

[2]王雨竹,秦红磊,万国龙.陆基无线电授时系统信号分析与解算[J].导航定位与授时,2023,10(05):107-118.DOI:10.19306/j.cnki.2095-8110.2023.05.012.

[3]车爱霞,魏孝锋,乔建武,等.长短波授时时间频率控制与监测[J].时间频率学报,2022,45(03):194-201.DOI:10.13875/j.issn.1674-0637.2022-03-0194-08.