接下来我们介绍WSJT-X中微弱信号数字协议的工作原理,以及软件开发的过程。

上两期连载重点介绍微弱信号通信程序WSJT-X的功能。该软件为大量业余无线电活动提供了工具,包括低功率远距离通信、流星散射、月面反射、精确频率测量等,所有这些都可以在相对较小的电台设备下实现。基于现代通信和信息论,WSJT-X协议和软件可以将有效的信噪比提高10~15dB。

本期开始我们将概述一些数字通信理论的基本原理,包括一些让大多数业余爱好者都能参与讨论的例子。我们比较了WSJT-X中的八种微弱信号协议,并解释了它们是如何取得令人印象深刻的性能的。最后,我们会介绍编写WSJT-X软件的工具和合作的过程。我们认为,热诚的爱好者将他们的算法,编程技巧以及兴趣投入到这项爱好中是很重要的。

许多业余无线电爱好者希望对这些微弱信号协议的工作原理以及它们是如何开发的有更深入的了解。希望这篇文章能满足他们的愿望。

数字通信原理

数字通信将数字信息从源头传送到一个或多个目的地。在这里,数字信息被调制到载波上并通过无线电信道传输。传输数据的基本单位是信道符号。符号代表数字,依次由比特组成。调制器可以在每个符号中发送m个信息比特,使用2m不同的波形来表示从0到2m-1之间的符号值。不同的波形可能有不同的振幅、相位、频率或形状。WSJT-X波形由等幅正弦曲线构成。MSK144协议使用交错正交相移键控调制(OQPSK),其波形可以保持恒定包络。所有其他模式使用频移键控(FSK),使用不同的音调频率来表示每个符号值。二进制调制(m=1)意味着一次传输一比特。除了一种WSJT-X模式之外,所有的调制方式都采用了较大m值的调制方式。

通过向数字消息中添加受控冗余,可以获得显著的好处,从而可以识别和纠正传输过程中的错误。简单重复每个符号是一种低效的冗余形式。为了获得更强大的冗余能力,我们可以将k个符号长的信息序列以一种受控的方式映射到另一串更长且唯一的字符序列,后者有n个符号长,称为码字。这种技术就是前向纠错(FEC)。WSJT-X协议使用的块码中,n和k的值是固定的,标记为(n,k)。整数参数q可以用来定义代码可用符号值的范围,类似于我们用于调制方案的m。然后,参数Q=2q被称为代码的字母表大小。代码符号所代表的值从0到Q-1,每个码字都传递kq比特的信息。冗余量以n/k比为特征,其倒数k/n为编码率。这种k到n映射方案及其对应的n对k逆变换的数学基础设计构成了现代通信理论的一个重要分支。

要想正确地接收这些符号,要求发送电台和接收电台之间时间和频率是精确同步的。为了在常见的业余电台中实现这一点,每个WSJT-X协议都采用了这种同步模式:将已知符号的序列与所携带的信息符号交织在一起。软件解调算法首先寻找已知的模式,从而确定频率和时间偏移,以及接收到的符号之间的边界位置。

具体来说,JT65模式使用(63,12)q=6,因此Q=2q=64的代码。它的编码率为k/n=0.19,其调制使用m=6,因此需要2m=64种信号单音用于频移键控,外加一个信号单音用于同步。

让我们将传输和接收过程划分为一系列独立的步骤(参见图1)。这些步骤大致对应于WSJT-X源代码块。步骤1-5在发射端进行,步骤6-9在接收端进行。

  • 1.生成一个消息
  • 2.将消息压缩为每个符号q位的k个符号
  • 3.增加纠错冗余以产生n个符号的码字
  • 4.添加同步模式并调制到载波上
  • 5.通过无线电信道发送调制波形
  • 6.接收、同步和解调以产生n个符号,其中一些可能是错误的
  • 7.解码n个接收到的符号以恢复k个无错误的消息符号
  • 8.解压缩k个符号,以人可读的形式恢复原始信息
  • 9.向接收用户发送消息

最关键的是步骤3和步骤7。步骤7可能需要大部分的计算资源。

在开发协议时,我们希望选择一个有效的编码方式,即使在接收到的码字被破坏时,也要最大限度地恢复传输的消息。同样重要的是要考虑在目标传播路径上可能出现的衰减、多普勒频率漂移和干扰。我们需要一种高效的解码算法,它可以在合理的计算时间内执行,并确保错误解码很少。

WSJT-X协议

信息结构

步骤2和步骤8涉及数据的无损压缩和解压缩。此过程称为信息的信源编码。WSJT-X协议JT4、JT9、JT 65、QRA64和MSK144都使用结构化消息,将联络过程中所需要的明文基本信息编码为精确的kq=72比特位长的数据包。数据包包含两个28比特位长的字段,一个通常用于呼号,另一个15比特位长的字段用于网格定位、信号报告、确认或是73等。此外还有一个比特位用于标记编码任意字母数字文本的数据包,最多可达13个字符。特殊情况下允许对其他信息进行有效编码,例如附加呼号前缀(Za/KA2ABC)或后缀(G8XYZ/P)。这么做的目的是将用于最小联络的常见消息压缩在固定72比特位长的数据包里。FT8使用类似的信源编码,通过添加3个额外的比特来提供灵活性和空间,这些比特可用于定义多达14种增强的消息类型。

为什么呼号是28比特位,网格定位是15位?标准的业余呼号由一个或两个字符前缀组成,其中至少一个必须是字母,后面跟着一个数字和一个到三个字母的后缀。在这些规则中,可能的呼号数为37×36×10×27×27×27×27,或略多于2.62亿。数字27和37之所以出现,是因为在前三个位置和最后三个位置中,有一个字符、字母或者数字可能不存在。因为2的28次方大于2.68亿,所以28位就足够了。同样,地球上四位的网格定位符的数目为180×180=32400,小于2的15次方,因此网格定位符可以用15位进行唯一的编码。

28比特位用来代表标准呼号有点太多,会剩下超过600万个空槽。其中一些已分配给特殊的消息组件,如CQ、DE和QRZ。CQ后面可以跟着三位数,以表明应答频率。在流星散射模式MSK144中,如果KA2ABC在50.260上呼叫,并发送消息“CQ 290 KA2ABC FN20”,这意味着他或她将在50.290上收听。可以发送形式为±xx或R±xx的数字信号报告来代替网格定位。根据JT 65模式的最初定义,数值信号报告值“xx”位于-30到-01dB的范围内。新的程序版本将这个范围扩展到了-50到49dB, 适用于除JT65以外的所有模式。国家前缀或后缀可附加在其中一个呼号上。当使用这些复合呼号的功能时,将发送额外的信息来代替网格定位,或者使用上面提到的六百万个可用空槽中的一些。

我们的压缩算法支持从CQ AA到CQ ZZ的消息。这样的消息是通过在呼号位填写E9AA到E9ZZ的伪呼号来编码的。在接收端,这些呼叫将转换回CQ AA到CQ ZZ的形式。让用户可以发送定向CQ消息,如CQ DX、CQ EU或CQ VT。

纠错码

WSJT-X中的每个协议都采用了不同的编码、调制方案和同步模式。目标是优化每一种模式对特定类型传播的有效性。在某种程度上,最终的代码选择也反映了我们自己对通信理论的历史发展日益熟悉的过程。JT65使用里德-所罗门码,JT4、JT9和WSPR都使用稳健的卷积码。这种编码码是由业余无线电爱好者PhilKarn,KA9最早Q应用到业余无线电上的。这些都是著名的纠错码,已经被深入研究半个多世纪了。我们最新模式使用的是最先进的编码,接近于这一研究领域的前沿。MSK144和FT8使用低密度奇偶校验(LDPC)码,QRA64是多进制重复累积码(QRA),这是一种特殊类型的非二进制LDPC码。每种模式的完整技术规范可以在WSJT-X用户指南和我们公开的源代码中找到。

慢模式的协议细节

图2在WSJT-X瀑布图上显示了各种慢模式的示例。还包括一个未调制的载波和一个25WPM CW信号。这些信号是在2500Hz参考带宽内,以-10dB的信噪比产生的。在WSJT-X模式中,WSPR的带宽最小,为5.9Hz,JT65的带宽为177.6Hz。JT4、JT9、JT65和QRA64使用1分钟的定时发送和接收序列,与UTC同步。FT8使用15秒序列,WSPR使用2分钟序列。

表1概述了慢模式的一些设计参数。FEC的类型用LDPC表示,是低密度奇偶校验,C代表卷积码,RS代表里德-所罗门码,QRA用代表多阵列重复累积码。选定的键控速率使传输的长度在FT8和其他模式下分别约为13秒和48秒。对于JT4、JT9、JT65和QRA 64模式来说,通常会在传输结束时给消息解码和接收操作员留下足够的时间,以便在下一分钟开始之前决定如何回复。对于15秒的T/R序列,FT8会有更严格限制。可选的自动测序功能允许软件根据接收到的信息生成合适的消息。选择键控速率的确切值,以便在每秒12000个样本的情况下,每个信道符号的数字样本数是一个整数,没有任何候选因数会大于7。这一有利的选择使得一些数字信号处理算法效率更高。

接下来,我们按发展的时间顺序来介绍这几种模式:JT65发明于2003年,JT4于2007年,WSPR于2008年,JT9于2012年,QRA64于2016年,FT8于2017年。

JT65:JT65协议的详细描述发表在QEX上。其信道符号的一半用于同步,在最低信号单音频率上使用伪随机模式。其他符号使用2m=64种不同信号单音携带编码信息。特殊功能(只用于月面反射EME)可以传达EME风格的“OOO”信号报告和被解释为RO、RRR和73的短消息。EME子模式JT65B和JT65C使用的信号单音间隔比JT65A大2倍和4倍。JT65在MF和HF波段已经变成非常受欢迎的低功率DXing,同样的,EME在VHF和更高波段上也很受欢迎。

JT4:每个信道符号携带一个信息比特(最重要的比特)和一个同步比特。因此,50%的传输能量用于同步。JT4A到JT4G的子模式的差异在调制音频的间隔上,分别是波特率为4.375时的1、2、4、9、18、36和72倍。多样化的子模式在收到多普勒频移影响的传播路径上是有帮助的。例如,JT4F经常用于10GHz频段的EME通信。

WSPR:它被设计用来广播探测而不是双向通讯,它与其他WSJT-X慢模式不同,它使用消息长度k=50位和2分钟T/R序列。信息包通常包括一个28位的呼号,一个15位的网格定位,以及一个在dBm中传送的7位发射机功率。替代格式可以使用两个传输序列来传递复合呼号和/或六位格网定位。典型的WSPR用法已发表在QST上。

JT9:用8个信号单音频率来传递信息,另外一个用来同步。JT9 A-H慢速子模式分别采用波特率为1.736时的1,2,4,8,16,32和64倍的信号单音间隔。JT9A (通常简称JT9)使用的带宽不到JT65的10%,对于稳定、不失真的信号,比JT65敏感约2dB。由于这些原因,JT9在HF波段上很受欢迎。

QRA64:一种用于EME和其他极微弱信号传播的实验模式。其内部代码由Nico Palermo,IV3NWV设计。同步是通过使用三个7×7Costas阵列来完成的。子模式QRA64 A-E分别采用1.736波特率的1、2、4、8和16倍信号单音间隔。早期测试表明,QRA64A对MF和HF的弱信号工作非常有效,对VHF和UHF波段的EME也非常有效。子模式QRA64C-E在24GHz的微波波段上非常适合EME。

FT8:是为传播条件而特别设计的,例如在50MHz上的多跳突发电离E层传播。这种传播信号弱、衰减大、开放时间短。于是人们特别希望快速完成可靠的、可确认的联络。发送和接收的时间序列是15秒而不是1分钟。较短的传输时间意味着FT8的灵敏度与其他慢模式相比在条件相当的情况下低约6dB。信息包包括75位的消息和12位循环冗余校验(CRC),这有助于确保极低的误码率。该模式采用6.25波特的8信号单音FSK,并且同步采用3个7×7的Costas阵列。据PSK Reporter网站(见图3)的一张快照显示,FT8在2017年初夏推出后迅速流行起来。