看到 HamCQ 手册中的 SSTV 部分尚为空白,于是想帮忙填补一下。欢迎合并! :)
内容已经过 ChatGPT 与 DeepSeek 的检查与验证,可以保证绝大部分内容的正确性。
仅供参考,可能有错误或遗漏。欢迎纠正、补充!
慢扫描电视(英语:Slow-scan television,简称 SSTV)是一种利用无线电传输静态图像的通信方式。
与能够连续传输动态画面的快速扫描电视(ATV)不同,SSTV通常使用数十秒至数分钟传输一幅静态图像,可以在普通语音无线电信道的带宽范围内传输彩色或黑白图像。
在业余无线电中,典型的模拟 SSTV 通常将图像的亮度或色差信息转换为约 1.2~2.3 kHz 范围内变化的音频频率,再通过单边带等方式进行传输。接收端对音频信号进行解调和频率分析后,可以重新构成图像。
现代 SSTV 通常使用个人计算机、声卡和 SSTV 软件完成调制与解调,不再需要早期 SSTV 系统所使用的专用扫描转换器、长余辉显示器等设备。对于爱好者而言,现在可以很方便地体验到 SSTV 的魅力。
SSTV 是什么?
SSTV的基本概念
SSTV 的基本思想可以概括为:图像 → 音频 → 无线电 → 音频 → 图像。
与数字图像通信不同,传统 SSTV 并不是将 JPEG、PNG 等图像文件直接转换成数字比特流进行传输,而是将图像扫描成连续的模拟信号。
对于最常见的模拟 SSTV 模式,一个像素的亮度对应一个特定的音频频率。例如,典型系统使用约 1500 Hz 表示黑色、2300 Hz 表示白色,中间的亮度则对应 1500~2300 Hz 之间的不同频率。因此,SSTV 的声音通常具有典型的“卡拉卡拉”声(快速变化的音调),以及周期性的“啾啾”声(同步脉冲声)。
彩色 SSTV 则需要进一步传输多个颜色分量。为了实现彩色传图,不同模式采用不同的策略(即颜色编码方式)。例如, Martin 和 Scottie 系列分别依次发送绿色、蓝色和红色分量,而 Robot 系列采用亮度和色差信号进行传输。
SSTV系统的基本结构
ARRL 对 SSTV 的概括是:图像信息被转换成变化的音频频率,然后作为音频信号送入无线电发射机;接收端则进行相反的处理。一个现代 SSTV 系统可以简化为下面几个部分——
在发射端,通常需要对待发射的图像进行扫描与颜色分解,并通过调制器生成对应的音频信号,之后通过声卡与发信机完成音频发射。
在接收端,通常需要使用声卡采集音频,随后将音频信号传入解调器,最后恢复初始图像。
相信各位都可以非常直观地理解这一点。
SSTV 的发射原理
业余无线电中存在许多不同的 SSTV 模式。历史上,欧洲业余无线电活动中 Martin M1 较为常见,而美国则长期以 Scottie S1 为主要模式之一;两者的总体原理相同,因此这里我们使用 Martin M1 作为典型例子说明 SSTV 的工作方式。
VIS(Vertical Interval Signaling)
你可能会注意到,对于不同图像的 SSTV 音频,其开头总是有一段看似固定不变的“旋律”。在真正的图像数据之前,SSTV 会发送一段用于识别模式的信号,那就是垂直间隔信号(VIS),相当于报头,告诉接收方自己使用的模式等信息,让其做好准备。
注:发送端通常先发送 VIS 作为模式识别序列;不同软件或模式还可能在其前后加入额外的校准序列。
一个典型的 VIS 开头包括:
一个Leader,一个Break,一个Leader,分别是300毫秒1900赫兹,10毫秒1200赫兹,300毫秒1900赫兹;
10个连续的数字比特,每个比特时长均为30毫秒——第1个比特是起始位;之后7个比特是图像模式等内容编码;第9个比特是偶校验位,第10个比特是停止位。起始和停止位的音高1200赫兹;对于其余位而言,如果是0,那么就为1300赫兹;如果是1,那么就为1100赫兹。
在 VIS 刚被提出的时候,模式还不是很多,因此每个位都有对应的含义,留给模式的编码只有3位;不过之后SSTV发展出了很多模式,此时3位的模式编码显然不够了,因此干脆把整个7位拿来做模式编码。一些常见模式的编码如表所示。查表可得Martin 1对应的模式编码为十进制的44(二进制的010 1100),对应的偶校验码为1。
像素如何变成声音
Martin M1 使用约 320 × 256 的图像格式,完整传输一幅图像约需要 114 秒。其图像部分按照绿色、蓝色、红色的顺序依次逐行扫描。
一行图像可以简化表示为:Sync Pulse→Porch→绿通道→蓝通道→红通道。其中,
Sync Pulse(同步脉冲)使用 1200 Hz 信号,告诉接收机新的一行开始;
Porch 是紧随行同步脉冲后的固定频率段,用于同步及接收机的基准/电平处理;
颜色数据(R/G/B通道)利用 1500~2300 Hz 的连续频率表示对应颜色分量的亮度。假设每个通道的值 P 的范围为0 ~ 255,则可以使用近似线性关系:f =1500 + P * 800 / 255,得到对应的频率。其直接表现为随时间变化的音频频率。
Martin M1 的典型行结构使用约 4.862 ms 的 1200 Hz 行同步信号、0.572 ms 的 1500 Hz Porch,以及约 146.432 ms 的颜色扫描段。历史 SSTV 文献和现有软件实现普遍采用这一组参数。ARRL 的 SSTV 技术资料也说明,Martin 和 Scottie 等模式使用水平同步信号,并给出了 SSTV 图像扫描的基本时序。
一个简化的 Martin M1 SSTV 音频生成示例
# -*- coding: utf-8 -*-
"""
Martin 1 SSTV converter
"""
import math
import wave
import struct
from PIL import Image
pcm = []
MAX_AMP = 30000
SAMPLE_RATE = 44100
phase = 0
def tone(freq, duration):
global phase
samples = int(duration * SAMPLE_RATE)
step = 2 * math.pi * freq / SAMPLE_RATE
for i in range(samples):
pcm.append(int(MAX_AMP * math.sin(phase)))
phase += step
if phase >= 2 * math.pi:
phase -= 2 * math.pi
def send_vis(vis):
tone(1900, 0.300)
tone(1200, 0.010)
tone(1900, 0.300)
tone(1200, 0.030)
epb = 0
for i in range(7):
bit = (vis >> i) & 1
epb ^= bit
if bit:
tone(1100, 0.030)
else:
tone(1300, 0.030)
if epb:
tone(1100, 0.030)
else:
tone(1300, 0.030)
tone(1200, 0.030)
def send_channel(channel):
pix_dur = 146.432e-3 / 320
for pixel in channel:
pitch = 1500 + pixel * 800 / 255
tone(pitch, pix_dur)
def send_line(r, g, b):
tone(1200, 4.862e-3)
tone(1500, 0.572e-3)
send_channel(g)
tone(1500, 0.572e-3)
send_channel(b)
tone(1500, 0.572e-3)
send_channel(r)
tone(1500, 0.572e-3)
def read_img(path):
img = Image.open(path).convert("RGB").resize((320, 256))
pixels = img.load()
for y in range(256):
r, g, b = [], [], []
for x in range(320):
R, G, B = pixels[x, y]
r.append(R)
g.append(G)
b.append(B)
send_line(r,g,b)
def write_wav(path):
with wave.open(path, 'w') as f:
f.setnchannels(1)
f.setsampwidth(2)
f.setframerate(SAMPLE_RATE)
data = struct.pack('<' + 'h' * len(pcm), *pcm)
f.writeframes(data)
if __name__ == '__main__':
in_path = input('Enter input path for image:').strip()
out_path = input('Enter output path for wav:').strip()
send_vis(44)
read_img(in_path)
write_wav(out_path)
快速上手
发射、接收设备
现代 SSTV 不需要专用的 SSTV 硬件。最基本的设备包括:
接收端
- 一台接收机;
- 一台计算机或移动设备;
- 在终端设备(计算机 / 移动设备)上安装的 SSTV 解码软件;
- 接收机音频输出与计算机之间的音频连接。最简单的情况下,也可以将无线电设备的扬声器靠近手机或计算机麦克风,让 SSTV 软件直接接收音频——不过直接连接音频通常能够获得更好的效果。历史 ARRL 入门资料也指出,声卡本身就可以承担 SSTV 系统所需的模数转换和数模转换工作。
发射端
除上述设备外,还需要:
- 一台发信机;
- 能够工作的天线;
- 在终端设备(计算机 / 移动设备)上安装的 SSTV 编码软件;
- 计算机与电台之间的音频 / PTT接口。
短波 SSTV 通常使用 SSB 发射。由于 SSTV 是连续音频信号,其发射机占空比较高,因此应按照电台制造商和相关操作规范控制发射功率,避免设备过热或过载。
常用软件
MMSSTV
MMSSTV 是 Windows 平台上历史悠久的 SSTV 软件,由 JE3HHT Makoto Mori 开发。它支持 SSTV 的接收、发送以及多种模式,是许多业余无线电爱好者使用 SSTV 时的传统选择。ARRL 也将 MMSSTV 列为 SSTV 入门软件之一。
QSSTV
QSSTV 是 Linux 平台上的 SSTV 软件,同时支持模拟 SSTV 和部分数字图像模式。项目支持通过声卡进行 SSTV 的接收和发送,并支持与 Hamlib 等无线电控制软件结合。
Robot36
Robot36 是移动端的常用 SSTV 接收解码软件。当使用手台等便携电台接收的时候,通常 Robot36 就是一个很好的选择。
进行一次 SSTV 通联
一次典型的 SSTV 通联可以按照以下步骤进行。
监听频率
首先选择当地业余无线电频段计划允许或协商好的 SSTV 活动频段(例如杭州市常用 SSTV 频率为144.900 MHz,使用 FM 模式),并监听一段时间,确认频率没有正在进行的通信。
建立语音联系
传统 SSTV 操作通常先使用语音呼叫 CQ SSTV,同时表明呼号,或者先与另一位操作员建立普通语音联系。在正式发送图片前,应说明使用模式,便于接收方即可选择正确的解码模式。ARRL 的 SSTV 入门资料也特别建议在发送图像前声明所使用的模式。
发送图片
选择图片和 SSTV 模式后:
- 确认频率没有被占用;
- 设置正确的模式;
- 开始发送;
- 等待完整图像发送完成。
接收并确认
接收方在正确模式下监听即可。一幅图像接收完成后,之后双方可以交换另一幅图像。
SSTV 的相关活动
国际空间站 SSTV
SSTV 是业余无线电空间通信中非常有代表性的应用。
国际空间站(ISS)上的业余无线电设备曾多次进行 SSTV 活动。活动期间,空间站向地面发送图片,地面业余无线电爱好者可以使用 VHF 接收机、天线和 SSTV 软件进行接收。并且在良好条件下,使用非常简单的接收设备也有不错的机会接收到图片。(参考:UV-K6手台 + 原装天线 + 地面高度)
不过,ISS 的 SSTV 并不是持续运行的常规服务,而是根据 ARISS 的任务安排进行活动。因此计划接收 ISS SSTV 时,应查看最新的 ARISS/AMSAT 活动公告。接收到 SSTV 图像后,可以前往 https://ariss-usa.org/ARISS_SSTV/ 提交图片等相关信息,获取一张精美的奖状。
其他卫星
除 ISS 外,也有其他业余无线电卫星曾搭载 SSTV 或类似图像传输功能。卫星状态和活动时间可能随任务状态变化,因此应在实际接收前查询最新的卫星状态信息与传图活动计划预告。
SSTV 的发展历史
早期概念
SSTV 的概念可以追溯到 1950 年代。在 1957~1958 年间,Copthorne Macdonald 开发了早期 SSTV 系统。该系统使用摄像管和特殊显示设备,以约 120 行、每行约 120 像素的低分辨率黑白图像,在约 3 kHz 的电话信道中传输静态图像。这一思想的核心是,不提高无线电信道的带宽,降低图像的时间分辨率。
因此,与传统电视相比,SSTV 不需要传输每秒几十帧的动态图像,而是用几十秒甚至更长时间逐行发送一幅静态图像。
SSTV 与早期航天
SSTV 一词也出现在早期航天电视系统的历史中。
苏联的 Luna 3 曾使用慢扫描电视系统向地面传回月球背面的图像;美国 Mercury、Apollo 等早期航天任务也使用过低带宽电视系统。Apollo 任务中的 SSTV 系统尤其著名,其设计目标之一就是在有限的无线电带宽条件下向地面传输电视图像。
需要注意的是,航天任务中使用的早期 SSTV 系统,与现代业余无线电中常见的 Martin、Scottie、Robot 等 SSTV 模式并不是同一个协议。虽然它们共享“降低扫描速度、换取较低带宽”的基本思想,但具体技术实现不同。
进入业余无线电
1960 年代以后,SSTV 开始进入业余无线电领域。
早期业余 SSTV 设备非常复杂,通常需要摄像机或扫描设备、专用调制解调器,以及能够保存图像的长余辉显示设备。随着专用 SSTV 硬件的发展,Robot Research 等公司推出了商业 SSTV 设备。
Robot Research 的设备后来成为现代业余 SSTV 模式体系的重要历史来源之一。Robot 系列模式以及后来的 Martin、Scottie 等模式逐渐形成了今天所使用的 SSTV 生态。
Martin、Scottie 与 Robot
现代模拟 SSTV 并不存在一个覆盖所有模式的单一统一标准。
常见模式包括:Martin M1、M2;Scottie S1、S2、DX;Robot 36、72;PD 系列等。这些模式在分辨率、图像传输时间、颜色编码、同步方式等方面有所不同。
计算机和声卡时代
个人计算机普及以后,SSTV 的门槛大幅降低,专用 SSTV 调制解调器逐渐被计算机软件取代。ARRL 在 1990 年代的 SSTV 入门资料中已经指出,普通 PC 声卡即可承担 SSTV 系统所需的模数转换和数模转换功能。
SSTV 的技术特点
优点
SSTV 的主要优点包括:
- 可以在普通语音无线电信道中传输静态彩色图像;
- 所需带宽较低;
- 可以利用 HF 电离层传播进行远距离通信;
- 技术原理相对简单;
- 现代计算机可以直接完成调制和解调;
- 适合业余无线电实验、卫星通信和图像交换。
ARRL 将 SSTV 概括为一种能够利用语音信道传输图像、并通过电离层实现远距离通信的方式。
缺点
SSTV 的主要限制包括:
- 一幅图像传输时间较长;
- 容易受到噪声、衰落和多径传播影响;
- 模拟信号没有现代数字图像通信中的纠错能力;
- 不同模式之间存在兼容性问题;
- 图像质量和传输速度之间存在明显的权衡。
因此,SSTV 并不适合传输大量图像或高可靠的数据文件,而更适合作为一种低带宽、实时、具有明显无线电特色的图像通信方式。
相关网页链接
官方及业余无线电组织
SSTV 软件
SSTV 技术资料
我做的B站视频