шаг

Системный объект: поэтапный. 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')