Разработка аналоговых частотных фильтров на основе ФНЧ-прототипа
Реферат
Разработка аналоговых частотных фильтров на основе ФНЧ-прототипа
Традиционная технология разработки
аналоговых фильтров основывается на понятии фильтра-прототипа, под которым
понимают ФНЧ с нормированной по частоте и амплитуде АЧХ. Нормировка по частоте
выполняется относительно частоты среза ФНЧ, нормировка по амплитуде -
относительно максимального значения коэффициента передачи ФНЧ.
В соответствии с требованиями к
фильтру выбирается вид функции, аппроксимирующей его частотную характеристику
(Баттервортовская, Чебышевская, Бесселевская и т.п.) и его порядок. Далее
находятся нули и полюса передаточной ФНЧ-прототипа, по которым вычисляются
коэффициенты полиномов числителя и знаменателя передаточной функции. Затем
выполняется процедура частотного преобразования ФНЧ-прототипа в требуемый тип
фильтра (ФНЧ-ФНЧ, ФНЧ-ФВЧ, ФНЧ-ПФ, ФНЧ-РФ). Выбирается вариант схемотехнической
реализации фильтра и передаточная функция преобразуется к виду, удобному для
его реализации. Завершается процедура проектирования расчетом параметров схем
звеньев фильтра и исследованием его характеристик.
Расчет порядка фильтра можно выполнить, используя следующие функции MatLab:
n = buttord (Wp, Ws, Rp, Rs, 's') % - фильтр Баттерворта;
n = cheb1ord (Wp, Ws, Rp, Rs, 's') % фильтр Чебышева 1 рода;
n = cheb2ord (Wp, Ws, Rp, Rs, 's') % фильтр Чебышева 2 рода;
n = ellipord (Wp, Ws, Rp, Rs, 's') % фильтр Кауэра (эллиптический),
где • Wp - граничная частота для
полосы пропускания, рад/с;
• Ws - граничная частота для
полосы задерживания, рад/с;
• Rp - максимальное
подавление в полосе пропускания, дБ;
• Rs - минимальное
подавление в полосе задерживания, дБ.
Смысл параметров Wp, Ws, Rp, Rs поясняется рис. 7.2.
Если проектируется полосовой или режекторный фильтр, то параметры Wp и Ws должны быть заданы в
форме векторов: [Wpн Wpв] и [Wsн Wsв], где индексы «н» и «в» указывают на нижнюю и верхнюю границы
полос пропускания и задерживания.
Эти функции возвращают величину
порядка фильтра n.
Расчет нулей и полюсов передаточной функции фильтра-прототипа выполняется с помощью
следующих функций MatLab:
[z, p, k] = besselap(n) % фильтр Бесселя;
[z, p, k] = buttap(n) % фильтр Баттерворта;
[z, p, k] = cheb1ap (n, Rp) % фильтр Чебышева 1
рода;
[z, p, k] = cheb2ap (n, Rs) % фильтр Чебышева 2
рода;
[z, p, k] = ellipap (n, Rp, Rs)% эллиптический фильтр
(фильтр Кауэра-Золотарева).
Функции возвращают векторы нулей [z], полюсов [p] и константу k - максимальное значение
коэффициента передачи фильтра.
Основным параметром указанных
функций является порядок фильтра n. Помимо этого для фильтров Чебышева и эллиптических фильтров
необходимо указать допустимые величины затуханий Rp - в полосе пропускания
и Rs - в полосе задержания (в дБ).
Для вычисления коэффициентов
передаточной функции фильтра прототипа (векторов [b] и [a]) используется функция
[b, a] = zp2tf (z, p, k), входными параметрами которой
являются найденные выше параметры [z, p, k].
Функция возвращает векторы [b] и [a] - коэффициенты
полиномов знаменателя и числителя передаточной функции ФНЧ-прототипа.
Частотное преобразование
ФНЧ-прототипа преобразует ФНЧ-прототипа в
требуемый тип фильтра. Оно выполняется с помощью следующих функций MatLab:
[bt, at] = lp2lp (b, a, Wp) % ФНЧ - ФНЧ;
[bt, at] = lp2hp (b, a,
Wp) % ФНЧ - ФВЧ;
[bt, at] = lp2bp (b, a,
Wo, Bw) % ФНЧ - ПФ;
[bt, at] = lp2bs (b, a,
Wo, Bw) % ФНЧ - РФ.
Здесь Wp, рад/с - частота среза
проектируемого фильтра (граница полосы пропускания);
, рад/с -
среднегеометрическое значение границ полосы пропускания;
Wв
и Wн, рад/с - верхняя и нижняя границы полосы пропускания ПФ
(задержания для РФ);
, рад/с - полоса
пропускания ПФ (задержания для РФ).
Для расчета частотных
характеристик фильтра в MatLab
можно применить функцию h
= freqs (b, a, w), которая возвращает значения комплексного коэффициента передачи
(вектор [h]) фильтра, определенного векторами [a]
и [b] на сетке частот, задаваемой вектором [w]. Функцию можно вызывать в несколько ином варианте:
[h, w] = freqs (b, a).
В этом случае сетку частот (вектор [w]) MatLab выбирает автоматически.
Проиллюстрируем рассмотренную
технологию проектирования на примере проектирования Чебышевского фильтра
верхних частот 5-го порядка с частотой среза 5 кГц и затуханием в полосе
задерживания 20 дБ. Для решения этой задачи можно использовать следующую
последовательность команд MatLab:
>> f0=5e3; df=100;
n=5; Rp=3; Rs=20;
>> w0=2*pi*f0; dw=2*pi*df;
wp=2*pi*5e3;
>> f=0:200:10e3;
f1=f*2*pi;
>> [z, p, k] =
cheb2ap (n, Rs); %***
>> [b, a] = zp2tf
(z, p, k); %***
>> [bt, at] =
lp2lp (b, a, wp); %***
>> h = freqs (bt,
at, f1);
>> plot (f,
abs(h)); grid.
АЧХ такого фильтра показана на рис.
1.
Рис. 1. АЧХ инверсного Чебышевского
ФВЧ с частотой среза 5 кГц и внеполосным затуханием 20 дБ
Для вывода результатов расчета
коэффициентов передаточной функции (векторов [bt] и [bt]) можно применить
следующую последовательность команд MatLab:
>> format compact
>> format short e
>> bt =
3.0602e+022
>> bt = 1.0000e+000 1.1972e+005 6.6883e+009 2.1352e+014 3.8343e+018 3.0602e+022.
АЧХ других типов фильтров и
фрагменты команд для их проектирования приведены на рис. 2. Для получения этих
характеристик и соответствующих векторов передаточных функций достаточно в
приведенной выше последовательности команд заменить три помеченные знаками ***
строки на три строки команд, указанных на поле графика АЧХ соответствующего
фильтра.
Современные технологии разработки
фильтров позволяют в значительной мере уменьшить трудоемкость процедуры
проектирования и существенно упростить ее. В системы автоматизированного
проектирования электронных схем, как правило, включают пакеты прикладных программ
либо подсистемы проектирования фильтров. В них технологические операции не
детализируются, а интегрируются внутрь более общих процедур. Кроме того, для
пользователя отпадает необходимость жестко соблюдать порядок выполнения
технологических операций при проектировании, поскольку в пакеты программ,
обычно, включают сервисные функции, обеспечивающие несколько точек входа в
процедуру проектирования и ее коррекцию на разных этапах.
амплитудный частота фильтр прототип
Функции преобразования
математических моделей в MatLab
В MatLab реализован ряд функций,
позволяющих рассчитывать порядок фильтра непосредственно по требованиям к АЧХ,
при этом отпадает необходимость рассчитывать фильтр-прототип.
Для расчета параметров
математических моделей фильтров можно воспользоваться следующими функциями:
butter - для Баттервортовских фильтров;
cheby1 - для Чебышевских фильтров 1-го рода;
cheby2 - для Чебышевских фильтров 2-го рода (инверсных Чебышевских);
besself - для Бесселевских фильтров;
ellip - для эллиптических фильтров (фильтров Кауэра-Золотарева).
Эти функции позволяют рассчитывать
параметры математических моделей фильров в различных формах (коэффициенты
полиномов или нули и полюса передаточной функции, параметры переменных
состояния). Варианты вызова рассматриваемых функций однотипны. Рассмотрим их на
примере расчета моделей Баттервортовских фильтров.
При расчетах ФНЧ, ФВЧ, РФ в качестве
аргументов функций необходимо указать тип фильтра 'ftype' ('high' - ФВЧ, 'low' - ФНЧ, 'stop' - РФ) и вектор частот
среза [Wn]. При расчете ФНЧ и ФВЧ этот вектор состоит из одного элемента,
при расчете ПФ и РФ - из двух.
[b, a] = butter (n, Wn,
'ftype', 's');
[z, p, k] = butter (n,
Wn, 'ftype', 's');
[A, B, C, D] = butter
(n, Wn, 'ftype', 's').
Когда параметр 'ftype' опущен рассчитывается
ПФ, если вектор [Wn] содержит два элемента и ФНЧ, если вектор [Wn] одноэлементный:
[b, a] = butter (n, Wn,
's');
[z, p, k] = butter (n,
Wn, 's');
[A, B, C, D] = butter
(n, Wn, 's').
Параметр 's', указывает на то, что
проектируется аналоговый фильтр. Выходными параметрами этих функций являются
коэффициенты передаточной функции - [b, a], нули, полюсы и коэффициент передачи - [z, p, k] либо параметры модели фильтра
переменных состояния [A, B, C, D]. Вид возвращаемых параметров определяется по размерности вектора
в левой части выражения для вызова функции. Применение указанных функций
иллюстрируется рис. 3.
Rp=3; Rs=20;
wp=2*pi*4.7e3; ws=2*pi*5.3e3;
f=0:50:10e3;
f1=f*2*pi;= cheb2ord (wp, ws, Rp, Rs, 's');=ws;
[bt,
at] = cheby2 (n, Rs, Wn, 's');= freqs (bt, at, f1);(f, abs(h)); grid
Рис. 3. Расчет ФНЧ и ПФ
Rp=3;
Rs=20;=2*pi*4.7e3; ws=2*pi*5.3e3;=4.5e3:5:5.5e3; f1=f*2*pi;= cheb2ord (wp, ws,
Rp, Rs, 's');=[2*pi*4.9e3, 2*pi*5.1e3];
[bt,
at] = cheby2 (n, Rs, Wn, 's');= freqs (bt, at, f1);(f, abs(h)); grid
Для преобразования
моделей из одного вида в другой можно использовать следующие функции:
[z, p,
k] = tf2zp (b, a).
[b, a]
= zp2tf (z, p, к).
[z, p, k] = ss2zp (A, В, С, D).
[А. В, С, D] = zp2ss (z, p, к).
При реализации аналоговых фильтров
часто используют представление их передаточных функций в виде произведения
передаточных функций второго порядка (каскадная форма, sos-представление):
Параметры такого
представления задаются в виде вещественной матрицы ||sos||, сроки
которой представляют собой векторы [b]
и [a] коэффициентов полиномов числителя и знаменателя передаточной
функции звеньев второго порядка.
Для нахождения матрицы ||sos||
можно воспользоваться следующими функциями MatLab:
[sos]=
tf2sos (b, a);
[sos]=
ss2sos (A, B, С, D),
[sos] =
zp2sos (z, p, k).
а обратное
преобразование можно выполнить с помощью функций
[b, a]
= sos2tf(sos);
[A, B, С, D]=sos2ss(sos);
[z, p,
k] = sos2zp(sos).
Для разложения передаточной функции
на простые дроби и обратного преобразования можно использовать функции residue:
[r, p, k] = residue (b,
a);
[b, a] = residue (r, p,
k).
Здесь [b, а] - векторы коэффициентов
полиномов числителя и знаменателя функции передачи соответственно, [r, p, k] - векторы вычетов, полюсов и
коэффициентов целой части функции передачи.
Представление
передаточной функции фильтра в виде простых дробей может оказаться полезным при
анализе работы фильтров во временной области, например, при анализе переходных
процессов в фильтре.
Выводы
и результаты
1. Стандартная технология
проектирования фильтров использует в качестве основы для проектирования
ФНЧ-прототип - ФНЧ с нормированной по частоте и амплитуде АЧХ. Нормировка по
частоте выполняется относительно частоты среза ФНЧ, по амплитуде - относительно
максимума коэффициента передачи фильтра.
. MatLab (пакет Signal Toolbox) содержит большое
количество функций, позволяющих рассчитывать параметры математических моделей
фильтров и функции преобразования математических моделей из одной формы в
другую, которые могут быть использованы для реализации фильтров.
Список литературы
1. Сергиенко А.Б. Цифровая обработка сигналов: Учебник для вузов.
2-е изд. - СПб.: Питер, 2006. - 751 с.: ил.
. Лэм Г. Аналоговые и цифровые фильтры: расчет и реализация
/ Г. Лэм; пер. с англ. Левина В.Л. [и др.]. - М.: Мир, 1982. - 592 с.: ил.