firceqrip

Конечная импульсная характеристика с ограничениями equiripple

Синтаксис

B = firceqrip(n,Fo,DEV)
B = firceqrip(...,'slope',r)
B = firceqrip('minorder',[Fp Fst],DEV)
B = firceqrip(...,'passedge')
B = firceqrip(...,'stopedge')
B = firceqrip(...,'high')
B = firceqrip(...,'min')
B = firceqrip(...,'invsinc',C)
B = firceqrip(...,'invdiric',C)

Описание

B = firceqrip(n,Fo,DEV) проектирует порядок <reservedrangesplaceholder0> фильтр (длина фильтра равна n + 1) lowpass конечная импульсная характеристика с линейной фазой.

firceqrip создает те же lowpass фильтры equiripple, что и lowpass firpm производит использование алгоритма Паркса-Макклеллана. Это различие, как вы задаете характеристики фильтра для функции.

Входной параметр Fo задает частоту в верхнем ребре полосы пропускания в нормированной частоте (0 < Fo<1). Двухэлементный вектор dev задает пиковую или максимальную ошибку, допустимую в полосе пропускания и полосах остановки. Введите [d1 d2] для dev где d1 устанавливает ошибки полосы пропускания и d2 устанавливает ошибку области значений.

B = firceqrip(...,'slope',r) использует ключевое слово вход 'slope'и входной параметр r для создания фильтра с неоднородной полосой упора. r задается как положительная константа и определяет наклон затухания в полосе задерживания в дБ/нормированная частота. Большие значения r результат в увеличенном затухании в полосе задерживания в dB/normalized частоте.

B = firceqrip('minorder',[Fp Fst],DEV) проектирует фильтр с минимальным количеством коэффициентов, необходимых для удовлетворения отклонений в DEV = [d1 d2], при этом ширина перехода не больше FstFp, различие между частотами края полосы стопора и ребра пропускания. Можно задать 'mineven' или 'minodd' вместо 'minorder' для разработки фильтров минимального четного порядка (нечетная длина) или минимального нечетного порядка (четная длина), соответственно. The 'minorder' опция не применяется, когда вы задаете 'min' (минимальная фаза), 'invsinc', или 'invdiric' опции.

B = firceqrip(...,'passedge') проектирует фильтр, где Fo задает частоту начала развертывания полосы пропускания.

B = firceqrip(...,'stopedge') проектирует фильтр, где Fo задает частоту, с которой начинается диапазон остановки.

B = firceqrip(...,'high') проектирует фильтр конечной импульсной характеристики верхних частот вместо lowpass фильтра.

B = firceqrip(...,'min') проектирует фильтр с минимальной фазой.

B = firceqrip(...,'invsinc',C) проектирует lowpass, характеристика величины которого имеет форму обратной функции синуса. Это может использоваться для компенсации синус-подобных характеристик в частотный диапазон, таких как эффект удержания нулевого порядка в D/A конвертере. Величина компенсации в полосе пропускания контролируется C, который задается как скалярный или двухэлементный вектор. Элементы C указаны следующим образом:

  • Если C задается как действительный скаляр или первый элемент массива двухэлементный вектор, firceqrip создает фильтр с характеристикой величины 1/sinc (C* pi* F) где F - нормированная частота.

  • Если C подается как двухэлементный вектор, обратно-синусоидальная величина реакция повышается до положительной степени C(2). Если мы зададим P=C(2), firceqrip создает фильтр с величиной ответом 1/sinc (C* pi* F)P.

Если эта конечная импульсная характеристика фильтр используется с каскадным фильтром интегратор-гребень (CIC), установка C(2) равное количеству каскадов компенсирует мультипликативный эффект последовательных синус-подобных откликов CIC-фильтров.

Примечание

Поскольку значение обратной функции sinc становится неограниченным при C=1/F, значение C должно быть больше, чем обратная частота ребра полосы пропускания. Это может быть выражено как Fo<1/C. Для пользователей, знакомых с CIC дециматорами, C равно 1/2 продукт дифференциальной задержки и коэффициента десятикратного уменьшения.

B = firceqrip(...,'invdiric',C) проектирует lowpass фильтр с полосой пропускания, которая имеет форму обратной функции Dirichlet sinc. Частотная характеристика обратной функции Dirichlet sinc задается как {rC(sin(f/2r)sin(Cf/2)}pгде C, r и p скаляры. Область входа C может быть скаляром или вектором, содержащим 2 или 3 элемента. Если C является скаляром, p и r равен 1. Если C является двухэлементным вектором, первый элемент C и второй элемент p, [C p]. Если C является трехэлементным вектором, третий элемент r, [C p r].

Примеры

Чтобы ввести несколько изменения на конечная импульсная характеристика, которые вы проектируете с firceqripэти пять примеров охватывают оба синтаксиса по умолчанию b = firceqrip(n,wo,del) и некоторые необязательные входные параметры. Для каждого примера входные параметры n, wo, и del остаются прежними.

Создание фильтра с использованием firceqrip

Создайте конечная импульсная характеристика 30-го порядка с помощью firceqrip.

b = firceqrip(30,0.4,[0.05 0.03]); fvtool(b)

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains an object of type line.

Создайте конечная импульсная характеристика минимального порядка с помощью firceqrip. Частоты ребра полосы пропускания и ребра стоповой полосы равны 0,35π и 0,45π рад/образец. Допустимые отклонения составляют 0,02 и 1e-4.

b = firceqrip('minorder',[0.35 0.45],[0.02 1e-4]); fvtool(b)

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains an object of type line.

Проектируйте конечная импульсная характеристика 30-го порядка с stopedge ключевое слово для определения отклика в ребро полосы значений фильтра.

b = firceqrip(30,0.4,[0.05 0.03],'stopedge'); fvtool(b)

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains an object of type line.

Проектируйте конечная импульсная характеристика 30-го порядка с slope ключевое слово и r = 20.

b = firceqrip(30,0.4,[0.05 0.03],'slope',20,'stopedge'); fvtool(b)

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains an object of type line.

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

b = firceqrip(30,0.4,[0.05 0.03],'stopedge','min'); fvtool(b)

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains an object of type line.

Сравнение этого фильтра с фильтром на фигуре 1. Частота отключения wo = 0.4 теперь применяется к ребру полосы значений, а не к точке, в которой величина частотной характеристики составляет 0,5.

Просмотр графика нулей и полюсов, показанного здесь, показывает, что это минимальный фазовый конечная импульсная характеристика - нули лежат на единичной окружности или внутри нее, z = 1

fvtool(b,'polezero')

Figure Filter Visualization Tool - Pole-Zero Plot contains an axes and other objects of type uitoolbar, uimenu. The axes with title Pole-Zero Plot contains 4 objects of type line, text.

Проектируйте конечная импульсная характеристика 30-го порядка с invsinc ключевое слово для формирования полосы пропускания фильтра с функцией обратной синхронизации.

b = firceqrip(30,0.4,[0.05 0.03],'invsinc',[2 1.5]); fvtool(b)

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains an object of type line.

Применяемая обратная функция синуса определяется как 1/sinc (2 * w) ^ 1.5.

Реверс-Дирихлет-Sinc-образный пассивный диапазон

Создайте два порядка 30 фильтра с ограничениями конечной импульсной характеристики equiripple с обратными полосами пропускания Дирихле-sinc. Частота среза в обоих проектах является pi/4 радиан/выборка. Задайте C=1 в одном проекте C=2 во втором проекте. Максимальная ширина полосы пропускания и упорной полосы составляет 0,05. Задайте p=1 в одном проекте и p=2 во втором проекте.

Проектируйте фильтры.

b1 = firceqrip(30,0.25,[0.05 0.05],'invdiric',[1 1]);
b2 = firceqrip(30,0.25,[0.05 0.05],'invdiric',[2 2]);

Получите частотные характеристики фильтра с помощью freqz. Постройте график величины характеристик.

 [h1,~] = freqz(b1,1);
 [h2,w] = freqz(b2,1);
 plot(w,abs(h1)); hold on;
 plot(w,abs(h2),'r');
 axis([0 pi 0 1.5]);
 xlabel('Radians/sample');
 ylabel('Magnitude');
 legend('C=1 p=1','C=2 p=2');

Figure contains an axes. The axes contains 2 objects of type line. These objects represent C=1 p=1, C=2 p=2.

Осмотрите пульсацию стопора в проекте с помощью C=1 и p=1. Проект с ограничениями устанавливает максимальную пульсацию равной 0,05. Изменение масштаба области значений от частоты среза pi/4 радиан/выборка до 3pi/4 радианов/выборка.

 figure;
 plot(w,abs(h1));
 set(gca,'xlim',[pi/4 3*pi/4]);
 grid on;

Figure contains an axes. The axes contains an object of type line.

Расширенные возможности

.
Введенный в R2011a