Синтез фильтров с конечной импульсной характеристикой (КИХ – фильтров)
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Лекция 9
Сигналы и системы
6 – й семестр
2019/20 – й учебный год
доц. Щетинин Ю.И.
Синтез фильтров
с конечной импульсной характеристикой
(КИХ – фильтров)
Новосибирский государственный технический университет
Факультет автоматики и вычислительной техники
Кафедра систем сбора и обработки данных
Общие сведения
КИХ-фильтры или нерекурсивные фильтры – это цифровые фильтры с уравнением вида
M
y[n] b[n] x[n] bk x[n k ] h[0]x[n] h[1]x[n 1] .. h[ M ]x[n M ] ,
(1)
k 0
M - порядок, bk = h[k] - коэффициенты фильтра, N=M+1 – число коэффициентов (длина) фильтра.
Уравнение фильтра (1)– это дискретная свертка. Такие фильтры называют также трансверсальными
(transversal filters) или линиями задержки с отводами (tapped delay line).
Пример структурной схемы фильтра 4-го порядка с 5 коэффициентами
h[0]
z -1
z -1
h[1]
h[2]
z -1
h[3]
z -1
h[4]
y[n]
Для реализации фильтра необходимы элементы (операции) задержки, умножения и сложения.
Применяя Z-преобразование к свертке (1), получим уравнение КИХ - фильтра в Z - плоскости
Y ( z ) b0 X ( z ) b1z 1 X ( z ) ... bM z M X ( z ) .
H z
Передаточная функция такого фильтра
M
Y ( z)
bk z k b0 b1z 1 ... bM z M
X ( z)
k 0
(2)
не имеет полюсов, а имеет только нули. Фильтр всегда устойчив. Из уравнений (1) и (2) очевидно, что
значения импульсной характеристики и коэффициенты передаточной функции фильтра совпадают.
Частотная характеристика КИХ – фильтра H (e j ) H (z)
M
z e j
bk e j k .
k 0
Цель проектирования (расчета) фильтра – получение его коэффициентов ℎ[0], ℎ[1], … , ℎ[𝑀].
Достоинства КИХ – фильтров: всегда устойчивы, достаточно легко получить линейную ФЧХ, также
эти фильтры более устойчивы к погрешностям квантования коэффициентов и к погрешностям округления операций умножения и сложения, чем БИХ - фильтры.
Недостаток: высокий порядок, в 5-10 раз более высокий,
чем для БИХ- фильтров с подобной АЧХ.
1
Этапы проектирования КИХ - фильтров
Параметры спецификации АЧХ ФНЧ:
fp (fpass) – граничная частота полосы пропускания (ПП),
1+δP
fs(fstop) – граничная частота полосы задерживания (ПЗ),
1
δP(дБ) – допустимое отклонение АЧХ от 1 (0 дБ) в ПП,
1-δP
δS(дБ)- минимальное затухание в полосе задерживания,
Затухание (пульсации) в полосе пропускания в дБ определяются
по выражению
Затухание (ослабление) в полосе задерживания в дБ
.
δS
2δ1
Спецификация
ФНЧ
Идеальный
ФНЧ
ПП
ПЗ
ff
Основные этапы разработки КИХ – фильтров и БИХ – фильтров
fP
fS
одинаковые, с небольшими отличиями:
Переходная полоса
1. Выбирается метод синтеза (проектирования) фильтра.
2. Определяется порядок и передаточная функция фильтра.
3. Выбирается структура фильтра, реализующая требуемую передаточную функцию.
4. Анализируется влияние конечной разрядности процессора на характеристики фильтра.
5. Реализация (implementation) фильтра: разрабатывается программный код для цифрового процессора или
аппаратное устройство в виде специальной СБИС.
Для синтеза КИХ – фильтров разработано достаточно много различных методов и программ. Они реализованы, в частности, в соответствующих функциях и процедурах пакетов – расширений Signal Processing
Toolbox (SPT), DSP System Toolbox и Filter Design and Analysis Toolbox (FDA) MATLAB.
Наиболее часто используются следующие методы синтеза:
методы оптимизации, основанные на процедурах минимизации нормы разности между желаемой и аппроксимирующей (реальной) частотными характеристиками фильтра.
оконный метод, основанный на разложении частотной характеристики целевого фильтра в ряд Фурье с
последующим взвешиванием импульсной характеристики фильтра с помощью специальных взвешивающих оконных функций,
метод частотных выборок,
В данном курсе рассматриваются только первый и второй методы синтеза.
Метод частотных выборок опускается из – за отсутствия времени и более редкого его использования.
Типы КИХ – фильтров с линейной фазовой характеристикой
Линейная фазовая характеристика необходима, например, для качественных аудиосистем,
для систем передачи данных, систем обработки изображений, обработки биомедицинских сигналов
и др. задач. Как будет показано ниже, для этого достаточно, чтобы импульсная характеристика
фильтра имела четную или нечетную симметрию. Имеется 4 типа импульсных характеристик КИХ –
фильтров с линейной ФЧХ. Здесь N – длина (число коэффициентов) фильтра.
Тип 2
Тип 1
Тип 3
Тип 4
Таким образом, для фильтров с четной симметрией необходимо: hk = hN-k, k=0,1,…,N
Для фильтров с нечетной симметрией (антисимметрия):
hk = -hN-k, k=0,1,…,N .
2
Докажем, что ЦФ будет иметь линейную фазовую характеристику, если его импульсная характеристика симметрична относительно средней точки, т.е. (см. рис. выше).
Доказательство. Возьмем каузальную импульсную характеристику типа 1 h[n] h[ N n] . Сдвинем h[n] на n1 = N/2 отсчетов влево. Получим симметричную относительно нуля последовательность (характеристику) h1[n]. Найдем ДВПФ h1[n], т.е. её частотную характеристику
H 1 (e j )
j
h1[n]e j n
n
n1
n1
n1
h1[n]e j n
n n1
n1
h1[n][cos( n) j sin ( n)]
n n1
n1
h [n] cos( n)
n n1
1
(3)
n1
h1[n] sin( n) h1[n] cos( n) 2 h1[n] cos( n)
H 1 ( e j )
n n1
n 0
действител ьн. функция
n n1
0
Перейдем теперь от h1[n] к h[n], т.е. сдвинем h1[n] вправо на n1 N / 2 отсчетов.
DTFT
j
j k
j
j
j
N
2
По свойству временного сдвига ДВПФ x[n k ] X (e ) e
, поэтому H (e ) H1 (e ) e
, т.е.
АЧХ при сдвиге не изменяется, линейно изменяется только ФЧХ фильтра.
Из полученного выражения следует, что частотная характеристика при такой импульсной характеристике имеет линейную фазу H (e j ) N .
2
ω
-ωN/2
Производная ФЧХ ∠𝐻(𝑒 𝑗𝜔 ) по частоте ω носит название групповой задержки. Из вышеприведенного выражения следует, что групповая задержка для фильтров с линейной ФЧХ равна константе
N/2.
Фазовые искажения сигнала из-за нелинейности ФЧХ фильтра
Покажем на примере, что линейная ФЧХ не изменяет форму сигнала, а нелинейная – искажает. В лекции № 7 было показано, что выходной сигнал дискретного (цифрового) фильтра при
входном сигнале в виде гармоники с частотой ω0 , начальной фазой θ и амплитудой А имеет вид
y (nT ) A H (e jω0T ) cos(ω0 nT θ φ(ω0 )) .
j T
В этом выражении H (e 0 ) - значение АЧХ на частоте ω0, (0 ) - значение ФЧХ фильтра на
той же частоте, Т – интервал дискретизации (отсчетов) сигналов.
Если ФЧХ фильтра – линейная, т.е. имеет вид () k , то выход фильтра для любой
гармоники
y[n] A H cos((n k )) ,
т.е. все частотные компоненты сигнала с различными частотами ω пройдут на выход с одинаковой задержкой на k отсчетов. При H 1 выходной сигнал по сравнению с входным просто задержится на k отсчетов.
Этот случай иллюстрируется ниже на первом и втором рис. для сигнала из двух гармоник с нормированными цифровыми частотами ω1=0.06π рад и ω2=0.18π рад. Напомним, нормированная
частота – это обычная частота, поделенная на частоту дискретизации.
Входной сигнал: x=cos(0.02*pi*n)-0.5*cos(0.06*pi*n)
Выход при задержке k= 10: y1=cos(0.02*pi*(n-10))-0.5*cos(0.06*pi*(n-10)).
Видно, что в данном случае при линейной ФЧХ выходной сигнал представляет собой просто задержанный на 10 отсчетов входной сигнал.
На третьем рис. показан результат, когда ФЧХ фильтра квадратичная (нелинейная)
𝜑(𝜔) = −𝜔2 и y2=cos(0.02*pi*n-(0.06*pi)2)-0.5*cos(0.06*pi*n-(0.18*pi)2)
В этом случае сдвиг каждой гармоники входа не пропорционален частоте и выходной сигнал не
просто имеет задержку, а претерпевает фазовые искажения (phase distortion), т.е. изменения формы. В высококачественной аудиообработке, в задачах видеообработки сигналов, обработке многих биомедицинских сигналов и в других приложениях фазовые искажения не допустимы. Поэтому должны применяться фильтры с линейной ФЧХ. Как правило, это соответствующие КИХ –
фильтры.
3
Оптимальные чебышевские КИХ – фильтры
Среди методов проектирования КИХ – фильтров имеется класс т.н. оптимальных методов
синтеза. В них минимизируется максимальное отклонение действительной частотной характеристики фильтра H(𝑒 𝑗𝜔 ) от желаемой (desired) АЧХ D(𝑒 𝑗𝜔 ). В качестве меры отклонения действительной АЧХ от желаемой используется т.н. р – норма (мера) ошибки, определяемая выражением
𝑃
𝜔
1/𝑃
𝐿𝑝 = [∫0 𝑑 𝑊(𝑒 𝑗𝜔 )|𝐷 (𝑒 𝑗𝜔 ) − 𝐻(𝑒 𝑗𝜔 )| 𝑑𝜔]
,
(4)
в котором D(𝑒 𝑗𝜔 )– желаемая АЧХ, H(𝑒 𝑗𝜔 )- АЧХ реального фильтра, W(𝑒 𝑗𝜔 ) - неотрицательная
весовая функция частоты, позволяющая нужным образом увеличивать или, наоборот, уменьшать
P
j
j
влияние разностей D (e ) H (e ) на тех или иных частотах (диапазонах) на значение нормы
ошибки Lp. Т.е., весовая функция W(ω) позволяет придавать разную значимость различным участкам разности в зависимости от частоты ω. Чаще всего здесь используются два вида норм: р = 2
(квадратичная норма ошибки) и р = ∞ (максимальное абсолютное значение ошибки).
При р = ∞ ошибка (норма) 𝐿𝑝 представляет собой максимальное абсолютное отклонение
действительной характеристики фильтра от желаемой. Процесс проектирования при применении
такой нормы заключается в минимизации максимального значения ошибки Е(ω)
(5)
E() W ()[D(e j ) H (e j )]
на множестве значений коэффициентов КИХ – фильтра, W(ω) - весовая функция ошибки.
Математически это можно записать в виде
min[max|E(ω)|],
(6)
т.е. отыскивается минимальное значение максимума значения ошибки.
Эта процедура в математике известна как задача чебышевской минимаксной аппроксимации. Получаемые в результате её применения фильтры называют чебышевскими оптимальными фильтрами или минимаксными фильтрами.
Алгоритм её решения применительно к синтезу КИХ – фильтров разработан учеными
Парксом (T.W.Parks) и МакКлеланом (J. H. McClellan) в 70-х годах ХХ века. Этот алгоритм в
свою очередь использует для проектирования фильтра теорию чебышевской аппроксимации и т.н.
обменный алгоритм Ремеза (Remez). В результате спроектированные фильтры имеют равноволновое (equiripple) поведение АЧХ в частотной области и поэтому их называют также равноволновыми фильтрами (equiripple filters). Благодаря алгоритму такие фильтры по сравнению с другими
типами имеют наименьшее максимальное отклонение от АЧХ идеального фильтра.
Полезная статья (сайт): https://www.kit-e.ru/assets/files/pdf/2008_11_146.pdf
4
довольно сложен. Во всяком случае он требует специальной подготовки и достаточного
времени для изложения. В этом курсе он не рассматривается. Он
Сам алгоритм достаточно сложен, требует определенной математической подготовки и
времени. В этом курсе он не рассматривается. Ниже на рис. поясняются особенности характеристик фильтров, получаемых методом Паркса – МакКлелана. На верхнем графике показывается,
что АЧХ такого фильтра имеет равные колебания (пульсации) в полосе пропускания и полосе задерживания. Но амплитуда (уровень) этих пульсаций в ПП (δр) и ПЗ (δs) может быть разной.
1+δP
|H(ejω)|
реальная АЧХ
1
1-δP
|Hd(ejω)|
идеальная АЧХ
δS
ω
На среднем рис. изображены ошибки между идеальной и действительной АЧХ в ПП и ПЗ.
δP
δS
-δP
-δS
Когда ошибки в ПП и ПЗ – разные, как на рис. выше, то сама оптимизационная процедура определения минимакса резко усложняется, поэтому для реализации процедуры необходимо уравнять
(сбалансировать) амплитуды ошибок в ПП и ПЗ. Результат баланса показан на нижнем графике
δp = δs
ω
Балансирование влияния ошибок можно выполнить с помощью соответствующих весовых коэффициентов ошибок в полосе пропускания WP и полосе задерживания WS. Определение значений
WP и WS происходит в самой процедуре проектирования фильтра.
Алгоритм Паркса - МакКлелана проектирования оптимального КИХ – фильтра включает следующие этапы:
1. Задание требований к АЧХ: задаются граничные частоты ПП и ПЗ, допустимый уровень
пульсаций в ПП, ослабление (затухание) в ПЗ, порядок фильтра и частота дискретизации. В
MATLAB граничные угловые частоты нормируются на частоту Найквиста Fs/2.
2. Абсолютные значения отклонений (пульсаций) в ПП δP и затухания (ослабления) в ПЗ δS по
исходным значениям δP и δS, выражаемым в дБ, вычисляются по выражениям:
P 10
3.
P dB
20
1,
S 10
S dB
20
.
Вычисленные значения определяют числитель и знаменатель в следующем выражении
W
P
numerator
S . При этом значения Ws и Wp имеют смысл весовых множителей
S denumerator WP
ошибок для ПЗ и ПП фильтра.
4. Для вычисления коэффициентов фильтра используется специальный алгоритм Ремеза
(Remez algorithm), входящий составной частью в алгоритм Паркса - МакКлелана.
5. Если получившийся фильтр не удовлетворяет спецификации, то порядок фильтра увеличивается, и шаги 1-4 повторяются.
В данном курсе сама процедура алгоритма Паркса - МакКлелана не рассматривается из-за её
громоздкого характера. Она реализована в нескольких функциях MATLAB.
Рассмотрим пример проектирования оптимального ФНЧ со следующей спецификацией:
Порядок фильтра = 50.
Полоса пропускания фильтра (ПП) 0 – 800 Гц.
Полоса задерживания 1000 – 4000 Гц.
Пульсации в ПП должны быть максимум 1дБ. Затухание в ПЗ минимум 40 дБ.
Частота отсчетов 8000 Гц.
5
Решение. Выполним нормализацию частот на частоту Найквиста 4000 Гц.
Нормализованная граничная частота ПП: 800/4000=0,2. Желаемая АЧХ в ПП должна быть равна 1.
Граничные нормированные частоты ПЗ: 1000/4000=0,25 4000/4000 =1. Желаемая АЧХ в ПЗ =0.
Определяем по п.2 алгоритма абсолютные значения отклонений в ПП и затухания в ПЗ:
.
Определяем веса в ПП и ПЗ (п.3)
. Получаем Ws = 12 и Wp = 1.
Для вычисления коэффициентов фильтра h[k] применяем функцию remez() пакета MATLAB.
Соответствующая программа MATLAB и её результаты приведены ниже
Fs=8000; % частота отсчетов
f=[0 0.2 0.25 1]; % нормированные частоты
m=[1 1 0 0]; % Значения идеальной (желаемой) АЧХ на частотах f
w=[1 12]; % Весовые коэффициенты ошибок
h=remez(50,f,m,w); % Вычисление коэффициентов фильтра
freqz(h,1,256,Fs); % построение АЧХ
figure, impz(h,1)% построение ИХ фильтра
Примечание. Функция remez в настоящее время считается устаревшей, хотя и сохранена пока в MATLAB.
Вместо remez сейчас применяется функция firpm.
Фильтр удовлетворяет спецификации.
Синтез оптимальных чебышевских фильтров в среде MATLAB
В последних версиях MATLAB имеются 3 функции для синтеза КИХ – фильтров на основе
алгоритма Паркса – МакКлелана: firpm, cfirpm и firgr. Ниже рассмотрена наиболее простая и популярная из них, функция b = firpm(n, fn, a0, w).Эта функция в современных версиях
MATLAB заменила функцию remez, которая пока сохранена, но считается устаревшей.
Оценка порядка фильтра n и остальных входных параметров для функции firpm может
быть выполнена с помощью специальной функции [n, fn, a0, w] = firpmord(f,a,dev,Ft). Эта функция определяет порядок фильтра приближенно, с точностью до 2-3 единиц. Поэтому после проектирования фильтра необходимо проверять соответствие АЧХ спроектированного фильтра исходной
спецификации и при необходимости уточнить порядок и перепроектировать фильтр. Функция
firpmord предназначена для определения порядка многополосного нерекурсивного фильтра, т.е.
фильтра, у которого может быть (но необязательно) несколько полос пропускания и полос задерживания. При этом параметры f и a задают кусочно – постоянную АЧХ идеального (желаемого)
фильтра. Вектор частот f должен содержать возрастающую последовательность значений нормированных частот от 0 до1, определяющих границы полос фильтра. Вектор а определяет постоянные желаемые значения АЧХ в соответствующих полосах частот. Первая полоса начинается с нулевой частоты, последняя частота из вектора f равна частоте Найквиста. Длина вектора f равна
length(f)=2*length(a) - 2. Пример соответствия между векторами f и a показан ниже на рис.
a
f = [0 .3 .4 .6 .7 .1]
1.0
a = [0 1 0 0 0.5 0.5]
0.5
Нормализованная частота f
0.0
0.1 0.2 0.3 0.4 0.5 0.6
6 0.7 0.8 0.9 1.0
Параметр dev в функции – это вектор максимально допустимых отклонений АЧХ фильтра
от желаемой АЧХ на частотах, специфицированных в векторе f. Они связаны с соответствующими
Rp
20
S 10
Rs
20
значениями Rp и Rs в децибелах выражениями: P 10 1 и
. Параметр (вектор) dev должен иметь такую же длину, что и параметр а. Параметр Ft в функции - частота дискретизации (отсчетов) в Гц не является обязательным. Выходные параметры firpmord передаются
в основную функцию синтеза фильтра firpm() при её вызове.
Функция синтеза фильтра firpm() имеет 9 вариантов синтаксиса (см. help). В одном из наиболее популярных вариантов b = firpm(n,f,a)функция принимает основные выходные параметры функции порядка firpmord и возвращает вектор – строку b, содержащую (n+1) коэффициентов КИХ – фильтра порядка n , АЧХ которого соответствует значениям векторов f, a, dev.
В функции синтеза фильтра [b, err, opt] = firpm(n, fn, a0, w) выходные параметры функции синтеза фильтра: b – вектор коэффициентов передаточной функции, он же является вектором
значений импульсной характеристики, err - максимальное отклонение АЧХ от идеальной частотной характеристики на рассматриваемом интервале частот. Параметр opt - это массив дополнительных записей с 9 полями, содержащими дополнительные значения, полезные в уточненных
процедурах синтеза фильтров. Выходные параметры err и opt - не обязательные, их можно опускать, т.е. использовать функцию в виде b = firpm(n, fn, a0, w) . Но для уточненных процедур синтеза, более точных, они нужны.
Аналогичное назначение имеет группа функций B = cfirpm(N,F,A,W). В отличие от
функции b = firpm(n, fn, a0, w) эта функция предназначена для синтеза не только действительных,
но и комплексных фильтров, т.е. фильтров с комплексными коэффициентами.
Пример. С помощью функции firpm рассчитаем оптимальный чебышевский полосовой фильтр с
граничными частотами полосы пропускания 2400 и 3200 Гц, полосы задерживания 2000 и 3600 Гц,
допустимыми пульсациями (отклонениями) в полосе пропускания 1 дБ и минимальным затуханием
в полосе задерживания 50 дБ.
% Процедура проектирования
% фильтра с помощью firpm
Ft=10000; % частота отсчетов
Ap=1;% Отклонение в ПП в дБ
As=50;% Затухание в ПЗ в дБ
a=[0 1 0]; % вектор значений желаемой АЧХ
% вектор граничных значений частот ПП и ПЗ
f=[2000, 2400, 3200, 3600];
% Абсолютные отклонения в ПП и ПЗ
Dp=10^(Ap/20)-1;
Ds=10^(-As/20);
dev=[Ds, Dp, Ds]; % вектор допустимых ошибок АЧХ
% Определение порядка фильтра
[n, f0, a0, w]=firpmord(f, a ,dev, Ft);
% Вычисление коэффициентов фильтра
b=firpm(n+4, f0, a0, w);
fvtool(b,1) % загрузка фильтра в среду fvtool
АЧХ фильтра
7
Импульсная характеристика фильтра
Результаты проектирования с помощью процедуры визуализации фильтров fvtoool выведены в
виде набора графиков АЧХ и значений импульсной характеристики (коэффициентов фильтра).
Синтез фильтра имеет итерационный характер. Вначале рассчитана передаточная функция при
порядке фильтра 36, найденном по функции оценки порядка firpmord (). После построения АЧХ
спроектированного фильтра видим, что АЧХ не удовлетворяет исходным требованиям по необходимому ослаблению в ПЗ. Поэтому в этом примере дважды порядок увеличивается на 2. При
n =40 фильтр удовлетворяет спецификации, и это значение является окончательным порядком.
Коэффициенты фильтра (в формате вывода short):
b=
Columns 1 through 7
0.0035 0.0029 -0.0124 0.0004 0.0230 -0.0105 -0.0270
Columns 8 through 14
0.0223 0.0172 -0.0198 -0.0008 -0.0101 0.0008 0.0604
Columns 15 through 21
-0.0387 -0.1006 0.1118 0.0966 -0.1860 -0.0400 0.2175
Columns 22 through 28
-0.0400 -0.1860 0.0966 0.1118 -0.1006 -0.0387 0.0604
Columns 29 through 35
0.0008 -0.0101 -0.0008 -0.0198 0.0172 0.0223 -0.0270
Columns 36 through 41
-0.0105 0.0230 0.0004 -0.0124 0.0029 0.0035
Главным преимуществом чебышевских фильтров по сравнению с оконными фильтрами
является существенно более низкий порядок фильтра при сопоставимой АЧХ. Порядок такого
фильтра обычно ниже в полтора - два раза.
Полезная работа: https://www.kit-e.ru/assets/files/pdf/2009_05_127.pdf
Проектирование КИХ – фильтров методом разложения желаемой частотной
характеристики в ряд Фурье (метод оконного взвешивания)
Это второй популярный метод проектирования КИХ – фильтров. Другое название – оконный
метод или метод оконного взвешивания. Рассмотрим основы метода.
j
Пусть H d (e ) - желаемая (идеальная) частотная характеристика КИХ–фильтра с норма-
лизованной частотой среза ωС
H d (e
j
1, 0 C
)
,
0,
C
Она имеет значение 1 в ПП, и 0 в ПЗ, что естественно.
1
(7)
-π
-ωС
0ωС
π
ω
Напомним, что нормализованная или нормированная частота – это обычная угловая частота
Ω =2πF в рад/с, деленная на частоту отсчетов FT в Гц, т.е. / FT 2 F / FT рад.
Hd(ejω)
. . .
. . .
ω
-2π
-ωС
ωС
2π
Нормированная частота
Для ЦФ такая частотная характеристика – периодическая функция ω с периодом 2π для
Т = 1 (см. лекцию № 6, для Т ≠ 1 период равен 2π/T). Поэтому она может быть разложена по
H d (e j ) h[n]e j n (8)
переменной ω в дискретный ряд Фурье вида
n
1
j j n
с коэффициентами hd [n]
(9)
H d e e d , n .
2
Обратное ДВПФ (ОДВПФ) от частотной характеристики – это импульсная характеристика фильтра h[n] (см. лекцию 7).Таким образом, коэффициенты ряда Фурье желаемой частотной характеристики дают желаемую импульсную характеристику hd[n] дискретного фильтра.
8
Подставим (7) в (9), получим импульсную характеристику идеального ФНЧ:
(10)
Вид характеристики для
M
-M
Импульсная характеристика симметрична относительно n=0, поэтому фильтр имеет нулевую фазу
(нулевую ФЧХ). Но такой фильтр не является КИХ - фильтром, так как его ИХ длится от n=
до n =
, это БИХ – фильтр. Для получения КИХ - фильтра ограничим импульсную характеристику значениями
, т.е. просто усечем её M отсчетами, как показано выше.
.
В примере на рис. M = 20. Усеченная ИХ - некаузальная, т.к. не равна нулю при n< 0.
Такая характеристика не может быть физически реализована.
Поэтому сдвинем импульсную характеристику вправо на
отсчетов (точек), чтобы
она стала каузальной (физически осуществимой), т.е. начиналась с n = 0. Выражение усеченной и
задержанной импульсной характеристики.
В результате сдвига импульсной характеристики АЧХ фильтра не изменяется, а фазовая характеристика становится равной
. Усечение импульсной характеристики можно рассматривать как умножение желаемой характеристики hd[n] на прямоугольное окно
wR
, где
В частотной области произведению
соответствует свертка
Явление Гиббса
Свертка
ω
ω
𝑗𝜔
В результате свертки идеальной частотной характеристики 𝐻𝑑 (𝑒 ) и частотной характеристики прямоугольного окна W(ejω) (вспомните геометрический смысл свертки!) получается реальная частотная характеристика H(ejω).У неё появились нежелательные колебания в ПП и ПЗ. Они
9
объясняются явлением Гиббса. Вид АЧХ - справа.
Фильтр уже не является идеальным.
Вид реальной частотной характеристики фильтра с прямоугольным окном для нормированной частоты среза ωС=2 при длинах окна N = 8 и N=32.
Переходная полоса N=32
Явление Гиббса
N=32
N=8
У реальной АЧХ фильтра появляется переходная полоса и пульсации в ПП и ПЗ. Они возникают
из-за явления Гиббса и нежелательны, т.к. ухудшают («портят») фильтр. С увеличением размера
окна N частотная характеристика фильтра становится все более близкой к идеальной прямоугольной. Но… в связи с особенностями явления Гиббса пульсации (резкие выбросы) порядка 9% вблизи переходов от полосы пропускания к полосе задерживания будут сохраняться при любом N. Т.е.
увеличение порядка фильтр, хотя и улучшает фильтр, но полностью проблему не решает. Для
уменьшения величины этих пульсаций на практике вместо прямоугольного окна при усечении
импульсной характеристики фильтра используют другие более гладкие функции окон, стремящиеся к нулю более плавно, чем прямоугольное окно. Использование таких окон является главным
для разработки подобных фильтров и будет рассмотрено позже.
Таблица идеальных импульсных характеристик для стандартных КИХ - фильтров
Выше рассматривался дискретный КИХ – фильтр нижних частот (ФНЧ). Как известно, кроме
ФНЧ на практике широко применяют и другие фильтры: ФВЧ, ПФ и режекторные (РФ).
Ниже в табл. приведены выражения для идеальных импульсных характеристик цифровых
КИХ – фильтров: ФНЧ, ФВЧ, ПФ и РФ. Эти выражения используются при проектировании соответствующих фильтров. Получение (вывод) этих выражений здесь опущено. Нет времени.
Тип фильтра
ФНЧ
ФВЧ
ПФ
РФ
Идеальная импульсная характеристика фильтра h[n]
(некаузальная ИХ)
C , n 0
h[n]
sin(C n) , M n M , n 0
n
C , n 0
h[n]
sin(C n) , M n M , n 0
n
H L , n 0
h[n]
sin(H n) sin(L n) , M n M , n 0
n
n
H L , n 0
h[n]
sin(H n) sin(L n)
, M n M, n 0
n
n
Каузальная импульсная характеристика получается сдвигом любой из этих идеальных характеристик h[n] вправо на М отсчетов.
10
Оконные функции
При проектировании КИХ – фильтров методом оконного взвешивания для снижения влияния эффекта Гиббса идеальная (желаемая) импульсная характеристика фильтра hd[n] умножается
на специальную оконную функцию w[n]: h [n] hd [n] w[n] . Название функции w[n] происходит от английского слова window - окно. Желательны окна с возможно более узким главным лепестком частотного спектра функции окна и как можно более низкими боковыми лепестками спектра.
Предложено и известно несколько десятков подобных окон. Примеры наиболее распространенных окон
1. Прямоугольное окно – это исходное простейшее окно, оно использовалось выше
wR [n] 1, 0 n M
2.
Окно Бартлетта (треугольное)
(11)
wBart [n] 1 n / M, M n M
3. Окно Хэмминга – самое популярное
n
wham [n] 0,54 0, 46 cos
, 0 n M.
M
4.
(13)
Окно Хэннинга
n
whan [n] 0,5 0,5cos
M
5.
(12)
, 0 n M.
(14)
Окно Блэкмана
2n
4n
wB {n] 0, 42 0,5cos
0, 08cos
, 0 n M.
M
M
(15)
В этих формулах М – порядок фильтра.
При проектировании КИХ – фильтров часто используется специальное окно Кайзера из-за его дополнительных полезных свойств. Функция окна Кайзера, здесь I 0 () - функция Бесселя первого рода нулевого порядка 𝑤𝐾 [𝑛] =
𝐼0 {𝛽√1−(
𝑛
)}
𝑀)2
𝐼0 (𝛽)
.
Она будет подробнее рассмотрена позже.
Для формирования оконных функций в MATLAB имеются специальные функции: BARTLETT, BARTHANNWIN, BLACKMAN, BLACKMANHARRIS, BOHMANWIN, CHEBWIN, GAUSSWIN, HAMMING, HANN,
KAISER, NUTTALLWIN, RECTWIN, TRIANG, TUKEYWIN и др.
Сведения о них можно получить в разделах window и fvtool HELP MATLAB.
Графики четырех временных окон и их спектров в последовательности:
1. прямоугольное окно,
2. окно Бартлетта (треугольное),
3. окно Хэмминга,
4. окно Блэкмана.
Графики получены для длины окна N = 2М+1= 31 командой
wvtool(rectwin(31), bartlett(31), hamming(31), blackman(31)).
Главный
лепесток
Боковые
лепестки
Основными спектральными (частотными) характеристиками окон являются ширина главного лепестка, уровень боковых лепестков и их относительный уровень относительно главного лепестка. Эти соответствия видны на рис.
Чем шире главный лепесток окна, тем шире переходная полоса фильтра. При увеличении длины окна (порядка
11 но это не влияет на уровни боковых лепестков.
фильтра) ширина главного лепестка окна уменьшается,
Параметры основных окон, используемые при проектировании фильтров, приведены в таблице 2,
при этом порядок фильтра M = N-1, N - длина фильтра.
Таблица 2.
Тип окна
Ширина
главного
лепестка
∆𝜔𝑚
Прямоугольное
Бартлетта
Хэннинга
Хэмминга
Блэкмана
4π / M
8π / M
8π / M
8π / M
12π / M
Относительный
уровень боковых лепестков
относительно
главного лепестка в дБ
-13
-25
-31
-41
-57
Ослабление
(пульсации) в
полосе задерживания
-20lg δS, дБ
21
25
44
53
74
Пульсации
в полосе
пропускания
δP, дБ
0,7416
0,0546
0,0194
0,0017
Эквивалентное
окно
Кайзера,
значение β
1,33
3,86
4,86
7,04
Окно Блэкмана обеспечивает самый низкий уровень боковых лепестков по сравнению с другими, приведенными в табл.2, но и самый широкий главный лепесток спектра. Это означает, что
фильтр с данным окном будет иметь при одинаковом порядке самую широкую переходную полосу,
но наибольшее затухание в полосе задерживания. Окна Хэмминга и Хэннинга (другое название –
окно Ханна) имеют примерно одинаковую ширину главного лепестка, но окно Хэмминга обеспечивает большее затухание в полосе задерживания, чем окно Хэннинга.
Применение окон позволяет уменьшить влияние эффекта Гиббса, заключающегося в появлении нежелательных пульсаций АЧХ фильтра в полосах пропускания и задерживания фильтра изза конечной длины фильтра. За счет оконного взвешивания достигается снижение пульсаций (колебаний) в полосах пропускания и задерживания. Но … это влечет за собой нежелательные последствия, приводящие к расширению переходной полосы фильтра.
Алгоритм проектирования (синтеза) КИХ – фильтра методом взвешивающих окон
Некоторые пояснения к алгоритму проектирования оконных фильтров:
Проектирование (расчет) такого фильтра заключается в выборе типа окна, определении порядка фильтра, и вычислении его коэффициентов (импульсной характеристики).
В оконных КИХ – фильтрах частота среза fc определяется как среднее арифметическое fpass и fstop:
т.е. fc = (fpass + fstop)/2, fpass – граничная частота ПП, fstop - граничная частота ПЗ.
Минимальный порядок фильтра М определяется из выражения связи ширины главного лепестка
Δωm соответствующего окна с длиной (размером) окна. Например, для прямоугольного окна
M 4 / m . Формула для порядка окон Хемминга и Ханна M 8 / m , для окна Блэкмана M 12 / m , здесь Δωm - ширина главного лепестка окна (переходной полосы фильтра).
Значение Δωm - нормированная на частоту дискретизации FT частота.
Пульсации в полосе пропускания в дБ определяются по выражению
P dB 20 lg(1 p ) (см. раздел лекции, относящийся к спецификации фильтра).
Ослабление (затухание) в полосе задерживания в дБ S dB 20 lg( S ) .
Алгоритм проектирования КИХ – фильтра с использованием оконного взвешивания:
1. Определить «идеальную» или желаемую частотную характеристику фильтра H D ( ) .
2. С помощью обратного ДВПФ от H D ( ) найти импульсную характеристику hD [n] желаемого фильтра для целевого фильтра.
3. Выбрать тип оконной функции, которая удовлетворяет требованиям к поведению фильтра в
полосе пропускания и/ или задерживания.
4. Найти значения коэффициентов h[n] реального оконного фильтра
h[n] hD [n] w[n] , где w[n] - значения весовых коэффициентов выбранного окна.
12
Пример расчета простого оконного фильтра
Рассмотрим простейший КИХ-фильтр нижних частот всего с тремя коэффициентами (N=3) с
окном Хэмминга. Этот пример в простой форме демонстрирует синтез оконных фильтров.
Пусть этот фильтр имеет частоту среза 500Гц и частоту дискретизации 5000 Гц.
1. Вычислим нормированную частоту среза фильтра
рад.
В этом примере N=2M+1=3, М=1. Определим коэффициенты идеального ФНЧ по выражению
Отсюда коэффициенты фильтра
.
Исходя из симметрии импульсной характеристики
h[-1]=h[1]=0,1871.
Найдем значения отсчетов окна Хэмминга по выражению
, М =1:
.
Умножая значения импульсной характеристики h[n] на соответствующие значения окна, получим
Таким образом, передаточная функция оконного фильтра
Следовательно, уравнение фильтра
.
.
Графики АЧХ и ФЧХ фильтра выводятся с помощью функции freqz(). Обратите внимание: фазовая
характеристика – линейная.
Импульсные характеристики
Проектирование КИХ – фильтров
методом взвешивающих окон в Signal Processing Toolbox MATLAB
Для проектирования КИХ – фильтров с линейной фазой методом оконного взвешивания в
Signals Processing Toolbox MATLAB предназначена группа функций fir1() с несколькими вариантами синтаксиса. Синтаксис уточняется по справочной системе.
Здесь используется синтаксис b=fir1(n, Wn, ‘ftype’, window).
Функция возвращает вектор b, содержащий (n+1) коэффициентов фильтра с линейной фазой. Параметр n – порядок фильтра. Нормированная на частоту Найквиста частота среза Wn
задается числом (для ФНЧ и ФВЧ) или вектором (для ПФ и РФ) с элементами от 0 до 1, где 1 соответствует частоте Найквиста. Для полосового фильтра нормированная частота среза Wn задается в
виде вектора с двумя элементами Wn=[w1, w2], где w1, w2 - нормированные граничные частоты
полосы пропускания. Для режекторного фильтра w1 и w2 – это нормированные граничные частоты
полосы задерживания.
Для ФВЧ символьный параметр ftype=’high’, для РФ этот параметр ftype=’stop’.
Для ФНЧ и ПФ параметр ftype по умолчанию опускается, но может и вводиться.
Параметр window определяет тип окна длиной (n+1) отсчетов. Если он не задан, то fir1
умолчанию использует окно Хэмминга. Тип окна выбирается по минимальному значению допустимых пульсаций АЧХ в полосе пропускания δP и задерживания δS, т.е. исходя из значения
min( P , S ) .
Функций для определения необходимого порядка оконных фильтров, кроме фильтров с окнами Кайзера и Чебышева, в MATLAB нет. Поэтому необходимый порядок оконных фильтров
определяется «вручную» по вышеприведенным в таблице 2 выражениям связи порядка и ширины
главного лепестка спектра функции окна.
13
Пример.
Рассчитаем КИХ – фильтр нижних частот с граничной частотой полосы пропускания
fP =2000 Гц, граничной частотой полосы задерживания fS = 2400 Гц, максимальным ослаблением в
полосе пропускания AP = 1 дБ, минимальным затуханием в полосе задерживания AS = 70 дБ и частотой дискретизации FT = 10 кГц, следовательно, частота Найквиста 5 кГц.
Определим необходимые параметры для функции fir1(). Для обеспечения необходимого
ослабления в полосе задерживания, не меньшего 70 дБ, выбираем окно Блэкмана, поскольку для
этого типа окна пульсации в ПЗ составляют 74 дБ. Это следует из вышеприведенной таблицы параметров оконных функций. Частота среза оконного фильтра – это полусумма ( f P f S ) / 2 2200 .
Нормированная на частоту Найквиста она равна ( f P f S ) / 2 / 5000 0,44 . Нормированная на частоту дискретизации ширина переходной полосы 2 ( f S f P ) / FT 0,08 рад.
Порядок фильтра с окном Блэкмана определяем по формуле K 12 / 150 из таблицы 2. Получаем K=150, соответственно число коэффициентов фильтра N=K+1=151.
Скрипт – файл MATLAB для расчета фильтра:
b=fir1(150, 0.44, blackman(151)); % Коэффициенты фильтра
[h,f]=freqz(b,1,256,10000); % расчет частотной характеристики
plot(f, 20*log10(abs(h))), grid % графикАЧХ
title('ФНЧ КИХ - фильтр с окном Блэкмана')
xlabel('Частота, Гц')
figure(2), impz(b,1) % график импульсной характеристики
АЧХ спроектированного фильтра.
Импульсная характеристика
Impulse Response
ФНЧ КИХ - фильтр с окном Блэкмана
20
0.6
X: 2148
Y: -1.995
-20
0.4
Amplitude
-40
-60
-80
-100
0.2
-120
-140
-160
-180
-0.2
500
1000
1500
2000 2500 3000
Частота, Гц
3500
4000
4500
5000
50
100
150
n (samples)
Резюме.
Фильтр удовлетворяет исходным требованиям по поведению в полосе пропускания и в полосе задерживания.
Достоинства оконного метода: простота и наглядность. Недостатки: невозможно точно
задать граничные частоты полосы пропускания и полосы задерживания. Они могут несколько отличаться от заданных.
Следует понимать, что для большинства применяемых оконных функций максимальная
амплитуда пульсаций АЧХ фильтра не зависит от длины (порядка) фильтра. Пульсации АЧХ зависят от выбора типа окна.
Для окна Кайзера можно получить наименьший порядок фильтра.
14
Проектирование фильтра с окном Кайзера
При проектировании КИХ – фильтров оконным методом желаемая (идеальная) импульсная
характеристика фильтра hd[n] умножается на выбранную функцию окна
.
У большинства окон единственным параметром является размер (длина) окна N. В этом отношении
одним из наилучших считается окно Кайзера (Kaizer window). Оно имеет специальный параметр β
для выбора соотношения между шириной главного лепестка и площадью (уровнем) боковых лепестков окна. Функция окна Кайзера
Вид окна для М= 37
(17)
где
- функция Бесселя первого рода нулевого порядка.
У окна Кайзера имеется два управляемых параметра:
длина окна n и параметр формы β. Параметр формы β
управляет минимальным ослаблением (затуханием)
в полосе задерживания фильтра δS. Этот параметр обычно,
но не всегда, выбирается в диапазоне
. Увеличение β
приводит к увеличению затухания в полосе задерживания,
но расширяет переходную полосу. Приближенная формула
для расчета порядка фильтра с окном Кайзера
β = 0 - прямоугольное окно,
(𝐴𝑠 −8)
𝑁 = 2,285Δ𝜔
+ 1,
𝐴𝑆 = −20 lg(𝛿𝑆 ) , 𝛥𝜔 = 𝜔𝑆 − 𝜔𝑃
(18) β = 10 - гауссово окно
В MATLAB базовой процедурой для проектирования КИХ – фильтров является рассмотренная
выше fir1(). При использовании окна Кайзера для вычисления порядка фильтра в SPT MATLAB
имеется группа функций kaiserord(). Основной синтаксис функции [n, Wn, beta, ftype] =kaiserord(f,
a, dev, Ft). Эта функция вычисляет ориентировочный порядок n фильтра, частоту среза Wn и значение коэффициента затухания beta. Параметр ftype – тип фильтра. Параметр Ft – это частота
отсчетов. Вектор f при этом содержит граничные частоты полос фильтра, вектор a – желаемые
значения АЧХ для полос, вектор dev определяет максимально допустимые отклонения АЧХ синтезированного фильтра от желаемой АЧХ. Размер вектора dev совпадает с размером вектора a.
После расчета порядка фильтра используется функция fir1() с полученными в kaiserord()
параметрами. В результате определяются коэффициенты фильтра h, удовлетворяющие условиям,
заданным для функции kaiserord(). При необходимости порядок фильтра уточняется. Следует отметить, что порядок фильтра с окном Кайзера меньше, чем при использовании других окон.
Код MATLAB для проектирования фильтра:
Fs=10000; % частота дискретизации
fcuts=[700 1000 2000 2300]; % граничные частоты
mags=[0 1 0]; % желаемые значения АЧХ
devs=[0.01 0.05 0.01]; % допустимые отклонения в ПЗ и ПП
% проектирование фильтра
[n,Wn,beta,ftype]=kaiserord(fcuts,mags,devs,Fs);
h=fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');
% Вывод АЧХ и ИХ
[H,f]=freqz(h,1,1024,Fs);
subplot(1,2,1), plot(f,abs(H)), grid
title('АЧХ фильтра')
xlabel('Частота, Гц')
subplot(1,2,2), impz(h), grid
title('Импульсная характеристика')
xlabel('Номер отсчета')
ylabel('Амплитуда')
15
В качестве примера рассчитаем полосовой КИХ – фильтр с
граничными частотами ПП
1000 и 2000 Гц и граничными
частотами ПЗ 700 и 2300 Гц,
частотой отсчетов 10000 Гц.
Допустимое отклонение АЧХ в
ПП 0,05 (20*lg(1.05) = 0.4238
дБ ≈ 0,4 дБ), затухание в ПЗ
0,01 (40 дБ). Порядок спроектированного фильтра n = 75.
Пример проектирования КИХ – фильтров с использованием функции designfilt()
В последних версиях пакета Signal Processing Toolbox MATLAB (R 2014 и выше) появилась
новая функция designfilt(), упростившая проектирование КИХ - и БИХ – фильтров. Эта функция – с
очень широким диапазоном возможностей. Справочные сведения можно получить с помощью help
designfilt, doc designfilt или в HELP MATLAB. Ниже приведен пример проектирования оптимального чебышевского КИХ – фильтра нижних частот и фильтра с окном Кайзера с помощью функции designfilt().
% Спецификация проектируемого ФНЧ
Fpass = 370;
Fstop = 430;
Ap = 1;
Ast = 30;
Fs = 2000;
% проектирование чебышевского фильтра
f1 = designfilt('lowpassfir','PassbandFrequency',Fpass,...
'StopbandFrequency',Fstop,'PassbandRipple',Ap,...
'StopbandAttenuation',Ast,'SampleRate',Fs);
% проектирование фильтра с окном Кайзера
f2 = designfilt('lowpassfir','PassbandFrequency',Fpass,...
'StopbandFrequency',Fstop,'PassbandRipple',Ap,...
'StopbandAttenuation',Ast, 'DesignMethod', 'kaiserwin','SampleRate',Fs);
% вывод АЧХ фильтров
hfvt = fvtool(f1,f2);
legend(hfvt,'Фильтр Чебышева', 'Фильтр с окном Кайзера')
% вывод порядков фильтров
N1 = filtord(f1)% вывод порядка фильтра Чебышева
N2 = filtord(f2)% вывод порядка фильтра с окном Кайзера
N1 =39,
N2 =52 Порядок фильтра Чебышева существенно ниже.
Оба фильтра удовлетворяют исходным требованиям. Но у них разные порядки. Порядок оконного фильтра равен 52, а чебышевского фильтра 39, т.е. на четверть меньше. А это важно как для самого фильтра, так и при использовании фильтра, особенно при высоких порядках и высоких частотах дискретизации. У оконного фильтра пульсации в полосе задерживания – разноволновые.
16
Структуры реализации КИХ – фильтров
После проектирования (синтеза) фильтра необходимо выбрать структуру его реализации.
1. Основной структурой является прямая форма реализации КИХ – фильтра. Она реализуется по основному уравнению КИХ – фильтра, т.е. уравнению дискретной свертки
.
Полезный материал: https://www.kit-e.ru/articles/cad/2009_1_108.php
Здесь M– порядок фильтра. Пример структуры для M = 4
x[n]
h[0]
Прямую форму называют также трансверсальным фильтром (transversal filter) и линией задержки с отводами (tapped delay line). КИХ – фильтр порядка N при прямой реализации имеет N+1
коэффициентов и N+1 умножителей. Эти фильтры более устойчивы к ошибкам квантования и
округления, чем БИХ - фильтры. Поэтому прямая форма в большинстве случаев достаточна для
практических целей.
2. Второй формой структуры КИХ – фильтра порядка N является каскадная, состоящая из каскада
звеньев второго порядка и, возможно, дополнительного звена первого порядка
Для разложения H(z) на квадратичные звенья (секции) можно применить функцию tf2sos ()
MATLAB.
Структура отдельного квадратичного (биквадратного) звена каскадной схемы.
Пример. >>b=fir1(7,0.35)
% Расчет фильтра 7 – го порядка
b = -0.0051 0.0134 0.1474 0.3444 0.3444 0.1474 0.0134 0.0051
Преобразование в каскадную структуру
>>sos=tf2sos(b,1)
sos =
-0.0051 0.0393
1.0000 0
1-й каскад
1.0000 0.8695 -0.1305 1.0000 0
2-й каскад
1.0000 2.9794 2.4732 1.0000 0
3-й каскад
1.0000 1.2047 0.4043 1.0000 0
4-й каскад
Каскадная форма реализации КИХ – фильтров также часто используется на практике.
3. Третьей формой является структура для фильтров с линейной фазой, учитывающая симметрию импульсной характеристики КИХ - фильтра с линейной ФЧХ. Пример такого фильтра 6 – го порядка
Эта структура требует 4-х умножений вместо 6. Для больших N возможна экономия почти в 2 раза.
4. Наконец, для ускорения вычислений при больших N может использоваться быстрая свертка
или свертка в частотной области (4-я форма), основанная на применении БПФ. Схема
БПФ вычисление свертки в частотной области требует
операций умножений, при этом L = 2 m≥ M+N -1 ,
где M,N – размеры векторов x[n],
h[n].
h[n]
]]
На практике это очень широко используется.
17
(см. лабораторную работу № 2).
Заключение
1.
КИХ-фильтры или нерекурсивные фильтры – это цифровые фильтры с уравнением вида
M
y[n] b[n] x[n] bk x[n k ] h[0]x[n] h[1]x[n 1] .. h[ M ]x[n M ]
k 0
Такие фильтры всегда устойчивые и могут иметь линейную ФЧХ, что очень важно для многих
приложений. Но порядок таких фильтров по сравнению с БИХ – фильтрами – более высокий.
2. Для обеспечения линейной фазочастотной характеристики достаточно, чтобы импульсная
характеристика КИХ - фильтра имела четную или нечетную симметрию.
3. Для проектирования КИХ – фильтров наиболее часто используются следующие методы синтеза:
методы оптимизации, основанные на процедурах чебышевской минимизации нормы разности между желаемой и аппроксимирующей (реальной) частотными характеристиками фильтра
и специального алгоритма Паркса – МакКлелана для расчета значений коэффициентов фильтра.
оконный метод, основанный на разложении частотной характеристики целевого фильтра в
ряд Фурье с последующим взвешиванием импульсной характеристики фильтра с помощью специальных взвешивающих оконных функций,
4. Проектирование (расчет) оконных фильтров заключается в выборе типа окна, определении
порядка фильтра, и вычислении его коэффициентов (импульсной характеристики).
5. После синтеза КИХ - фильтра производится его реализация. Основной структурой является
прямая форма реализации КИХ – фильтра. Она реализуется в соответствии с уравнением дискретной свертки. Кроме неё часто используется каскадная форма и реализация в частотной области, основанная на выполнении свертки с помощью быстрого преобразования Фурье (БПФ).
6. При разработке фильтров по их спецификациям вначале необходимо делать выбор между
БИХ – фильтрами и КИХ – фильтрами. КИХ – фильтры используются в тех случаях, где необходима линейная ФЧХ. Они предпочтительны также в высокоскоростных приложениях с аппаратной реализацией. БИХ – фильтры более эффективны там, где требуется значительно более низкое
число коэффициентов (порядок фильтра) и меньшее запаздывание.
В приложении 9.1 приведен пример проектирования КИХ – и БИХ-фильтров нижних частот
с использованием функции dsp.LowpassFilter дополнительного пакета dsp MATLAB.
Можно видеть, что порядок БИХ-фильтра более чем в 8 раз ниже, а КИХ – фильтр имеет линейную ФЧХ.
18
Приложение 9.1. Пример синтеза КИХ- и БИХ – фильтров нижних частот с помощью
функции dsp.LowpassFilter дополнительного пакета dsp MATLAB
% Скрипт проектирования КИХ- и БИХ- фильтров
% с помощью функции dsp.LowpassFilter
Fp=2000; % граничная частота ПП
Fst=2300; % граничная частота ПЗ
Ap=0.1; % пульсации в ПП
Ast=70; % ослабление в ПЗ
Fs=20000; % частота дискретизации
LP_FIR_FLT=dsp.LowpassFilter('SampleRate',Fs,'FilterType','FIR',...
'DesignForMinimumOrder', true, 'PassbandFrequency', Fp,...
'StopbandFrequency', Fst,'PassbandRipple', Ap,...
'StopbandAttenuation',Ast);
measure(LP_FIR_FLT)
N1=order(LP_FIR_FLT)
cost_FIR=cost(LP_FIR_FLT)
LP_IIR_FLT=dsp.LowpassFilter('SampleRate',Fs,'FilterType','IIR',...
'DesignForMinimumOrder', true, 'PassbandFrequency', Fp,...
'StopbandFrequency', Fst,'PassbandRipple', Ap,...
'StopbandAttenuation',Ast);
measure(LP_IIR_FLT)
N2=order(LP_IIR_FLT)
h=fvtool(LP_FIR_FLT,LP_IIR_FLT,'Fs',Fs);
legend('КИХ -фильтр','БИХ -фильтр' )
cost_IIR=cost(LP_IIR_FLT)
АЧХ фильтров
ФЧХ фильтров
Характеристики спроектированного КИХ – фильтра
cost_FIR =
Характеристики БИХ - фильтра
cost_IIR =
struct with fields:
struct with fields:
NumCoefficients: 208
NumStates: 207
MultiplicationsPerInputSample: 208
AdditionsPerInputSample: 207
NumCoefficients: 25
NumStates: 20
MultiplicationsPerInputSample: 25
AdditionsPerInputSample: 20
Порядок КИХ-фильтра
N1 = 207
Порядок БИХ-фильтра
N2= 24
19