Диапазон-интенсивность (RTI) или Допплеровское время-интенсивность (DTI) отображения
The phased.IntensityScope Системная object™ создает возможности интенсивности для просмотра данных о диапазоне-времени-интенсивности (RTI) или Допплер-времени-интенсивности (DTI). Возможности интенсивности являются прокруткой водопада значений интенсивности как функции времени. Линии скана появляются в нижней части окна отображения и прокручиваются в верхней части. Каждая линия скана представляет интенсивность сигнала как функцию от интересующего параметра, такая как область значений или скорость. Можно также использовать этот объект для отображения данных угловой интенсивности и спектральных данных. Этот рисунок показывает отображение RTI.

Чтобы создать возможности интенсивности:
Определите и настройте phased.IntensityScope Системный объект. В это время можно задать любые свойства системных объектов или оставить их по значениям по умолчанию. См. «Конструкция».
Вызовите step метод добавления линий интенсивности в нижнюю часть отображения в соответствии со свойствами phased.IntensityScope Системный объект. Некоторые свойства настраиваются и могут быть изменены в любое время. Не настраиваемые свойства не могут быть изменены после первого вызова на step. Последующие вызовы step добавить больше линий интенсивности.
Примечание
Начиная с R2016b, вместо использования step метод для выполнения операции, заданной системным объектом, можно вызвать объект с аргументами, как если бы это была функция. Для примера, y = step(obj,x) и y = obj(x) выполнять эквивалентные операции.
создает область интенсивности Системный объект, sIS = phased.IntensityScopesIS, имеющих значения свойств по умолчанию.
возвращает область интенсивности Системный объект, sIS = phased.IntensityScope(Name,Value)sIS, с каждым заданным свойством Name установить на заданное Value. Name должны находиться внутри одинарных кавычек (''). Можно задать несколько аргументы пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN.
Name - Имя окна'Intensity Scope' (по умолчанию) | вектор символовИмя окна возможностей интенсивности, заданное как вектор символов. Name свойство и Title являются различными свойствами. Заголовок появляется в окне отображения, над данными. Имя появляется в строке заголовка окна.
Пример: 'Range Intensity'
Типы данных: char
XResolution - X- интервала между выборками по оси1 (по умолчанию) | положительный скаляр с реальным значениемВыборка X, заданный как положительный действительный скаляр. Эта величина определяет ширину каждого горизонтального интервала линии скана. Эти модули зависят от интерпретации данных. Для примера, если вы создаете отображение RTI, задайте XResolution на 0.5 интерпретируется как 0,5 метра.
Пример: 0.5
Типы данных: double
XOffset - X - смещение оси0 (по умолчанию) | скаляр с реальным значениемСмещение оси X, заданное как действительный скаляр. Эта величина устанавливает значение самого нижнего интервала линии скана. Значения всех других интервалов равны этому значению плюс целое число, кратное Xresolution. Эти модули зависят от интерпретации данных. Для примера, если вы создаете отображение RTI, задайте XOffset на 100.0 интерпретируется как 100 метров.
Пример: -0.1
Типы данных: double
Xlabel - Метка оси X'' (по умолчанию) | вектор символовX -метка оси, заданная как вектор символов.
Пример: 'Range (km)'
Типы данных: char
Title - Заголовок отображения'' (по умолчанию) | вектор символовЗаголовок отображения возможностей интенсивности, заданный как вектор символов. Title свойство и Name являются различными свойствами. Заголовок появляется в окне отображения, над данными. Имя появляется в строке заголовка окна.
Пример: 'Range vs Time'
Типы данных: char
TimeResolution - Разрешение по времени.001 (по умолчанию) | положительный скаляр с реальным значениемРазрешение времени линии (линий) интенсивности, определенной как положительный скаляр с реальным знаком. Модули - секунды.
Пример: .0001
Типы данных: double
TimeSpan - Временной промежуток окна отображенияВременной интервал отображения интенсивности, заданный как положительный реальный скаляр. Модули - секунды.
Пример: 5.0
Типы данных: double
IntensityUnits - Метка модулей интенсивности'dB' (по умолчанию) | вектор символовМетка модулей интенсивности, отображаемая на панели цветов в виде вектора символов.
Пример: 'Watts'
Типы данных: char
Position - Расположение и размер окна возможностей интенсивностиРасположение и размер окна возможностей интенсивности, заданные как вектор 1 на 4, имеющий вид [left bottom width height]. Модули указаны в пикселях.
left и bottom укажите расположение нижнего левого угла окна.
width и height задайте ширину и высоту окна.
Значение по умолчанию этого свойства зависит от разрешения вашего отображения. Это свойство настраивается.
Пример: [100 100 500 400]
Типы данных: double
| скрыть | Скрыть окно возможностей интенсивности |
| сброс | Сброс состояния области интенсивности Системный объект |
| показать | Показать окно возможностей интенсивности |
| шаг | Обновление отображения возможностей интенсивности |
| Общий для всех системных объектов | |
|---|---|
release | Разрешить изменение значения свойства системного объекта |
Использование phased.IntensityScope Системный объект? отображение интенсивности эха движущейся цели как функции области значений и времени.
Запустите симуляцию в течение 5 секунд на 0,1 секунде. На отображении каждая горизонтальная линия скана показывает интенсивность радиолокационного эха на каждом временном шаге.
nsteps = 50; dt = .1; timespan = nsteps*dt;
Симулируйте цель на дальности 320,0 км и скорости области значений 2,0 км/с. Эхо-сигналы разрешаются в интервалы области значений 1 км разрешения. Интервалы области значений составляют от 50 до 1000 км.
rngres = 1.0; rngmin = 50.0; rngmax = 1000.0; tgtrange = 320.0; rangerate = 2.0; rngscan = [rngmin:rngres:rngmax];
Настройте возможности интенсивности с помощью этих свойств.
Используйте XResolution свойство, чтобы задать ширину каждого интервала линии скана в разрешении области значений 1 км.
Используйте XOffset свойство установить значение интервала наименьшей области значений минимальной области значений 50 км.
Используйте TimeResolution свойство, чтобы задать значение различия во времени линии скана равное 0,1 с.
Используйте TimeSpan свойство, чтобы задать высоту окна отображения как временную длительность симуляции.
Используйте IntensityUnits свойство, чтобы задать отображение модулей равным Watts.
scope = phased.IntensityScope('Name','IntensityScope Display',... 'Title','Range vs. Time','XLabel','Range (km)',... 'XResolution',rngres,'XOffset',rngmin,... 'TimeResolution',dt,'TimeSpan',timespan, ... 'IntensityUnits','Watts','Position',[100,100,800,450]);
Обновление текущего целевого интервала и создание записей для двух смежных интервалов области значений. Каждый вызов на step метод создает новую линию скана.
for k = 1:nsteps bin = floor((tgtrange - rngmin)/rngres) + 1; scanline = zeros(size(rngscan)); scanline(bin+[-1:1]) = 1; scope(scanline.'); tgtrange = tgtrange + dt*rangerate; pause(.1); end

Используйте phased.IntensityScope Системный объект? отображение интенсивности эхо-сигналов трех движущихся целей как функций области значений и времени.
Создайте радар и Системные объекты цели
Настройте начальные положения и скорости трех целей. Используйте phased.Platform Системный объект? для моделирования движений радара и цели. Радар является стационарным, в то время как цели подвергаются постоянному движению скорости. Симуляция выполняется в течение 500 шагов с шагом 0,1 секунды, что дает общее время симуляции 50 секунд.
nsteps = 500; dt = .1; timespan = nsteps*dt; x1 = [60,0,0]'; x2 = [60,-80,40]'; x3 = [300,0,-300]'; v1 = [2,0,0]'; v2 = [10,5,6]'; v3 = [-10,2,-4]'; platform = phased.Platform([0,0,0]',[0,0,0]'); targets = phased.Platform([x1,x2,x3],[v1,v2,v3]);
Настройка интервалов диапазона
Каждый эхо-сигнал помещается в интервал областей значений. Разрешение области значений составляет 1 метр, и область значений составляет от 50 до 1000 метров.
rngres = 1.0; rngmin = 50.0; rngmax = 1000.0; rngscan = [rngmin:rngres:rngmax];
Создайте функцию усиления
Задайте зависящую от области значений функцию усиления, чтобы улучшить отображение целей на больших диапазонах. Функция усиления усиливает возвращенное эхо только в целях визуализации.
rangegain = @(rng)(1e12*rng^4);
Создайте возможности интенсивности
Настройте возможности интенсивности с помощью этих свойств.
Используйте XResolution свойство, чтобы задать ширину каждого интервала линии скана в разрешении области значений 1 км.
Используйте XOffset свойство установить значение интервала наименьшей области значений минимальной области значений 50 км.
Используйте TimeResolution свойство, чтобы задать значение различия во времени линии скана равное 0,1 с.
Используйте TimeSpan свойство, чтобы задать высоту окна отображения как временную длительность симуляции.
Используйте IntensityUnits свойство, чтобы задать отображение модулей равным Watts.
scope = phased.IntensityScope('Name','IntensityScope Display',... 'Title','Ranges vs. Time','XLabel','Range (m)','XResolution',rngres,... 'XOffset',rngmin,'TimeResolution',dt,'TimeSpan',timespan, ... 'IntensityUnits','Watts','Position',[100,100,800,450]);
Запуск цикла симуляции
В этом цикле перемещайте цели с постоянной скоростью, используя step метод phased.Platform Системный объект.
Вычислите целевые области значений с помощью rangeangle функция.
Вычислите целевые интервалы области значений путем квантования значений области значений в целочисленных множителях rangres.
Заполните каждый интервал целевой области значений и соседние интервалы моделируемым значением интенсивности радара.
Добавьте сигнал от каждой цели к линии скана.
Вызовите step метод phased.IntensityScope Системный объект для отображения линий скана.
for k = 1:nsteps xradar = platform(dt); xtgts = targets(dt); [rngs] = rangeangle(xtgts,xradar); scanline = zeros(size(rngscan)); rngindx = ceil((rngs(1) - rngmin)/rngres); scanline(rngindx + [-1:1]) = rangegain(rngs(1))/(rngs(1)^4); rngindx = ceil((rngs(2) - rngmin)/rngres); scanline(rngindx + [-1:1]) = rangegain(rngs(2))/(rngs(2)^4); rngindx = ceil((rngs(3) - rngmin)/rngres); scanline(rngindx + [-1:1]) = rangegain(rngs(3))/(rngs(3)^4); scope(scanline.'); pause(.1); end

Используйте 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]);
Настройте три целевые платформы с помощью одного системного объекта.
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);
Создайте Системный объект, чтобы смоделировать двухстороннее распространение свободного пространства.
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));
Установите доплеровские интервалы. Доплеровские интервалы определяются частотой повторения импульсов. Создайте объект FFT System для Доплеровской обработки.
DopplerFFTbins = 32; DopplerRes = prf/DopplerFFTbins; fft = dsp.FFT('FFTLengthSource','Property',... 'FFTLength',DopplerFFTbins);
Создайте кубик данных
Настройте уменьшенный кубик данных. Обычно кубик данных имеет быстрые и медленные размерности и количество датчиков. Поскольку кубик данных имеет только один датчик, он двумерный.
rx_pulses = zeros(numel(fast_time),num_pulse_int);
Создайте системные объекты IntensityScope
Создайте два 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 импульсов за раз.
Для каждого импульса:
Обновите положение и скорость радара radarplatform
Обновите целевые положения и скорости targetplatforms
Создайте импульсы одноволнового train, которая будет передана transmitter
Вычислите области значений и углы целей относительно радара
Излучайте сигналы к целям radiator
Распространите импульсы на цель и назад channels
Отражайте сигналы от целевой targets
Прием сигнала sCollector
Усильте принятый сигнал amplifier
Кубик данных формы
Для каждого набора из 10 импульсов в кубе данных:
Соответствие фильтрации каждой строки (быстрая размерность) куба данных.
Вычислите доплеровские сдвиги для каждой строки (медленно-временная размерность) куба данных.
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. Две цели движутся по оси X, одна - стационарная. Поскольку радар находится в источнике, можно считать скорость цели непосредственно из окна Doppler-Time Display. Значения согласуются с заданными скоростями -150, 150 и 0 м/сек.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.