任意波形送信(Custom Waveform)ガイド
RedPitaya アイスレーダシステムでは、標準的なパルスやチャープ以外に、ユーザーが作成した任意の波形(CSV/JSONファイル)を送信することができます。この機能は、複雑な符号化パルス(Barker Code, Golay Pairs等)や、窓関数を適用した特殊なチャープ波形を試す際に有用です。
1. 波形ファイルの準備
送信したい波形を CSV または JSON 形式で準備します。
CSV 形式 (.csv)
- 1行に1つの数値、またはカンマ・スペース区切りで数値を羅列します。
- 推奨範囲:
-1.0〜1.0(DACのフルレンジに自動スケーリングされます) - 整数(例:
-8192〜8191)を直接記述することも可能です。
例 (simple_ramp.csv):
-1.0
-0.5
0.0
0.5
1.0
JSON 形式 (.json)
- 数値の配列(リスト)として記述します。
例 (simple_pulse.json):
[0, 0.5, 1.0, 1.0, 0.5, 0]
波形サンプルの場所
リポジトリの samples/ ディレクトリに、レーダーでよく使われる波形のサンプルが用意されています。
- barker13.csv: パルス圧縮用 Barker 13 符号
- lfm_windowed.csv: 窓関数付き線形周波数掃引(LFM)
- golay_a.csv / golay_b.csv: Golay 相補系列対
2. Web UI での操作手順
- Session Mode を
TXに切り替えます。 - Wave Type ドロップダウンから
customを選択します。 - "Choose File" ボタンを押し、準備した CSV または JSON ファイルを選択します。
- 以下のパラメータを設定します:
- Target Duration [us]: ファイル内の波形全体を「何マイクロ秒」かけて出力するかを指定します。
- PRI [us]: パルスの繰り返し周期を指定します。Duration より長い値を設定すると、残りの時間は無音(0V)になります。
- Oneshot: チェックを入れると、1回だけ送信して停止します(デフォルトは繰り返し)。
- RUN COMMAND をクリックします。
[!NOTE] ファイルは実行時に自動的に RedPitaya へ転送されます。RedPitaya 側に事前にファイルを置いておく必要はありません。
3. タイミングとリサンプリングの仕組み
システムは、物理的な時間設定を優先して動作します。
パルス幅(Duration)の制御
アップロードされたファイルのサンプル数に関わらず、指定された Target Duration に収まるように、FPGA内部の再生速度(Step)を自動計算します。
- 例えば、100点のファイルを 10.0 us で送信する場合、100ns ごとに1点を出力するように調整されます。
繰り返し周期(PRI)の制御
PRI が Duration より長い場合、波形メモリの残りの部分は自動的に 0V で埋められます。 - これにより、複雑な符号パルスを一定間隔で正確に送信するレーダーの基本動作が可能になります。
サンプリングレートに関する注意
ファイルの各サンプルを「1クロック(125MHz/250MHz)で1点」正確に出したい場合は、Target Duration を空欄にするか、サンプル数 / クロック周波数 で計算した値を入力してください。
4. トラブルシューティング
- Waveform file not found: ファイルを選択し直して、再度 RUN を押してください。
- DAC Range Over:
-1.0〜1.0の範囲を大きく超える値を入れると、出力が飽和(クリップ)します。 - Memory Limit: FPGAのバッファサイズは 16,384サンプル です。非常に長い波形や解像度が必要な場合は、これを超える部分は切り捨てられるか、リサンプリングにより分解能が低下する可能性があります。