step

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

Выполните согласованную фильтрацию

Синтаксис

Y = step(H,X)
Y = step(H,X,COEFF)
[Y,GAIN] = step(___)

Описание

Примечание

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

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

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

Y = step(H,X,COEFF) использует вход COEFF как коэффициенты согласованного фильтра. Этот синтаксис доступен, когда вы устанавливаете CoefficientsSource свойство к 'Input port'.

[Y,GAIN] = step(___) возвращает дополнительный выход GAIN как усиление (в децибелах) согласованного фильтра. Этот синтаксис доступен, когда вы устанавливаете GainOutputPort свойство к true.

Примечание

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

Примеры

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

Создайте линейную форму волны FM с пропускной способностью развертки 300 кГц и шириной импульса 50 μs. Получите коэффициенты согласованного фильтра с помощью getMatchedFilter метод. Затем используйте step к фильтру соответствия форма волны.

waveform = phased.LinearFMWaveform('SweepBandwidth',3e5,...
    'OutputFormat','Pulses','SampleRate',1e6,...
    'PulseWidth',50e-6,'PRF',1e4);
wav = waveform();

Постройте целую форму волны. Длина формы волны является импульсным интервалом повторения (100 выборок).

stem(real(wav))
xlabel('Samples')
title('Real Part of Waveform')

Получите коэффициенты согласованного фильтра для линейной формы волны FM. Длина коэффициентов согласованного фильтра является длиной импульса.

mfcoeffs = getMatchedFilter(waveform);
stem(real(mfcoeffs))
xlabel('Samples')
title('Real Part of Matched Filter Coefficients')

Используйте phased.MatchedFilter step метод, чтобы получить согласованный фильтр выход.

filter = phased.MatchedFilter('Coefficients',mfcoeffs);
mfoutput = filter(wav);
stem(real(mfoutput))
xlabel('Samples')
title('Real Part of Matched Filter Output')