3. Anritsu原始数据格式解析

Anritsu 测试仪表(如 MS2090A 频谱分析仪、MT8000A 无线测试平台、MS2712E 手持频谱仪等)在完成一次测量后,会以多种格式保存原始数据。能否正确解析这些文件,直接决定了后续分析的可信度。本节围绕 CSV、二进制、IQ、PCAP 以及 Anritsu 专有格式五类文件,讲清它们的结构、字段含义、时间戳与采样率信息,以及单位换算的关键点。

一、五类格式的定位与结构

CSV 是文本格式,通常由仪表导出为“表头 + 数据行”结构,常见列包括频率(Hz)、幅度(dBm)、时间戳、迹线编号等。它的优点是可直接用文本编辑器或 Excel 打开,缺点是精度受限于导出位数,且大文件体积膨胀明显。二进制格式(如 .dat、.bin)以固定字节序存储浮点或整型数组,读取速度快、体积小,但必须知道字段偏移、数据类型(float32/int16)和字节序(大端/小端),否则会得到完全错误的数值。

IQ 文件记录的是复数基带采样,通常由 I、Q 两路交错存储,每个采样点占 4 字节(int16 各 2 字节)或 8 字节(float32 各 4 字节)。PCAP 文件则来自仪表内置抓包或外接采集,遵循标准 pcap 文件头(magic number、版本、时区、快照长度、链路类型),随后是逐包的 packet header(时间戳秒、微秒、包长)与数据帧。Anritsu 专有格式(如 .mtd、.spa 等)往往在标准结构外附加仪表型号、序列号、校准因子和测量配置块,需要结合官方文档或逆向字段表解析。

Anritsu 五类原始数据格式结构对照 CSV 文本 表头行:频率/幅度/时间 数据行:逗号分隔 精度:受导出位数限制 优点:可读、易导入 缺点:体积大、精度低 典型扩展名:.csv 二进制 固定字节序存储 float32 / int16 数组 需知偏移与类型 优点:快、体积小 缺点:不可直接阅读 典型扩展名:.dat/.bin IQ 基带 I/Q 交错存储 int16 或 float32 采样率决定带宽 优点:保留相位信息 缺点:需重采样处理 典型扩展名:.iq/.wv PCAP 抓包 全局头:magic/版本 包记录:时间戳+长度 链路类型:以太网等 优点:标准、可 Wireshark 缺点:需协议解析 典型扩展名:.pcap/.pcapng 专有格式 仪表型号/序列号 校准因子块 测量配置块 优点:信息最全 缺点:需官方文档 典型扩展名:.mtd/.spa 解析时必须确认的四个关键字段 时间戳基准与单位 采样率 / 采样间隔 幅度单位与参考电平 字节序与数据类型 单位换算速查 dBm → mW:P(mW) = 10^(P(dBm)/10) 采样率 fs 与采样间隔 Δt:Δt = 1/fs IQ 采样点 → 时间:t = n / fs PCAP 时间戳:秒 + 微秒/1e6

二、字段含义与时间戳解析

以 CSV 为例,Anritsu 频谱仪导出的典型表头可能是 Frequency(Hz),Amplitude(dBm),Timestamp。其中 Timestamp 常见两种形式:绝对时间(如 2024-06-12 09:15:32.145)或相对时间(自测量开始经过的秒数)。解析时必须先判断是哪一种,否则后续多文件对齐会整体偏移。二进制与 IQ 文件通常不内嵌时间戳,时间信息来自文件名或伴随的元数据文件,因此建议在采集时同步记录“文件创建时间 + 仪表内部时基”。

PCAP 的时间戳精度较高,每个包记录包含 ts_sec 与 ts_usec 两个字段,实际时间 = ts_sec + ts_usec / 1e6。若仪表使用相对时基,则 ts_sec 可能从 0 开始,需要结合第一个包的实际采集时刻做整体平移。专有格式中,时间戳往往存放在固定偏移的头部块,且可能使用仪表内部计数器而非 UTC,解析时要留意是否存在闰秒或时区补偿。

三、采样率与单位换算的实操要点

采样率是 IQ 与二进制文件解析的核心参数。假设某次采集的 IQ 文件为 int16 交错存储,采样率 fs = 10 MHz,文件大小 40 MB,则采样点数为 40×1024×1024 / 4 = 10,485,760 点,对应时长约 1.0486 秒。若误把 fs 当作 20 MHz,时长会减半,频谱分析中的 RBW 与频率轴都会错位。因此,解析前务必从仪表配置或元数据中确认 fs,并在代码中显式记录。

幅度单位换算同样关键。CSV 中若为 dBm,转换为线性功率用 10**(dBm/10);若为 dBμV,需先转 dBm:dBm = dBμV − 107(50 Ω 系统)。二进制文件若存储的是 ADC 原始码值,还需结合参考电平与满量程换算为 dBm。IQ 文件的 I、Q 值通常为归一化整数,需除以 2^15 得到 [-1,1] 区间,再乘以满量程电压或功率参考。

建议在解析脚本中统一维护一个“元数据字典”,至少包含:文件格式、采样率、中心频率、参考电平、时间戳基准、字节序、数据类型。这样无论后续做频谱、解调还是协议分析,都能避免单位与时间轴错误。

四、解析流程与常见陷阱

实际工程中,推荐按“识别格式 → 读取头部 → 校验关键字段 → 批量解析 → 单位归一化 → 输出中间格式”的顺序处理。识别格式不能只看扩展名,因为部分仪表会把 CSV 存成 .txt,或把二进制存成 .dat。读取头部时,CSV 可直接读前几行,二进制与专有格式则需按字段表读取固定字节。校验环节重点检查采样率是否合理、时间戳是否单调、幅度是否超出量程。

常见陷阱包括:字节序误判导致数值乱跳;把 int16 当 uint16 解析导致负值变正;PCAP 中混杂非目标协议包未过滤;专有格式版本升级后字段偏移变化。遇到异常时,可先用小样本文件做十六进制查看,确认 magic number 与字段边界,再逐步扩展解析逻辑。

格式时间戳来源采样率来源单位换算重点
CSV列内绝对/相对时间表头或文件名dBm/dBμV 转线性
二进制外部元数据配置块或文件名ADC 码值转 dBm
IQ外部元数据必须显式确认归一化后乘参考
PCAP包记录秒+微秒不适用协议字段解析
专有头部固定偏移配置块结合校准因子

掌握以上结构后,面对任意一个 Anritsu 原始文件,都能先判断它属于哪一类,再定位时间戳、采样率与单位三个核心参数,从而为后续的频谱分析、解调或协议统计打下可靠基础。