step

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

Выборки линейного импульсного сигнала FM

Синтаксис

Y = step(sLFM)
Y = step(sLFM,prfidx)
Y = step(sRFM,freqoffset)
[Y,PRF] = step(___)
[Y,COEFF] = step(___)

Описание

Примечание

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

Y = step(sLFM) возвращает выборки линейного импульса FM в вектор-столбце Y.

Y = step(sLFM,prfidx), использует prfidx индексируйте, чтобы выбрать PRF из предопределенного вектора из значений, заданных в PRF свойство. Этот синтаксис применяется, когда вы устанавливаете PRFSelectionInputPort свойство к true.

Y = step(sRFM,freqoffset), использует freqoffset сгенерировать форму волны со смещением, как задано во время шага. Используйте этот синтаксис для случаев, где частота импульса передачи должна быть динамически обновлена. Этот синтаксис применяется, когда вы устанавливаете FrequencyOffsetSource свойство к 'Input port'.

[Y,PRF] = step(___) также возвращает частоту повторения импульса тока, PRF. Чтобы включить этот синтаксис, установите PRFOutputPort свойство к true и набор OutputFormat свойство к 'Pulses'.

[Y,COEFF] = step(___) возвращает коэффициенты согласованного фильтра, COEFF, для импульса тока. Чтобы включить этот синтаксис, установите CoefficientsOutputPort свойство к true. COEFF возвращен или как вектор Z-1 N или как матрица Z-by-M N.

  • Вектор Z-1 N возвращен когда:

    • Объект имеет OutputFormat установите на 'Pulses' и NumPulses равно 1. N Z является шириной импульса.

    • Объект сконфигурирован, чтобы сгенерировать постоянные формы волны ширины импульса (DurationSpecification установлен в 'Pulse width' или 'Duty cycle' и PRF имеет одно уникальное значение); и любой OutputFormat установлен в 'Pulses' и NumPulses больше 1, или OutputFormat установлен в 'Samples'. Для этого случая N Z является шириной импульса.

  • Матрица Z-by-M N возвращена, когда объект генерирует различную ширину импульса (DurationSpecification свойство установлено в 'Duty cycle' и PRF имеет больше чем одно уникальное значение); и любой OutputFormat установите на 'Pulses' и NumPulses больше 1, или OutputFormat установлен в 'Samples'. Для этого случая N Z является максимумом ширины импульса, и M является количеством уникального PRFs.

Можно объединить дополнительные аргументы ввода и вывода, когда их свойства включения установлены. Дополнительные вводы и выводы должны быть перечислены в том же порядке как порядок свойств включения. Например, [Y,PRF,COEFF] = step(sRFM,prfidx,freqoffset).

Примечание

Объект выполняет инициализацию в первый раз, когда объект выполняется. Эта инициализация блокирует ненастраиваемые свойства и входные технические требования, такие как размерности, сложность и тип данных входных данных. Если вы изменяете ненастраиваемое свойство или входную спецификацию, Системный объект выдает ошибку. Чтобы изменить ненастраиваемые свойства или входные параметры, необходимо сначала вызвать release метод, чтобы разблокировать объект.

Примеры

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

Создайте линейную форму волны FM, имеющую пропускную способность развертки 300 кГц, частоту дискретизации 1 МГц, ширину импульса 50 микросекунд и импульсную частоту повторения 10 кГц. Сгенерируйте два импульса.

sLFM = phased.LinearFMWaveform('SweepBandwidth',3e5,...
    'OutputFormat','Pulses','SampleRate',1e6,...
    'PulseWidth',50e-6,'PRF',10e3,'NumPulses',2);

Получите и постройте линейную форму волны FM.

wav = step(sLFM);
numpulses = size(wav,1);
t = [0:(numpulses-1)]/sLFM.SampleRate;
plot(t*1e6,real(wav))
xlabel('Time (\mu sec)')
ylabel('Amplitude')

Создайте шесть линейных импульсов формы волны FM, имеющих пропускную способность развертки 300 кГц, частоту дискретизации 1 МГц, ширину импульса 50 микросекунд и рабочий цикл 20%. Варьируйтесь импульсная частота повторения.

Установите частоту дискретизации и PRF. Отношение частоты дискретизации к PRF должно быть целым числом.

fs = 1e6;
PRF = [10000,25000];
sLFM = phased.LinearFMWaveform('SweepBandwidth',3e5,...
    'OutputFormat','Pulses','SampleRate',fs,...
    'DurationSpecification','Duty Cycle','DutyCycle',.2,...
    'PRF',PRF,'NumPulses',1,'PRFSelectionInputPort',true);

Получите и постройте линейные формы волны FM. Для первых трех вызовов метода шага, набор PRF к 10 кГц с помощью индекса PRF. Для следующих трех вызовов, набор PRF к 25 кГц.

wav = [];
for n = 1:6
    idx = floor((n-1)/3)+1;
    wav1 = step(sLFM,idx);
    wav = [wav;wav1];
end
nsamps = size(wav,1);
t = [0:(nsamps-1)]/sLFM.SampleRate;
plot(t*1e6,real(wav))
xlabel('Time (\mu sec)')
ylabel('Amplitude')

Сгенерируйте выходные выборки и коэффициенты согласованного фильтра линейного импульсного сигнала FM при смещении частоты на 50 кГц.

waveform = phased.LinearFMWaveform('SweepBandwidth',1e5, ...
    'PulseWidth',5e-5,'OutputFormat','Pulses', ...
    'FrequencyOffset',5e4,'CoefficientsOutputPort',true);
[wav,coeff] = waveform();

Создайте согласованный фильтр, который применяет коэффициенты как входной параметр. Используйте коэффициенты при применении согласованного фильтра к форме волны. Постройте форму волны и согласованный фильтр выходные параметры.

mf = phased.MatchedFilter('CoefficientsSource','Input port');
mfOut = mf(wav,coeff);
subplot(211),plot(real(wav));
xlabel('Samples'),ylabel('Amplitude'),title('Waveform Output');
subplot(212),plot(abs(mfOut));
xlabel('Samples'),ylabel('Amplitude'),title('Matched Filter Output');