exponenta event banner

выгода

Коэффициент усиления объекта CIC filter System

Описание

пример

g = gain(sysobj) возвращает коэффициент усиления системного object™ фильтра CIC.

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

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

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

Примеры

свернуть все

Для сравнения характеристик двух интерполяторов, одного фильтра CIC и другого фильтра FIR, используйте gain регулировка выходной амплитуды фильтра CIC в соответствии с выходной амплитудой фильтра FIR.

Начните с создания набора входных данных, синусоидального сигнала х.

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);

Проектирование a 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 в соответствии с выходной амплитудой фильтра FIR.

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

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

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

Этот коэффициент усиления равен коэффициенту усиления последней секции фильтра CIC. Для подтверждения откорректируйте амплитуду фильтра FIR с помощью gain(cicInterp, 2N). Если N - количество интеграторных и гребенчатых секций фильтра CIC, то 2N - последняя секция фильтра CIC. N задается cicInterp.NumSections.

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

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

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

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

свернуть все

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

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

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

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

свернуть все

Коэффициент усиления фильтра CIC, возвращенный скаляр. Когда вход sysobj является:

  • dsp.CICDecimator -- gain функция возвращает коэффициент усиления для общего прореживателя CIC.

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

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

См. также

Функции

Представлен в R2011a