шаг

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

Выполните обработку фрагмента для линейной формы волны FM

Синтаксис

Y = step(H,X)
Y = step(H,X,PRF)

Описание

Примечание

При запуске в R2016b, вместо того, чтобы использовать метод step, чтобы выполнить операцию, заданную Системой object™, можно вызвать объект с аргументами, как будто это была функция. Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

Y = step(H,X) применяет обработку фрагмента по первому измерению X. Каждый столбец X представляет один импульс получения.

Y = step(H,X,PRF) использование PRF как импульсная частота повторения. Этот синтаксис доступен, когда свойством PRFSource является 'Input port'.

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

H

Расширьте объект процессора.

X

Матрица входного сигнала. Каждый столбец представляет тот полученный импульс.

Размер первой размерности входной матрицы может отличаться, чтобы моделировать изменяющуюся длину сигнала. Изменение размера может произойти, например, в случае импульсной формы волны с переменной импульсной частотой повторения.

PRF

Импульсная частота повторения, заданная как положительная скалярная величина. Чтобы включить этот аргумент, установите свойство PRFSource на 'Input port'. Модули находятся в Герц.

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

Y

Результат обработки фрагмента. Размерности Y совпадают с размерностями X.

Примеры

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

Используйте обработку фрагмента, чтобы определить местоположение цели в области значений 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