gain

Усиление Системного объекта CIC-фильтра

Описание

пример

g = gain(sysobj) возвращает усиление Системы CIC-фильтра object™.

Когда sysobj dsp.CICDecimator объект, gain функция возвращает усиление для полного CIC decimator.

Когда sysobj dsp.CICInterpolator объект, gain функция возвращает усиление 2Nth этап фильтра интерполяции CIC, где N является количеством разделов фильтра. Для получения дополнительной информации смотрите g.

g = gain(sysobj,j) возвращает усиление jраздел th фильтра интерполяции CIC. Когда вы не используете j, функция принимает тот j 2N и возвращает усиление последнего раздела фильтра. Этот синтаксис не применяется когда sysobj dsp.CICDecimator объект.

Примеры

свернуть все

Чтобы сравнить эффективность двух интерполяторов, один CIC-фильтр и другой КИХ-фильтр, используют gain функция, чтобы настроить CIC-фильтр выходная амплитуда, чтобы совпадать с КИХ фильтрует выходную амплитуду.

Запустите путем создания набора входных данных, синусоидального сигнала x.

fs = 1000;          % Input sampling frequency.
t = 0:1/fs:1.5;     % Signal length = 1501 samples.
x = sin(2*pi*10*t); % Amplitude = 1 sinusoid.
x = x';

Спроектируйте каскад двух dsp.FIRInterpolator объекты с полным коэффициентом интерполяции 4.

l = 4; % Interpolation factor for FIR filter.
d = fdesign.interpolator(l);
firInterp = design(d,'multistage','SystemObject',true);

Запустите данные через интерполятор.

yfir = firInterp(x);

Спроектируйте dsp.CICInterpolator объект с коэффициентом интерполяции установил 4, дифференциальный набор задержки к 1, и количество набора разделов к 4.

r = 4; % Interpolation factor for the CIC filter.
d = fdesign.interpolator(r,'cic');
cicInterp = design(d,'multisection','SystemObject',true);

Запустите те же данные через фильтр.

ycic = cicInterp(x);

Используйте gain функция, чтобы настроить CIC-фильтр выходная амплитуда, чтобы совпадать с КИХ фильтрует выходную амплитуду.

gaincic = gain(cicInterp);
subplot(211);
plot([yfir; double(ycic)]);
subplot(212)
plot([yfir; double(ycic)/gain(cicInterp)]);

После исправления для усиления, вызванного интерполятором CIC, во втором подграфике, вы видите, что КИХ-фильтр и CIC-фильтр обеспечивают почти идентичную интерполяцию.

Это усиление равняется усилению последнего раздела CIC-фильтра. Чтобы подтвердить, откорректируйте КИХ-амплитуду фильтра с помощью gain(cicInterp,2N). Если N количество интегратора и разделы расчески CIC-фильтра, затем 2N последний раздел CIC-фильтра. N дан cicInterp.NumSections.

Второй подграфик показывает, что КИХ-фильтр и CIC-фильтр обеспечивают почти идентичную интерполяцию, когда усиление коррекции равняется усилению последнего раздела CIC-фильтра.

subplot(212);
plot([yfir; double(ycic)/gain(cicInterp,2*cicInterp.NumSections)]);

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

свернуть все

Введите CIC-фильтр в виде одного из следующих Системных объектов фильтра:

Индекс интерполятора CIC подготавливает, для которого усиление вычисляется в виде положительной скалярной величины.

Типы данных: single | double

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

свернуть все

Усиление CIC-фильтра, возвращенного скаляр. Когда вход sysobj :

  • dsp.CICDecimatorgain функция возвращает усиление для полного CIC decimator.

  • dsp.CICInterpolator – Интерполятор CIC вставляет нули в поток входных данных, уменьшание фильтра в целом получает 1/R, где R является коэффициентом интерполяции, с учетом добавленных выборок с нулевым знаком. Поэтому усилением интерполятора CIC является (RM) N/R, где N является количеством разделов фильтра, и M является задержкой дифференциала фильтра. gain функция возвращает это значение.

Типы данных: single | double

Смотрите также

Функции

Введенный в R2011a