gain

Усиление CIC-фильтра

Синтаксис

gain(sysobj)
gain(sysobj,j)

Описание

gain(sysobj) возвращает усиление Системы фильтра object™ sysobj. Функция поддерживает dsp.CICDecimator и dsp.CICInterpolator отфильтруйте структуры.

Когда sysobj decimator, gain возвращает усиление для полного CIC decimator.

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

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

Примеры

свернуть все

Сравнить производительность двух интерполяторов, один CIC-фильтр и другой КИХ-фильтр, усиление использования, чтобы настроить 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';

l = 4; % Interpolation factor for FIR filter.
d = fdesign.interpolator(l);
firInterp = design(d,'multistage','SystemObject',true);
yfir = firInterp(x);
r = 4; % Interpolation factor for the CIC filter.
d = fdesign.interpolator(r,'cic');
cicInterp = design(d,'multisection','SystemObject',true);
ycic = cicInterp(x);
gaincic = gain(cicInterp);
subplot(211);
plot([yfir; double(ycic)]);
subplot(212)
plot([yfir; double(ycic)/gain(cicInterp)]);

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

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

N дан cicInterp. NumSections.

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

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

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

Функции

Введенный в R2011a