exponenta event banner

Измерение уровней интенсивности с помощью области интенсивности

В этом учебном пособии показано, как измерять интенсивность сигналов с помощью пользовательского интерфейса области интенсивности. Сначала создайте область интенсивности. Можно начать с примера ниже, RTI и DTI Displays in Full Radar Simulation или создать собственную область. При запуске этого примера открываются окна времени диапазона (RTI) и времени доплеровского диапазона (DTI). Данное учебное пособие посвящено экрану RTI, поэтому после завершения цикла обработки можно закрыть окно DTI. На этом рисунке показан экран RTI после завершения обработки. На дисплее показаны три дорожки.

Для просмотра данных нажмите кнопку «Измерение курсора» на панели инструментов. Вы видите два курсора, каждый из которых представлен парами перекрестий. Для различения курсоров одна пара состоит из сплошных линий, а вторая пара состоит из пунктирных линий и помечена обозначением 1 или 2.

Курсор 1 имеет сплошные перекрестия и перекрывает пересечение двух сигнальных линий. Курсор 2 имеет пунктирные перекрестия и перекрывает безсигнальную область. На панели Измерения курсора (Cursor Measurements) отображаются координаты курсоров во времени и диапазоне (с меткой X) и интенсивности в этих положениях. Курсор 1 расположен на дальности 2775 метров и времени 3,6 секунды. Интенсивность сигнала в этой точке составляет 1,989e-6 Вт. Курсор 2 расположен на дальности 3725 метров и времени 2,9 секунды. Интенсивность сигнала в этой точке составляет 3,327e-7 Вт. Курсоры можно переместить в любые интересующие позиции и получить значения интенсивности.

Дисплеи RTI и DTI в режиме полного радиолокационного моделирования

Используйте phased.IntensityScope System Object (TM) для отображения выходного сигнала обнаружения имитации радиолокационной системы. Сценарий РЛС содержит стационарную одноэлементную моностатическую РЛС и три движущиеся цели.

Установка рабочих параметров РЛС

Установка максимального диапазона, разрешения пикового диапазона мощности, рабочей частоты, коэффициента усиления передатчика и поперечного сечения РЛС цели.

max_range = 5000;
range_res = 50;
fc = 10e9;
tx_gain = 20;
peak_power = 5500.0;

Выберите скорость распространения сигнала как скорость света и вычислите длину волны сигнала, соответствующую рабочей частоте.

c = physconst('LightSpeed');
lambda = c/fc;

Вычислите полосу пропускания импульсов на основе разрешения диапазона. Установите частоту дискретизации, fs, до удвоенной полосы пропускания импульсов. Полоса пропускания шума также устанавливается на полосу пропускания импульса. Радар интегрирует ряд импульсов, задаваемых num_pulse_int. Длительность каждого импульса является обратной полосе пропускания импульса.

pulse_bw = c/(2*range_res);
pulse_length = 1/pulse_bw;
fs = 2*pulse_bw;
noise_bw = pulse_bw;
num_pulse_int = 10;

Установите частоту повторения импульсов в соответствии с максимальным диапазоном РЛС.

prf = c/(2*max_range);

Создание системных объектов для модели

Выберите прямоугольную форму сигнала.

waveform = phased.RectangularWaveform('PulseWidth',pulse_length,...
    'PRF',prf,'SampleRate',fs);

Задайте характеристики усилителя приемника.

amplifier = phased.ReceiverPreamp('Gain',20,'NoiseFigure',0,...
    'SampleRate',fs,'EnableInputPort',true,'SeedSource','Property',...
    'Seed',2007);
transmitter = phased.Transmitter('Gain',tx_gain,'PeakPower',peak_power,...
    'InUseOutputPort',true);

Укажите радиолокационную антенну как одну изотропную антенну.

antenna = phased.IsotropicAntennaElement('FrequencyRange',[5e9 15e9]);

Установить моностатическую радиолокационную платформу.

radarplatform = phased.Platform('InitialPosition',[0; 0; 0],...
    'Velocity',[0; 0; 0]);

Настройте три целевые платформы, используя один объект System.

targetplatforms = phased.Platform(...
    'InitialPosition',[2000.66 3532.63 3845.04; 0 0 0; 0 0 0], ...
    'Velocity',[150 -150 0; 0 0 0; 0 0 0]);

Создайте объекты системы радиатора и коллектора.

radiator = phased.Radiator('Sensor',antenna,'OperatingFrequency',fc);
collector = phased.Collector('Sensor',antenna,'OperatingFrequency',fc);

Настройте три целевых свойства RCS.

targets = phased.RadarTarget('MeanRCS',[1.6 2.2 1.05],'OperatingFrequency',fc);

Создание объекта System для моделирования двустороннего распространения свободного пространства.

channels= phased.FreeSpace('SampleRate',fs,'TwoWayPropagation',true,...
    'OperatingFrequency',fc);

Определите соответствующий фильтр.

MFcoef = getMatchedFilter(waveform);
filter = phased.MatchedFilter('Coefficients',MFcoef,'GainOutputPort',true);

Создать диапазон и доплеровские бункеры

Настройте сетку быстрого времени. Быстрое время - это время дискретизации эхо-импульса относительно времени передачи импульса. Ячейками диапазона являются диапазоны, соответствующие каждому ячейке сетки быстрого времени.

fast_time = unigrid(0,1/fs,1/prf,'[)');
range_bins = c*fast_time/2;

Для компенсации потерь в диапазоне создайте системный объект? с изменяющимся во времени коэффициентом усиления.

gain = phased.TimeVaryingGain('RangeLoss',2*fspl(range_bins,lambda),...
    'ReferenceLoss',2*fspl(max_range,lambda));

Настройте бункеры Доплера. Доплеровские ячейки определяются частотой повторения импульсов. Создайте объект системы БПФ для доплеровской обработки.

DopplerFFTbins = 32;
DopplerRes = prf/DopplerFFTbins;
fft = dsp.FFT('FFTLengthSource','Property',...
    'FFTLength',DopplerFFTbins);

Создать куб данных

Настройка куба сокращенных данных. Обычно куб данных имеет измерения быстрого и медленного времени и количество датчиков. Поскольку куб данных имеет только один датчик, он является двумерным.

rx_pulses = zeros(numel(fast_time),num_pulse_int);

Создание системных объектов Scope

Создать два IntensityScope Объекты системы, один для доплеровской интенсивности времени, а другой для дальности интенсивности времени.

dtiscope = phased.IntensityScope('Name','Doppler-Time Display',...
    'XLabel','Velocity (m/sec)', ...
    'XResolution',dop2speed(DopplerRes,c/fc)/2, ...
    'XOffset',dop2speed(-prf/2,c/fc)/2,...
    'TimeResolution',0.05,'TimeSpan',5,'IntensityUnits','Mag');
rtiscope = phased.IntensityScope('Name','Range-Time Display',...
    'XLabel','Range (m)', ...
    'XResolution',c/(2*fs), ...
    'TimeResolution',0.05,'TimeSpan',5,'IntensityUnits','Mag');

Запуск имитационного цикла по нескольким радиолокационным передачам

Передача 2000 импульсов. Когерентно обрабатывать группы по 10 импульсов одновременно.

Для каждого импульса:

  1. Обновить положение и скорость РЛС radarplatform

  2. Обновление целевых положений и скоростей targetplatforms

  3. Создайте импульсы передаваемой одноволновой линии transmitter

  4. Вычислить дальности и углы целей относительно РЛС

  5. Излучайте сигналы на цели radiator

  6. Распространение импульсов на цель и обратно channels

  7. Отражение сигналов от цели targets

  8. Прием сигнала sCollector

  9. Усиление принятого сигнала amplifier

  10. Куб данных формы

Для каждого набора из 10 импульсов в кубе данных:

  1. Сопоставьте фильтр каждой строки (измерение быстрого времени) куба данных.

  2. Вычислите доплеровские сдвиги для каждой строки (медленная размерность) куба данных.

pri = 1/prf;
nsteps = 200;
for k = 1:nsteps
    for m = 1:num_pulse_int
        [ant_pos,ant_vel] = radarplatform(pri);
        [tgt_pos,tgt_vel] = targetplatforms(pri);
        sig = waveform();
        [s,tx_status] = transmitter(sig);
        [~,tgt_ang] = rangeangle(tgt_pos,ant_pos);
        tsig = radiator(s,tgt_ang);
        tsig = channels(tsig,ant_pos,tgt_pos,ant_vel,tgt_vel);
        rsig = targets(tsig);
        rsig = collector(rsig,tgt_ang);
        rx_pulses(:,m) = amplifier(rsig,~(tx_status>0));
    end

    rx_pulses = filter(rx_pulses);
    MFdelay = size(MFcoef,1) - 1;
    rx_pulses = buffer(rx_pulses((MFdelay + 1):end), size(rx_pulses,1));
    rx_pulses = gain(rx_pulses);
    range = pulsint(rx_pulses,'noncoherent');
    rtiscope(range);
    dshift = fft(rx_pulses.');
    dshift = fftshift(abs(dshift),1);
    dtiscope(mean(dshift,2));
    radarplatform(.05);
    targetplatforms(.05);
end

Все цели лежат на оси X. Две мишени движутся вдоль оси Х, а одна неподвижна. Поскольку радар находится в начале координат, скорость цели можно считывать непосредственно из окна Doppler-Time Display. Значения соответствуют указанным скоростям -150, 150 и 0 м/с.