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

Создать осциллограф интенсивности:
Задайте и настройте Системный объект phased.IntensityScope. Можно установить любые свойства Системного объекта в это время, или можно оставить их в их значениях по умолчанию. Смотрите Конструкцию.
Вызовите метод phased.IntensityScope, чтобы добавить строки интенсивности в нижнюю часть отображения согласно свойствам Системного объекта phased.IntensityScope. Некоторые свойства являются настраиваемыми и могут быть изменены в любое время. Ненастраиваемые свойства не могут быть изменены после первого вызова phased.IntensityScope. Последующие вызовы phased.IntensityScope добавляют больше строк интенсивности.
При запуске в R2016b, вместо того, чтобы использовать метод step, чтобы выполнить операцию, заданную Системным объектом, можно вызвать объект с аргументами, как будто это была функция. Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.
создает Системный объект осциллографа интенсивности, sIS = phased.IntensityScopesIS, имея значения свойств по умолчанию.
возвращается интенсивность определяют объем Системного объекта, sIS = phased.IntensityScope(Name,Value)sIS, с каждым заданным набором свойства Name к заданному Value. Имя должно находиться внутри одинарных кавычек (' '). Можно задать несколько аргументов пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN.
Имя Имя окна'Intensity Scope' (значение по умолчанию) | вектор символовИмя окна 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 и Name являются различными свойствами. Заголовок появляется в окне экрана выше данных. Имя появляется в строке заголовка окна.
Пример: 'Range vs Time'
Типы данных: char
TimeResolution — Разрешение времени.001 (значение по умолчанию) | положительный скаляр с действительным знакомРазрешение времени строки (строк) интенсивности, заданной как положительный скаляр с действительным знаком. Модули являются секундами.
Пример: .0001
Типы данных: double
TimeSpan — Отрезок времени окна экранаОтрезок времени отображения интенсивности, заданного как положительный скаляр с действительным знаком. Модули являются секундами.
Пример: 5.0
Типы данных: double
IntensityUnits — Метка единиц интенсивности'dB' (значение по умолчанию) | вектор символовМетка единиц интенсивности отображена в цветной полосе, заданной как вектор символов.
Пример: 'Watts'
Типы данных: char
Position — Местоположение и размер окна scope интенсивностиМестоположение и размер окна scope интенсивности, заданного как вектор 1 на 4, имеющий форму [left bottom width height]. Модули находятся в пикселях.
left и bottom задают местоположение нижнего левого угла окна.
width и height задают ширину и высоту окна.
Значение по умолчанию этого свойства зависит от разрешения вашего отображения. Это свойство является настраиваемым.
Пример: [100 100 500 400]
Типы данных: double
| скрыться | Скройте окно scope интенсивности |
| сброс | Сбросьте состояние Системного объекта осциллографа интенсивности |
| show | Покажите окно scope интенсивности |
| шаг | Обновите отображение осциллографа интенсивности |
| Характерный для всех системных объектов | |
|---|---|
release | Позвольте изменения значения свойства Системного объекта |
Использовать Системный объект phased.IntensityScope? отобразить интенсивность эха движущейся цели как функция области значений и время.
Запустите симуляцию в течение 5 секунд на 0,1 вторых шагах. В отображении каждая горизонтальная строка развертки показывает интенсивность радарного эха на каждом временном шаге.
nsteps = 50; dt = .1; timespan = nsteps*dt;
Моделируйте цель в области значений 320,0 км и уровне области значений 2,0 км/с. Эхо разрешено в интервалы области значений 1-километрового разрешения. Интервалы диапазона охватывают от 50 до 1 000 км.
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 до 1 000 метров.
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? отобразить обнаружение вывод полной симуляции радиолокационной системы. Радарный сценарий содержит стационарный одноэлементный моностатический радар и три движущихся цели.
Примечание: Этот пример запускается только в R2016b или позже. Если вы используете более ранний релиз, заменяете каждый вызов функции с эквивалентным синтаксисом step. Например, замените myObject(x) на step(myObject,x).
Установите радарные рабочие параметры
Установите вероятность обнаружения, вероятность ложного предупреждения, максимальной области значений, разрешения области значений, рабочей частоты, усиления передатчика, и предназначайтесь для радарного поперечного сечения.
pd = 0.9; pfa = 1e-6; max_range = 5000; range_res = 50; fc = 10e9; tx_gain = 20; tgt_rcs = 1;
Выберите скорость распространения сигнала, чтобы быть скоростью света и вычислить длину волны сигнала, соответствующую рабочей частоте.
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);
Вычислите степень передачи
Используйте уравнение Albersheim, чтобы вычислить ОСШ, требуемый встретить желаемой вероятности обнаружения и вероятности ложного предупреждения. Затем используйте основное уравнение радиолокации, чтобы вычислить степень, должен был достигнуть необходимого ОСШ.
snr_min = albersheim(pd, pfa, num_pulse_int); peak_power = radareqpow(lambda,max_range,snr_min,pulse_length,... 'RCS',tgt_rcs,'Gain',tx_gain);
Создание системных объектов для модели
Выберите прямоугольную форму волны.
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));
Настройте Доплеровские интервалы. Доплеровские интервалы определяются импульсной частотой повторения. Создайте Системный объект БПФ для Доплера, обрабатывающего.
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');
Запустите цикл симуляции по нескольким радарным передачам
Передайте 2 000 импульсов. Когерентно группы процесса из 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, и каждый является стационарным. Поскольку радар в начале координат, можно считать целевую скорость непосредственно из разового Доплером Окна экрана. Значения соглашаются с заданными скоростями-150, 150, и 0 м/секунда.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.