шаг

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

Примените время, отличаясь усиления к входному сигналу

Синтаксис

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

Описание

Примечание

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

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

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

Y = step(H,X,L) кроме того, задает потерю области значений, L как вектор столбцов. Используйте этот аргумент только, когда вы установите свойство RangeLossSource на 'Input port'. Длина L должна быть равной или больше, чем количество строк X. L может быть одинарный или двойная точность.

Примечание

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

Примеры

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

Примените время, отличаясь усиление к сигналу компенсировать потери мощности сигнала, должные располагаться.

Во-первых, создайте сигнал с потерей области значений. Установите ссылочную потерю для 16 дБ.

rngloss = 10:22;
refloss = 16;
t = (1:length(rngloss))';
x = 1./db2mag(rngloss(:));

Затем добавьте усиление, чтобы компенсировать потерю области значений.

gain = phased.TimeVaryingGain('RangeLoss',rngloss,'ReferenceLoss',refloss);
y = gain(x);

Постройте сигнал с потерей и компенсированный сигнал.

tref = find(rngloss==refloss);
stem([t t],[abs(x) abs(y)])
hold on
stem(tref,x(tref),'filled','r')
xlabel('Time (s)'); ylabel('Magnitude (V)')
grid on
legend('Before time varying gain','After time varying gain',...
    'Reference range')