コンテンツにスキップ

任意波形送信(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 での操作手順

  1. Session Mode を TX に切り替えます。
  2. Wave Type ドロップダウンから custom を選択します。
  3. "Choose File" ボタンを押し、準備した CSV または JSON ファイルを選択します。
  4. 以下のパラメータを設定します:
    • Target Duration [us]: ファイル内の波形全体を「何マイクロ秒」かけて出力するかを指定します。
    • PRI [us]: パルスの繰り返し周期を指定します。Duration より長い値を設定すると、残りの時間は無音(0V)になります。
    • Oneshot: チェックを入れると、1回だけ送信して停止します(デフォルトは繰り返し)。
  5. 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サンプル です。非常に長い波形や解像度が必要な場合は、これを超える部分は切り捨てられるか、リサンプリングにより分解能が低下する可能性があります。