gain

Коэффициент усиления CIC-фильтра Системного объекта

Описание

пример

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

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

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

g = gain(sysobj,j) возвращает коэффициент усиления jth раздел фильтра интерполяции CIC. Когда опускаешь jфункция принимает, что j 2 N и возвращает коэффициент усиления последней секции фильтра. Этот синтаксис не применяется при 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)]);

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

После коррекции коэффициента усиления, вызванного 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)]);

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 -- The gain функция возвращает коэффициент усиления для общего CIC дециматора.

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

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

См. также

Функции

Введенный в R2011a