メインコンテンツ

ClutterGenerator

クラッター ジェネレーター オブジェクト

R2022a 以降

説明

ClutterGenerator オブジェクトは、radarScenario 内のセンサーのレーダー クラッターを制御および管理するクラッター プロパティとクラッター領域を指定します。センサーの種類には、radarDataGenerator オブジェクトと radarTransceiver オブジェクトが含まれます。

作成

clutterGenerator オブジェクト関数を使用して、クラッター ジェネレーターを作成します。次に、getClutterGenerator オブジェクト関数を使用して、レーダー シナリオ用のクラッター ジェネレーターと、シナリオ内のレーダーに関する情報を取得します。ClutterRegion オブジェクト関数を使用して、クラッター領域を作成します。

プロパティ

すべて展開する

クラッター分布を制御する手法。'Uniform' または 'RangeDopplerCells' として指定します。

  • ScattererDistribution プロパティが 'Uniform' に設定されている場合、Resolution プロパティを使用して、ランダムに生成されたクラッター散乱体の公称間隔を決定します。

  • ScattererDistribution プロパティが 'RangeDopplerCells' に設定されている場合、レンジ-ドップラー分解能セルごとにちょうど 1 つのクラッター散乱体が使用されます。このオプションは、radarTransceiver レーダー モデルでのみ利用可能です。radarTransceiverNumRepetitions プロパティを使用して、ドップラー ビンの数を指定します。このオプションでは、高さマップされていないサーフェス (地形やスペクトル モデルが関連付けられていない surface オブジェクト) のみを指定できます。このモードを使用すると、パフォーマンスが向上します。

データ型: char | st

クラッター パッチの公称解像度。正のスカラーとして指定します。公称解像度の値は、クラッター関心領域において、そのレーダー システムが達成すると想定される最も細かい地上解像度です。単位はメートルです。

依存関係

このプロパティを有効にするには、ScattererDistribution プロパティを 'Uniform' に設定します。

データ型: double

クラッター生成のレンジ制限。正のスカラーとして指定します。このプロパティは、クラッターが生成される最大地表範囲を指定します。クラッター領域が無限の場合、クラッターの生成はこのレンジに限定されます。単位はメートルです。

データ型: double

クラッター領域としてのビーム フットプリントの使用を有効にする。true または false として指定します。true の場合、メインローブ内のクラッターが自動的に含まれます。カスタム領域を作成するには、ClutterGeneratorClutterRegion オブジェクト関数を使用します。

true の場合、ClutterRegion などの静的領域に加えて、ビーム フットプリントがクラッター生成に自動的に使用されます。その際、レーダー ビームとシナリオ表面の交差範囲においてクラッターが生成されます。

  • radarTransceiver が送信アンテナ センサーとして phased.ULA を使用する場合、扇形のビームが想定され、アレイ軸に垂直な平面内で 3 dB ビーム幅が測定されます。他のアレイ タイプを使用する場合は、円錐ビーム形状が想定され、方位角方向と仰角方向の両方で 3 dB ビーム幅が測定されます。

  • radarDataGenerator を使用する場合、EffectiveFieldOfView プロパティによって、方位角方向と仰角方向のビーム幅が決まります。

いずれの場合も、ビーム フットプリントをクラッター生成に使用するためには、ビーム幅が厳密に 180° 未満でなければなりません。

データ型: logical

クラッター生成時の表面自己オクルージョンを有効にする。true または false として指定します。表面自己オクルージョンは、シャドウイングと呼ばれます。

データ型: logical

この プロパティ は読み取り専用です。

生成されたシナリオの領域。RingClutterRegion として返されます。クラッター領域は複数存在する可能性があります。

この プロパティ は読み取り専用です。

クラッターが生成されるレーダー センサー。radarDataGenerator または radarTransceiver オブジェクトとして返されます。レーダー センサーは複数存在する可能性があります。

乱数発生に使用されるシードのソース。'Auto' または 'Property' として指定します。'Auto' の場合、グローバル乱数発生器が使用されます。'Property' の場合、Seed プロパティで指定されたシード値と共にローカル乱数発生器が使用されます。

データ型: char | string

乱数発生に使用されるシード値。スカラーとして指定します。シード値はこの乱数発生器に対してローカルです。

依存関係

このプロパティを有効にするには、SeedSource プロパティを 'Property' に設定します。

データ型: double

オブジェクト関数

findClutterSampleIndicesClutter sample indices
getClutterGeneratorObtain clutter generator belonging to a radar
ringClutterRegionリング クラッター領域

すべて折りたたむ

2 つのクラッター領域をもつ表面からクラッターを生成します。まず、radarDataGenerator を作成します。レーダー周波数 1 GHz、レンジ分解能 100 メートル、パルス繰り返し周波数 (PRF) 5 kHz、およびパルス数 128 を使用します。ビームは対称で、方位角と仰角の両側のビーム幅は 4 度とします。

fc = 1e9;
rangeRes = 100;
prf = 5e3;
numPulses = 128;
beamwidth = 4;

PRF とパルス数を使用して、公称ドップラー分解能とレンジレート分解能を計算します。レーダーは、コヒーレント処理間隔 (CPI) ごとに 1 回更新されます。

dopRes = prf/numPulses;
lambda = freq2wavelen(fc);
rangeRateRes = dop2speed(dopRes,lambda)/2;
cpiTime = numPulses/prf;

rdr = radarDataGenerator(1,'No scanning','UpdateRate',1/cpiTime, ...
    'DetectionMode','Monostatic','TargetReportFormat','Detections', ...
    'DetectionCoordinates','Scenario', ...
    'HasINS',true,'HasElevation',true,'HasFalseAlarms',false, ...
    'HasNoise',false,'HasRangeRate',true, ...
    'HasRangeAmbiguities',true,'HasRangeRateAmbiguities',true, ...
    'CenterFrequency',fc,'FieldOfView',beamwidth, ...
    'AzimuthResolution',beamwidth,'ElevationResolution', ...
    beamwidth,'RangeResolution', ...
    rangeRes,'RangeRateResolution',rangeRateRes, ...
    'ReferenceRange',20e3,'ReferenceRCS',0, ...
    'DetectionProbability',0.9);

radarScenario オブジェクトを使用してシナリオを作成し、シーン内のセンサーから更新間隔が導出されるように更新頻度をゼロに設定します。

scenario = radarScenario('UpdateRate',0,'IsEarthCentered',false);

次に、シナリオの表面を作成します。平地に適したガンマ値をもつ、定数ガンマ反射率モデルを選択します。このガンマ値は、surfacegamma 関数を使用して求めることができます。この値を使用して surfaceReflectivityLand オブジェクトを作成し、the RadarReflectivity プロパティを使用して LandSurface に追加します。

gammaDB = surfacegamma('Flatland');
refl = surfaceReflectivityLand('Model','ConstantGamma', ...
    'Gamma',gammaDB);
landSurface(scenario,'RadarReflectivity',refl);

シナリオに 2 つのクラッター領域を追加します。clutterGenerator オブジェクト関数を使用してクラッター ジェネレーターを作成し、レーダーのクラッター生成を有効にします。Resolution プロパティは、クラッター パッチの公称間隔を定義します。レンジ ゲートごとに複数のクラッター パッチを取得するために、これをレンジ分解能の 1/5 に設定します。レンジ制限を 20km に設定します。UseBeam は、アンテナ パターンのメインローブに対してクラッター生成を自動的に実行するかどうかを示します。

cluttergen = clutterGenerator(scenario,rdr,'Resolution', ...
    rangeRes/5,'RangeLimit',20e3,'UseBeam',true);
rgn1 = ringClutterRegion(cluttergen,1000,10000,30,45);
rgn2 = ringClutterRegion(cluttergen,1000,10000,30,105);

getClutterGenerator 関数は、シナリオに属する 2 つのリング状のクラッター領域を表示します。

getClutterGenerator(scenario,rdr)
ans = 
  ClutterGenerator with properties:

    ScattererDistribution: "Uniform"
               Resolution: 20
                  Regions: [1×2 radar.scenario.RingClutterRegion]
                  UseBeam: 1
             UseShadowing: 1
               RangeLimit: 20000
                    Radar: [1×1 radarDataGenerator]
               SeedSource: "Auto"

バージョン履歴

R2022a で導入