メインコンテンツ

レンジ-ドップラー応答

レンジ-ドップラー応答を生成する利点

レンジ-ドップラー領域での信号の可視化は、ターゲット間の接続を直感的に理解するのに役立ちます。レンジ-ドップラー マップを使用して、以下を行うことができます。

  • 対象物までの距離と、それらが接近または遠ざかっている速度を確認する。

  • さまざまなレンジにおいて、さまざまな速度で移動しているターゲットを区別する。具体的には次のとおり。

    • 送信機プラットフォームが静止している場合、レンジ-ドップラー マップには、静止したターゲットからの応答がゼロ ドップラーの位置に表示される。

    • 送信機プラットフォームに対して相対的に移動しているターゲットの場合、レンジ-ドップラー マップには、非ゼロのドップラー値の位置に応答が表示される。

レンジ-ドップラー応答は、視覚的な用途以外にも活用できます。たとえば、レンジ-ドップラー領域でピーク検出を実行し、その情報を使用して FMCW レーダー システムのレンジ-ドップラー結合を解決できます。

レンジ-ドップラー処理のサポート

phased.RangeDopplerResponse オブジェクトを使用して、入力データのレンジ-ドップラー応答を計算し、可視化できます。このオブジェクトは、ファスト タイムでレンジ処理を実行し、その後、スロー タイムでドップラー処理を実行します。オブジェクトの構成と構文は通常、レーダー システムの種類によって異なります。

パルス レーダー システム

以下の手順は通常、パルス レーダー システムのレンジ-ドップラー応答を生成するために使用されます。(線形 FM パルスの特殊なケースでは、FMCW レーダー システムの手順が代替オプションとなります。)

  1. phased.RangeDopplerResponse オブジェクトを作成し、RangeMethod プロパティを 'Matched Filter' に設定します。

  2. 以下の特性をカスタマイズするか、任意の項目について既定値を受け入れます。

    • 信号伝搬速度

    • サンプル レート

    • ドップラー処理に使用する FFT 長

    • ドップラー重み付けに使用するウィンドウの特性 (該当する場合)

    • ドップラー領域の出力基本設定 (半径方向速度またはドップラー シフト周波数)。(半径方向速度を選択した場合は、信号搬送波周波数も指定します。)

  3. データ x を行列に整理します。この行列内の列は、個別の連続するパルスに対応します。

  4. plotResponse を使用してレンジ-ドップラー応答をプロットするか、step を使用してレンジ-ドップラー応答を表すデータを取得します。plotResponse または step を呼び出すときは、構文に x と整合フィルター係数を含めます。

例については、step のリファレンス ページまたはターゲットのレンジ-速度応答パターンを参照してください。

FMCW レーダー システム

以下の手順は通常、FMCW レーダー システムのレンジ-ドップラー応答を生成するために使用されます。この手順は、線形 FM パルス信号を使用するシステムにも使用できます。パルス信号の場合、通常はストレッチ処理を使用して信号をデチャープします。

  1. phased.RangeDopplerResponse オブジェクトを作成し、RangeMethod プロパティを 'Dechirp' に設定します。

  2. 以下の特性をカスタマイズするか、任意の項目について既定値を受け入れます。

    • 信号伝搬速度

    • サンプル レート

    • FM スイープ勾配

    • プロセッサが信号をデチャープするか間引きするか

    • レンジ処理に使用する FFT 長。アルゴリズムは FFT を実行して、デチャープされたデータをビート周波数領域に変換し、レンジ情報を提供します。

    • レンジ重み付けに使用するウィンドウの特性 (該当する場合)

    • ドップラー処理に使用する FFT 長

    • ドップラー重み付けに使用するウィンドウの特性 (該当する場合)

    • ドップラー領域の出力基本設定 (半径方向速度またはドップラー シフト周波数)。(半径方向速度を選択した場合は、信号搬送波周波数も指定します。)

  3. データ x を行列に整理します。この列は、個別の連続するスイープまたはパルスに対応します。

    三角スイープによる FMCW 波形の場合、スイープは正の傾斜と負の傾斜が交互に繰り返されます。しかし、phased.RangeDopplerResponse は、同じ傾斜の連続するスイープを処理するように設計されています。三角スイープ システムに phased.RangeDopplerResponse を適用するには、次のいずれかの方法を使用します。

    • 正の SweepSlope プロパティ値を指定し、x をアップスイープのみに対応させる。ドップラーまたは速度の真の値は、step が返す値または plotResponse がプロットする値の半分となる。

    • 負の SweepSlope プロパティ値を指定し、x をダウンスイープのみに対応させる。ドップラーまたは速度の真の値は、step が返す値または plotResponse がプロットする値の半分となる。

  4. plotResponse を使用してレンジ-ドップラー応答をプロットするか、step を使用してレンジ-ドップラー応答を表すデータを取得します。plotResponse または step を呼び出すときは、構文に x を含めます。データがまだデチャープされていない場合は、構文に基準信号も含めます。

例については、plotResponse のリファレンス ページを参照してください。

ターゲットのレンジ-速度応答パターン

この例では、矩形波形を使用するパルス レーダー システムでターゲットの速度とレンジを可視化する方法を示します。

等方性アンテナ素子をグローバル原点 (0,0,0) に配置します。次に、無変動 RCS が 1 平方メートルのターゲットを、送信機から約 7 km 離れた位置 (5000,5000,10) に配置します。動作 (搬送波) 周波数を 10 GHz に設定します。モノスタティック レーダーをシミュレーションするために、送信機の InUseOutputPort プロパティを true に設定します。送信機からターゲットまでのレンジと角度を計算します。

antenna = phased.IsotropicAntennaElement(...
    'FrequencyRange',[5e9 15e9]);
transmitter = phased.Transmitter('Gain',20,'InUseOutputPort',true);
fc = 10e9;
target = phased.RadarTarget('Model','Nonfluctuating',...
    'MeanRCS',1,'OperatingFrequency',fc);
txloc = [0;0;0];
tgtloc = [5000;5000;10];
antennaplatform = phased.Platform('InitialPosition',txloc);
targetplatform = phased.Platform('InitialPosition',tgtloc);
[tgtrng,tgtang] = rangeangle(targetplatform.InitialPosition,...
    antennaplatform.InitialPosition);

PRF 10 kHz、持続時間 2 μs の矩形パルス波形を作成します。与えられた PRF の最大明瞭レンジを決定します。レーダー方程式を使用して、ターゲットを検出するために必要なピーク電力を決定します。このターゲットの RCS は、送信機の動作周波数とゲインの最大明瞭レンジにおいて 1 平方メートルです。SNR は、非コヒーレント検出器の目的の偽警報率 $1e^{-6}$ に基づいています。

waveform = phased.RectangularWaveform('PulseWidth',2e-6,...
    'OutputFormat','Pulses','PRF',1e4,'NumPulses',1);
c = physconst('LightSpeed');
maxrange = c/(2*waveform.PRF);
SNR = npwgnthresh(1e-6,1,'noncoherent');
lambda = c/target.OperatingFrequency;
maxrange = c/(2*waveform.PRF);
tau = waveform.PulseWidth;
Ts = 290;
dbterm = db2pow(SNR - 2*transmitter.Gain);
Pt = (4*pi)^3*physconst('Boltzmann')*Ts/tau/target.MeanRCS/lambda^2*maxrange^4*dbterm;

ピーク送信電力をレーダー方程式から得られた値に設定します。

transmitter.PeakPower = Pt;

10 GHz で動作する radiator オブジェクトと collector オブジェクトを作成します。ターゲットへのパルス伝搬およびターゲットからのパルス伝搬のための自由空間パスを作成します。次に、受信機を作成します。

radiator = phased.Radiator(...
    'PropagationSpeed',c,...
    'OperatingFrequency',fc,'Sensor',antenna);
channel = phased.FreeSpace(...
    'PropagationSpeed',c,...
    'OperatingFrequency',fc,'TwoWayPropagation',false);
collector = phased.Collector(...
    'PropagationSpeed',c,...
    'OperatingFrequency',fc,'Sensor',antenna);
receiver = phased.ReceiverPreamp('NoiseFigure',0,...
    'EnableInputPort',true,'SeedSource','Property','Seed',2e3);

25 個のパルスをターゲットとの間で双方向に伝搬します。受信機でエコーを収集し、rx_puls という名前の 25 列の行列に保存します。

numPulses = 25;
rx_puls = zeros(100,numPulses);

シミュレーションをループ処理します。

for n = 1:numPulses

波形を生成します。

    wf = waveform();

波形を送信します。

    [wf,txstatus] = transmitter(wf);

ターゲットに向けてパルスを放射します。

    wf = radiator(wf,tgtang);

ターゲットに向かってパルスを伝搬させます。

    wf = channel(wf,txloc,tgtloc,[0;0;0],[0;0;0]);

ターゲットで反射させます。

    wf = target(wf);

送信機に戻る方向へパルスを伝搬させます。

    wf = channel(wf,tgtloc,txloc,[0;0;0],[0;0;0]);

エコーを収集します。

    wf = collector(wf,tgtang);

ターゲット エコーを受信します。

    rx_puls(:,n) = receiver(wf,~txstatus);
end

整合フィルター アプローチを使用するレンジ-ドップラー応答オブジェクトを作成します。ドップラー周波数ではなく、半径方向速度を表示するようにこのオブジェクトを構成します。plotResponse を使用して、レンジと速度の関係をプロットします。

rangedoppler = phased.RangeDopplerResponse(...
    'RangeMethod','Matched Filter',...
    'PropagationSpeed',c,...
    'DopplerOutput','Speed','OperatingFrequency',fc);
plotResponse(rangedoppler,rx_puls,getMatchedFilter(waveform))

このプロットには、約 7000 メートルのレンジに位置する静止ターゲットが示されています。

参考

トピック