getStretchProcessor

Системный объект: поэтапный. LinearFMWaveform
Пакет: поэтапный

Создайте процессор фрагмента для формы волны

Синтаксис

HS = getStretchProcessor(H)
HS = getStretchProcessor(H,refrng)
HS = getStretchProcessor(H,refrng,rngspan)
HS = getStretchProcessor(H,refrng,rngspan,v)

Описание

HS = getStretchProcessor(H) возвращает процессор фрагмента для формы волны, H. HS настраивается так, диапазон ссылки соответствует 1/4 максимальной однозначной области значений импульса. Промежуток области значений соответствует 1/10 расстояния, путешествовавшего волной в ширине импульса. Скорость распространения является скоростью света.

HS = getStretchProcessor(H,refrng) указывает диапазон ссылки.

HS = getStretchProcessor(H,refrng,rngspan) задает промежуток области значений. Ссылочный интервал сосредоточен в refrng.

HS = getStretchProcessor(H,refrng,rngspan,v) задает скорость распространения.

Входные параметры

H

Линейный объект импульсного сигнала FM.

refrng

Диапазон ссылки, в метрах, как положительная скалярная величина.

Значение по умолчанию: 1/4 максимальной однозначной области значений импульса

rngspan

Длина интервала областей значений интереса, в метрах, как положительная скалярная величина. Центр интервала является значением области значений, заданным в refrng аргумент.

Значение по умолчанию: 1/10 расстояния переместился волной в ширине импульса

v

Скорость распространения, в метрах в секунду, как положительная скалярная величина.

Значение по умолчанию: Скорость света

Выходные аргументы

HS

Расширьте процессор как phased.StretchProcessor Система object™.

Примеры

развернуть все

Используйте обработку фрагмента, чтобы определить местоположение цели в области значений 4 950 м.

Примечание: Этот пример запускается только в R2016b или позже. Если вы используете более ранний релиз, заменяете каждый вызов функции с эквивалентным step синтаксис. Например, замените myObject(x) с step(myObject,x).

Симулируйте сигнал.

waveform = phased.LinearFMWaveform;
x = waveform();
c = physconst('LightSpeed');
rng = 4950.0;
num_samples = round(rng/(c/(2*waveform.SampleRate)));
x = circshift(x,num_samples);

Выполните обработку фрагмента.

stretchproc = getStretchProcessor(waveform,5000,200,c);
y = stretchproc(x);

Постройте спектр получившегося сигнала.

[Pxx,F] = periodogram(y,[],2048,stretchproc.SampleRate,'centered');
plot(F/1000,10*log10(Pxx))
grid
xlabel('Frequency (kHz)')
ylabel('Power/Frequency (dB/Hz)')
title('Periodogram Power Spectrum Density Estimate')

Обнаружьте область значений.

[~,rngidx] = findpeaks(pow2db(Pxx/max(Pxx)),'MinPeakHeight',-5);
rngfreq = F(rngidx);
rng = stretchfreq2rng(rngfreq,stretchproc.SweepSlope,stretchproc.ReferenceRange,c)
rng = 4.9634e+03