収録データの形式と容量計算

収録した信号は、振幅と位相の情報を持つIQデータとして、チャネルごとにファイルへ保存します。保存形式と容量の計算方法、解析に使う際の確認事項を説明します。

保存されるファイル

収録開始時刻を名前にしたフォルダーへ、チャネルごとのデータと設定情報を保存します。

通常は/data以下に、20261020-185112のような収録開始日時のフォルダーを作成します。その中に、開始時刻とチャネル番号を含むファイル名で保存します。

2 chで収録した場合のファイル名の例
ファイル例内容
20261020-185112-000-ch00.datCH0のIQデータ
20261020-185112-000-ch00.iniCH0の収録設定
20261020-185112-000-ch01.datCH1のIQデータ
20261020-185112-000-ch01.iniCH1の収録設定
収録開始日時のフォルダー20261020-185112内に、ch00・ch01それぞれの.datと.iniが保存された画面
収録開始日時のフォルダーと、2 ch分の保存ファイルの例。画像を選ぶと拡大します。

ファイル名の読み方

ファイル名には、収録開始日時とチャネル番号が入ります。

20261020-185112-000-ch00.datは、2026年10月20日18時51分12.000秒に収録を開始したCH0のデータです。

開始時刻のミリ秒は、指定した収録時間が1秒未満、または整数秒でない場合に付きます。整数秒の収録や終了時間を指定しない収録では、20261020-185112-ch00.datのように省略されます。

分割保存したファイル

分割保存では、チャネル番号の後ろに分割番号が付きます。

ファイル名の末尾意味
-ch00-001-of-003.datCH0のデータ、全3ファイルのうち1本目
-ch00-001.dat総数を付けない形式の1本目。総数未定の分割やプレトリガで使用

ミリ秒と分割番号の両方が付く場合は、20261020-185112-123-ch00-001-of-100.datのようになります。

ストリーミング収録では、収録を休止せずに保存先ファイルを分割できます。

.iniに記録される情報

.iniには、収録開始時刻・IQレート・中心周波数・ゲイン設定・サンプル数などを記録します。

.datと対応する.iniは、一緒に保管・コピーしてください。

サンプルの時刻・保存先は、説明用に調整しています。

.datのデータ配列

各チャネルのI・Qを、リトルエンディアンの16 bit符号付き整数で交互に保存します。

項目形式
ヘッダーなし
数値型I・Qそれぞれint16
バイトオーダーリトルエンディアン
データの並びI₀, Q₀, I₁, Q₁, …
1複素サンプルの容量IとQの1組で4 byte
複数チャネルチャネルごとに別ファイル

MATLABやPythonでは、リトルエンディアンのint16として読み込み、交互に並ぶ値をIとQへ分けます。複素数として扱う場合は、I+jQにします。

以下は、1チャネルの先頭100万複素サンプルまでを読み込む例です。ファイル名は対象の.datファイルのパスに置き換えてください。

Pythonで読み込む例(NumPy)
import numpy as np

raw = np.fromfile(
    "20261020-185112-000-ch00.dat",
    dtype="<i2", count=2_000_000
)
iq = raw.astype(np.float32).view(np.complex64)

<i2はリトルエンディアンのint16です。交互に並ぶI・Qを、実部・虚部とするcomplex64の配列へ変換します。先頭100万複素サンプルまでを読み込みます。

MATLABで読み込む例
fid = fopen('20261020-185112-000-ch00.dat', 'rb', 'ieee-le');
assert(fid ~= -1, 'ファイルを開けません。');
raw = fread(fid, [2, 1000000], 'int16=>double');
fclose(fid);
iq = complex(raw(1,:), raw(2,:));

ieee-leはリトルエンディアンを指定します。1行目がI、2行目がQです。

読み込んだ値は保存された整数値に基づく振幅です。校正された電力値ではありません。

保存データ量の計算

保存データ量は、IQレートと収録チャネル数に比例します。

同じIQレートで収録する場合:

保存データ量[MB/s]=IQレート[MS/s]× 4 × 収録チャネル数

本システムでは帯域幅の設定値をIQレートの80%としているため、帯域幅からは次の式で換算できます。

保存データ量[MB/s]=帯域幅[MHz]× 5 × 収録チャネル数

以下は、本システムの帯域幅設定に対応するIQレートを使った計算例です。48 MHz BWでは60 MS/s、24 MHz BWでは30 MS/sとして計算します。

収録条件IQレート合計保存データ量
48 MHz BW・1 ch60 MS/s240 MB/s
各24 MHz BW・2 ch各30 MS/s240 MB/s
各100 MHz BW・4 ch各125 MS/s2,000 MB/s

帯域幅には本システムの設定値を使い、メーカー仕様のアナログ帯域幅を代入しないでください。実際に適用されたIQレートで計算し、チャネルごとに異なる場合は各チャネルのデータ量を合計します。

上表はデータ量の計算例です。設定できる帯域幅・チャネル数は機種によって異なります。

SSDに保存できる収録時間

SSDの空き容量を、1秒あたりの保存データ量で割ると、収録時間の目安が分かります。

収録時間[秒]=空き容量[MB]÷保存データ量[MB/s]

例えば、48 MHz BW・1 chでは240 MB/sです。空き容量1 TBなら、次のようになります。

1,000,000 MB ÷ 240 MB/s ÷ 60 ≒ 69分

容量は10進表記で計算します。1 MB=1,000,000 byte、1 TB=1,000,000 MBです。SSDの製品容量ではなく、OSや既存ファイルが使う分を除いた空き容量を使用してください。

この時間は容量から求めた目安です。連続収録には、通信・PC・SSDが必要なデータ量を継続して処理できることも必要です。

本体メモリに保存できる時間

1チャネルに割り当てられるメモリ容量とIQレートから、収録時間の上限と保存できる再生波形の長さを求めます。

用途時間の計算式
収録時間の上限[秒]割当容量[byte]÷(IQレート[MS/s]× 1,000,000 × 4)
保存できる再生波形の長さ[秒]割当容量[byte]÷(IQレート[MS/s]× 1,000,000 × 8)

収録・再生データ自体は、I・Q各16 bitで、1複素サンプルあたり4 byteです。現行アプリは再生用の必要容量を8 byteとして計算するため、同じメモリ割当とIQレートでは、保存できる再生波形の長さは収録上限の半分になります。

例えば、X420で1チャネルあたり4 GiBを割り当て、250 MS/sで収録または再生を単独で行う場合、収録時間の上限は約4.3秒、現行アプリに保存できる再生波形の長さは約2.1秒です。容量から求めた計算値であり、上限付近まで動作を確認した実測値ではありません。

再生波形の長さは、保存できる1回分の波形の時間です。同じ波形を繰り返し再生し続けられる時間とは異なります。

IQレート・チャネル数を変えた場合

IQレートを下げると、同じメモリ容量に保存できる時間が長くなります。

変更する条件収録上限・再生波形長への影響
IQレートを半分にする他の条件が同じなら、計算上2倍
共有メモリ構成で使用チャネル数を半分にする他の条件が同じなら、各チャネルの割当容量が増えて計算上2倍
共有メモリ構成でIQレートと使用チャネル数を両方半分にする計算上4倍
X420で使用チャネル数を2 chから1 chへ減らす1チャネルあたり4 GiBのままで、時間は延びない

共有メモリの説明は、N310・N320 / N321・X310+UBX/OBX・X410の対応するReplay構成に適用します。X420では、使用しないチャネルのメモリを別のチャネルへ割り当てることはできません。

計算には実際のIQレートを使います。アナログフィルタの帯域幅だけを変更しても、保存できる時間は変わりません。実際に設定できるIQレートには、機種・構成による制限があります。

計算値を使う際の注意

  • 収録時間は利用者が指定します。条件を変えても自動では延びません。容量を超える時間を指定すると、開始前にエラーになります。
  • 上記は収録のみ、または再生のみの場合の計算です。同時収録再生では、メモリの割当が変わります。
  • メモリ領域の境界をそろえる調整などにより、実際の上限には差が生じます。
  • 計算値は、上限付近まで動作を確認した実測値ではありません。実機確認結果は各機種ページをご覧ください。

本体メモリ容量はGiBで表記します。1 GiB=1,073,741,824 byteです。

データ回収時間と取得間隔

高速な通信・PC・SSDを使うと、本体メモリからデータを回収し、次の収録を始めるまでの時間を短縮できます。

本体メモリ方式では、次の順で繰り返し収録します。

本体メモリへ収録 → PCへ転送・SSDへ保存 → 次の収録の準備

転送・保存・準備の間は、収録していない空白時間になります。

1 Gbpsと10 Gbps × 2接続の計算例

例えば、X420のX4_200構成で各200 MHz BW・2 chを1秒間収録し、各250 MS/s、I・Q各16 bitで保存する場合、1回のデータ量は2,000 MBです。

1回の動作1 Gbps接続10 Gbps × 2接続
本体メモリへ収録1秒1秒
PCへ転送約16秒約0.8秒
収録開始から次の収録開始まで約17秒+準備時間約1.8秒+準備時間

これは通信速度だけから求めた理論値です。10 Gbps × 2は、データを2回線へ均等に分けて同時転送できると仮定しています。通信の付加情報やPC・SSDの処理時間は含めていません。

転送と保存を並行する場合は、両方を通した実効速度で判断します。転送後に保存する場合は、その時間も加わるため、実際の取得間隔は使用する構成で確認します。

RF再生でも、PCから本体メモリへ波形を読み込む準備時間を短縮できます。一度読み込んだ波形を繰り返し再生する場合は、毎回の転送は不要です。

PCを高速にしても、本体メモリで扱える帯域幅や、1回に収録できる時間は増えません。

収録データを確認・解析する

収録データは、付属のデータビューアで確認するほか、MATLABやPythonへ読み込んで解析できます。

収録データは、ネットワーク経由や外付けSSDを使って、Windows・Macなどの解析用PCへコピーできます。.datと対応する.iniを一緒にコピーしてください。

解析に使う際は、次の点を確認してください。

  • データ欠落:操作画面で受信ドロップの発生を確認します。カウンタが0であることだけでは、保存ファイル全体の完全性を確認したことにはなりません。
  • 信号の振幅:IQデータの数値は、そのままRF端子の電力を示すものではありません。絶対電力の評価には測定系の校正が必要です。
  • チャネル間の位相:位相差を補正する処理は、お客様の解析環境で行います。同期・再現性の条件は機種ごとに確認してください。

外部プログラムとの連携

収録中のIQデータを、外部の解析プログラムへ渡す連携にも対応します。

一定間隔でデータを渡す動作や、ファイルへ保存せずに受信データを利用する動作が可能です。必要な受け渡し間隔・データ量・処理内容や、保存形式の変更をご相談ください。