レンジ-ドップラー応答
レンジ-ドップラー応答を生成する利点
レンジ-ドップラー領域での信号の可視化は、ターゲット間の接続を直感的に理解するのに役立ちます。レンジ-ドップラー マップを使用して、以下を行うことができます。
対象物までの距離と、それらが接近または遠ざかっている速度を確認する。
さまざまなレンジにおいて、さまざまな速度で移動しているターゲットを区別する。具体的には次のとおり。
送信機プラットフォームが静止している場合、レンジ-ドップラー マップには、静止したターゲットからの応答がゼロ ドップラーの位置に表示される。
送信機プラットフォームに対して相対的に移動しているターゲットの場合、レンジ-ドップラー マップには、非ゼロのドップラー値の位置に応答が表示される。
レンジ-ドップラー応答は、視覚的な用途以外にも活用できます。たとえば、レンジ-ドップラー領域でピーク検出を実行し、その情報を使用して FMCW レーダー システムのレンジ-ドップラー結合を解決できます。
レンジ-ドップラー処理のサポート
phased.RangeDopplerResponse オブジェクトを使用して、入力データのレンジ-ドップラー応答を計算し、可視化できます。このオブジェクトは、ファスト タイムでレンジ処理を実行し、その後、スロー タイムでドップラー処理を実行します。オブジェクトの構成と構文は通常、レーダー システムの種類によって異なります。
パルス レーダー システム
以下の手順は通常、パルス レーダー システムのレンジ-ドップラー応答を生成するために使用されます。(線形 FM パルスの特殊なケースでは、FMCW レーダー システムの手順が代替オプションとなります。)
phased.RangeDopplerResponseオブジェクトを作成し、RangeMethodプロパティを'Matched Filter'に設定します。以下の特性をカスタマイズするか、任意の項目について既定値を受け入れます。
信号伝搬速度
サンプル レート
ドップラー処理に使用する FFT 長
ドップラー重み付けに使用するウィンドウの特性 (該当する場合)
ドップラー領域の出力基本設定 (半径方向速度またはドップラー シフト周波数)。(半径方向速度を選択した場合は、信号搬送波周波数も指定します。)
データ
xを行列に整理します。この行列内の列は、個別の連続するパルスに対応します。plotResponseを使用してレンジ-ドップラー応答をプロットするか、stepを使用してレンジ-ドップラー応答を表すデータを取得します。plotResponseまたはstepを呼び出すときは、構文にxと整合フィルター係数を含めます。
例については、step のリファレンス ページまたはターゲットのレンジ-速度応答パターンを参照してください。
FMCW レーダー システム
以下の手順は通常、FMCW レーダー システムのレンジ-ドップラー応答を生成するために使用されます。この手順は、線形 FM パルス信号を使用するシステムにも使用できます。パルス信号の場合、通常はストレッチ処理を使用して信号をデチャープします。
phased.RangeDopplerResponseオブジェクトを作成し、RangeMethodプロパティを'Dechirp'に設定します。以下の特性をカスタマイズするか、任意の項目について既定値を受け入れます。
信号伝搬速度
サンプル レート
FM スイープ勾配
プロセッサが信号をデチャープするか間引きするか
レンジ処理に使用する FFT 長。アルゴリズムは FFT を実行して、デチャープされたデータをビート周波数領域に変換し、レンジ情報を提供します。
レンジ重み付けに使用するウィンドウの特性 (該当する場合)
ドップラー処理に使用する FFT 長
ドップラー重み付けに使用するウィンドウの特性 (該当する場合)
ドップラー領域の出力基本設定 (半径方向速度またはドップラー シフト周波数)。(半径方向速度を選択した場合は、信号搬送波周波数も指定します。)
データ
xを行列に整理します。この列は、個別の連続するスイープまたはパルスに対応します。三角スイープによる FMCW 波形の場合、スイープは正の傾斜と負の傾斜が交互に繰り返されます。しかし、
phased.RangeDopplerResponseは、同じ傾斜の連続するスイープを処理するように設計されています。三角スイープ システムにphased.RangeDopplerResponseを適用するには、次のいずれかの方法を使用します。正の
SweepSlopeプロパティ値を指定し、xをアップスイープのみに対応させる。ドップラーまたは速度の真の値は、stepが返す値またはplotResponseがプロットする値の半分となる。負の
SweepSlopeプロパティ値を指定し、xをダウンスイープのみに対応させる。ドップラーまたは速度の真の値は、stepが返す値またはplotResponseがプロットする値の半分となる。
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 は、非コヒーレント検出器の目的の偽警報率
に基づいています。
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 メートルのレンジに位置する静止ターゲットが示されています。
参考
トピック
- Automotive Adaptive Cruise Control Using FMCW Technology (Radar Toolbox)