Цифровые фильтры с конечной импульсной характеристикой. Цифровые фильтры с конечной импульсной характеристикой Как получить частотную характеристику фильтра зная импульсную

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

ФАКУЛЬТЕТ АВТОМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

Кафедра Систем Сбора и Обработки Данных

Дисциплина «Теория и обработка сигналов»

ЛАБОРАТОРНАЯ РАБОТА № 10

ЦИФРОВЫЕ ФИЛЬТРЫ

С КОНЕЧНОЙ ИМПУЛЬСНОЙ ХАРАКТЕРИСТИКОЙ

Группа: АТ-33

Вариант: 1 Преподаватель :

Студент: Шадрина А.В. доц. Щетинин Ю.И.

Цель работы: изучение методов анализа и синтеза фильтров с конечной импульсной характеристикой с использованием сглаживающих оконных функций.

Выполнение работы:

1. Графики импульсной характеристики КИХ-фильтра нижних частот с прямоугольным окном частотой среза для значений длины фильтра и .

Импульсная характеристика идеального дискретного КИХ-фильтра имеет бесконечную длину и не равна нулю для отрицательных значений :

.

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

Значение – это длина (размер) фильтра, – порядок фильтра.

Matlab Script (labrab101.m)

N = input("Введите длину фильтра N = ");

h = sin(wc.*(n-(N-1)/2))./(pi.*(n-(N-1)/2));

xlabel("Номер отсчёта, n")

>> subplot(2,1,1)

>> labrab101

Введите длину фильтра N = 15

>> title("Импульсная характеристика КИХ-фильтра для N=15")

>> subplot(2,1,2)

>> labrab101

Введите длину фильтра N = 50

>> title("Импульсная характеристика КИХ-фильтра для N=50")

Рис.1. Графики импульсной характеристики КИХ-фильтра нижних частот с прямоугольным окном частотой среза для значений длины фильтра и

Комментарий: Если рассматривать частотную характеристику цифрового фильтра как ряд Фурье: , то коэффициенты этого ряда будут представлять собой значения импульсной характеристики фильтра. В данном случае было проведено усечение ряда Фурье в первом случае до , а во втором – до , а затем усеченные характеристики были сдвинуты по оси отсчётов вправо на для получения каузального фильтра. При ширина главного лепестка составляет 2, а при - 1, т.е. при увеличении длины фильтра главный лепесток импульсной характеристики сужается. Если же рассматривать уровень боковых лепестков (с помощью ), то при увеличении он увеличился по абсолютной величине с до . Таким образом, можно сделать вывод, что при использовании аппроксимации идеальной АЧХ фильтра прямоугольным окном нельзя одновременно сузить главный лепесток (и тем самым уменьшить переходную область) и уменьшить уровни боковых лепестков (уменьшить пульсации в полосах пропускания и задерживания фильтра). Единственным управляемым параметром прямоугольного окна является его размер, с помощью которого можно влиять на ширину главного лепестка, однако же, на боковые лепестки он особого влияния не оказывает.

2. Вычисление ДВПФ импульсных характеристик из п.1 с помощью функции . Графики их АЧХ в линейном масштабе и в децибелах для 512 отсчетов частоты. Полоса пропускания, переходная полоса и полоса задерживания фильтра. Влияние порядка фильтра на ширину переходной полосы и уровень пульсаций АЧХ в полосах пропускания и задерживания.

Matlab Function (DTFT.m)

function = DTFT(x,M)

N = max (M, length(x));

% Приведение FFT к размеру 2^m

N = 2^ (ceil (log (N)/log (2)));

% Вычисление fft

% Вектор частот

w = 2*pi*((0:(N-1))/N);

w = w - 2*pi*(w>=pi);

% Сдвиг FFT к интервалу от -pi до +pi

X = fftshift(X);

w = fftshift(w);

Matlab Script (labrab102.m)

h1 = sin(wc.*(n1-(N1-1)/2))./(pi.*(n1-(N1-1)/2));

h2 = sin(wc.*(n2-(N2-1)/2))./(pi.*(n2-(N2-1)/2));

DTFT(h1,512);

DTFT(h2,512);

plot(w./(2*pi),abs(H1)./max(abs(H1)),"r")

xlabel("f, Гц"), ylabel("|H1|/max(|H1|)"), grid

plot(w./(2*pi),abs(H2)./max(abs(H2)),"b")

xlabel("f, Гц"), ylabel("|H2|/max(|H2|)"), grid

plot(w./(2*pi),20*log10(abs(H1)),"r")

title("АЧХ КИХ-фильтра нижних частот с прямоугольным окном для N = 15")

xlabel("f, Гц"), ylabel("20lg(|H1|), dB"), grid

plot(w./(2*pi),20*log10(abs(H2)),"b")

title("АЧХ КИХ-фильтра нижних частот с прямоугольным окном для N = 50")

xlabel("f, Гц"), ylabel("20lg(|H2|), dB"), grid

Рис.2. Графики АЧХ КИХ-фильтра нижних частот с прямоугольным окном частотой среза для значений длины фильтра и в линейном масштабе

Рис.3. Графики АЧХ КИХ-фильтра нижних частот с прямоугольным окном частотой среза для значений длины фильтра и в логарифмическом масштабе

Комментарий:

Таблица.1. Диапазон полосы пропускания, переходной области и полосы задерживания для значений длины фильтра и

Длина фильтра

Полоса пропускания, Гц

Переходная область, Гц

Полоса задерживания, Гц

Рассмотрим наиболее простые из цифровых фильтров - фильтры с постоянными параметрами.

На вход цифрового фильтра подается входной сигнал в виде последовательности числовых значений, следующих с интервалом (рис. 4.1, а). При поступлении каждого очередного значения сигнала в цифровом фильтре производится расчет очередного значения выходного сигнала Алгоритмы расчета могут быть самыми разнообразными; в процессе расчета, кроме последнего значения входного сигнала могут использоваться

предыдущие значения входного и выходного сигналов: Сигнал на выходе цифрового фильтра также представляет собой последовательность числовых значений, следующих с интервалом . Этот интервал является единым для всего устройства цифровой обработки сигналов.

Рис. 4.1. Сигнал на входе и на выходе цифрового фильтра

Поэтому если на вход цифрового фильтра подать простейший сигнал в виде единичного импульса (рис. 4.2, а)

то на выходе получим сигнал в виде дискретной последовательности числовых значений, следующих с интервалом

По аналогии с обычными аналоговыми цепями назовем этот ответный сигнал импульсной характеристикой фильтра (рис. 4.2, б). В отличие от импульсной характеристики аналоговой цепи функция является безразмерной.

Рис. 4.2. Единичный импульс и импульсная характеристика цифрового фильтра

Подадим на вход фильтра произвольный дискретный сигнал рис. 4.1, а), представляющий собой набор дискретных значений

Под действием первого элемента на выходе фильтра формируется последовательность умноженная на при действии последовательность умноженная на и сдвинутая вправо на величину и т. д. В результате на выходе получим последовательность причем

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

Формула (4.1) представляет собой алгоритм цифровой фильтрации. Если импульсная характеристика фильтра описывается последовательностью с конечным числом членов, то фильтр может быть реализован в виде схемы, изображенной на рис. 4.3. Здесь буквой обозначены элементы задержки сигнала на время (на одну ячейку); -элементы, умножающие сигнал на соответствующий коэффициент.

Схема, изображенная на рис. 4.3, не является электрической схемой цифрового фильтра; эта схема представляет собой графическое изображение алгоритма цифровой фильтрации и показывает последовательность арифметических операций, выполняемых при обработке сигнала.

Рис. 4.3. Схема нерекурсивного цифрового фильтра

Для цифровых фильтров, обрабатывающих сигналы в виде абстрактных числовых последовательностей, понятие «задержка на время » является не совсем корректным. Поэтому элементы, задерживающие сигнал на одну ячейку, на схемах цифровых фильтров обычно отмечают символом обозначающим задержку сигнала на языке -преобразований. В дальнейшем будем придерживаться этого обозначения.

Вернемся к схеме цифрового фильтра, изображенной на рис. 4.3, Такие фильтры, где для расчета используются лишь значения входного сигнала, называют простыми или нерекурсивными.

Алгоритм нерекурсивного фильтра легко записать, если известна импульсная характеристика фильтра. Для практической реализации алгоритма необходимо, чтобы импульсная характеристика содержала конечное число членов. Если импульсная характеристика содержит бесконечное число членов, но они быстро убывают по величине, то можно ограничиться конечным числом членов, отбросив те, значения которых малы. В случае, если элементы импульсной характеристики не убывают по величине, алгоритм нерекурсивного фильтра оказывается нереализуемым.

Рис. 4.4. -цепь

В качестве примера рассмотрим простейший цифровой фильтр, аналогичный -цепи (рис. 4.4). Импульсная характеристика -цепи имеет вид

Чтобы записать импульсную характеристику соответствующего цифрового фильтра, в выражении следует заменить на Однако импульсная характеристика -цепи имеет размерность а импульсная характеристика цифрового фильтра должна быть безразмерной. Поэтому опустим множитель в выражении (4.2) и запишем импульсную характеристику цифрового фильтра в виде

Такая импульсная характеристика содержит бесконечно много членов, но их величина убывает по экспоненциальному закону, и можно ограничиться членами, выбирая таким, чтобы

Теперь можно записать выражение для сигнала на выходе фильтра

Это выражение является одновременно алгоритмом цифрового фильтра. Схема этого фильтра представлена на рис. 4.5.

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

Рис. 4.5. Схема нерекурсивного цифрового фильтра, аналогичного -цепи

Определим параметр цифрового фильтра, аналогичный передаточной функции электрической цепи. Для этого применим -преобразование к импульсной характеристике цифрового фильтра:

Функцию называют системной функцией фильтра.

В соответствии с выражением (4.1) сигнал на выходе цифрового фильтра равен дискретной свертке входного сигнала и импульсной характеристики фильтра. Применяя к этому выражению теорему о -преобразовании свертки, получим, что -преобразование выходного сигнала равно -преобразованию входного сигнала, умноженному на системную функцию фильтра:

Таким образом, системная функция играет роль передаточной функции цифрового фильтра.

В качестве примера найдем системную функцию цифрового фильтра первого порядка, аналогичного -цепи:

Третий метод анализа прохождения сигналов через цифровые фильтры аналогичен классическому методу дифференциальных уравнений. Рассмотрим этот метод на примере цепей порядка.

Простейшей аналоговой цепью 1-го порядка является -цепь (см. рис. 4.4), прохождение сигналов через которую описывается дифференциальным уравнением

Для дискретной цепи вместо дифференциального уравнения (4.8) должно быть записано разностное уравнение, где входной и выходной сигналы задаются для дискретных моментов времени а вместо производной должна фигурировать разность соседних значений сигнала . Для дискретной цепи 1-го порядка разностное уравнение может быть записано в достаточно общем виде

Применим к уравнению -преобразование

откуда найдем системную функцию фильтра

Формула (4.10) является достаточно общим выражением для системной функции цифрового фильтра 1-го порядка. При она совпадает с полученным ранее выражением (4.7) для системной функции цифрового фильтра, эквивалентного -цепи.

Найдем алгоритм цифровой фильтрации, соответствующий системной функции (4.10). Для этого решим уравнение (4.9) относительно

Эквивалентная схема этого алгоритма приведена на рис. 4.6. По сравнению с нерекурсивным фильтром (см. рис. 4.5) здесь добавилась своеобразная «цепь обратной связи», которая означает, что значения выходного сигнала используются в последующих

Рис. 4.6. Схема рекурсивного цифрового фильтра, аналогичного -цепи

расчетах. Фильтры такого типа называют рекурсивными.

Алгоритм (4.11) соответствует фильтру, который полностью эквивалентен рассмотренному ранее нерекурсивному фильтру. Но для определения одного значения выходного сигнала с помощью алгоритма нерекурсивного фильтра (4.4) требуется выполнить операций, а при использовании алгоритма рекурсивного фильтра (4.11) - только две операции. В этом состоит основное преимущество рекурсивных фильтров. Кроме того, рекурсивные фильтры позволяют производить обработку сигнала с более высокой точностью, так как они позволяют более правильно реализовать импульсную характеристику без отбрасывания ее «хвоста». Рекурсивные фильтры позволяют реализовать алгоритмы, вообще нереализуемые с помощью нерекурсивных фильтров. Например, при фильтр, работающий по схеме рис. 4.6, является, по существу, идеальным накопителем-интегратором и имеет импульсную характеристику вида Фильтр с такой характеристикой по нерекурсивной схеме не может быть реализован.

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

Область применения нерекурсивных алгоритмов - это реализация цифровых фильтров с импульсной характеристикой, содержащей небольшое число членов. Примером может служить простейший дифференциатор, сигнал на выходе которого равен приращению входного сигнала:

Схема такого цифрового фильтра изображена на рис. 4.7.

Рис. 4.7. Схема простейшего цифрового дифференциатора

Рассмотрим теперь цифровой фильтр общего вида, который описывается уравнением

Это уравнение можно рассматривать и как разностное уравнение порядка и как алгоритм цифровой фильтрации, если его переписать иначе, а именно

Рис. 4.8. Схема рекурсивного цифрового фильтра порядка

Алгоритму (4.13) соответствует схема, изображенная на рис. 4.8. Найдем системную функцию такого фильтра. Для этого применим к уравнению -преобразование:

Выражение (4.14) позволяет установить связь между шачениями элементов схемы фильтра и системной функцией. Коэффициенты в числителе системной функции определяют значения коэффициентов при

(в нерекурсивной части фильтра), а коэффициенты в знаменателе определяют рекурсивную часть фильтра.

Лекция №10

«Цифровые фильтры с конечной импульсной характеристикой»

Передаточная функция физически реализуемого цифрового фильтра с конечной импульсной характеристикой (КИХ-фильтра) может быть представлена в виде

(10.1).

При замене в выражении (10.1) получим частотную характеристику КИХ-фильтра в виде

(10.2),

где - амплитудно-частотная характеристика (АЧХ) фильтра,

- фазо-частотная характеристика (ФЧХ) фильтра.

Фазовая задержка фильтра определяется как

(10.3).

Групповая задержка фильтра определяется как

(10.4).

Отличительной особенностью КИХ-фильтров является возможность реализации у них постоянных фазовой и групповой задержек, т.е. линейной ФЧХ

(10.5),

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

Для вывода условий, обеспечивающих линейную ФЧХ запишем частотную характеристику КИХ-фильтра с учетом (10.5)

(10.6).

Приравнивая действительные и мнимые части этого равенства, получим

(10.7).

Разделив второе уравнение на первое, получим

(10.8).

Окончательно можно записать

(10.9).

Это уравнение имеет два решения. Первое при a =0 соответствует уравнению

(10.10).

Это уравнение имеет единственное решение, соответствующее произвольному h (0) (sin (0)=0), и h (n )=0 при n >0. Это решение соответствует фильтру, импульсная характеристика которого имеет единственный ненулевой отсчет в начальный момент времени. Такой фильтр на представляет практического интереса.

Другое решение найдем для . При этом перекрестно перемножив числители и знаменатели в (10.8) получим

(10.11).

Отсюда имеем

(10.12).

Поскольку это уравнение имеет вид ряда Фурье, то его решение, если оно существует, является единственным.

Легко заметить, что решение этого уравнения должно удовлетворять условиям

(10.13),

(10.14).

Из условия (10.13) следует, что для каждого порядка фильтра N существует только одна фазовая задержка a , при которой может достигаться строгая линейность ФЧХ. Из условия (10.14) следует, что импульсная характеристика фильтра должна быть симметричной относительно точки для нечетного N , и относительно средней точки интервала (рис.10.1).



Частотную характеристику такого фильтра (для нечетного N ) можно записать в виде

(10.15).

Делая во второй сумме замену m = N -1- n , получим

(10.16).

Поскольку h (n )= h (N -1- n ), то две суммы можно объединить


(10.17).

Подставив , получим

(10.18).

Если обозначить

(10.19),

то окончательно можно записать

(10.20).

Таким образом, для фильтра с линейной ФЧХ имеем

(10.21).

Для случая четного N аналогично будем иметь

(10.22).

Делая замену во второй сумме , получим

(10.23).

Делая замену , получим

(10.24).

Обозначив

(10.25),

будем окончательно иметь

(10.26).

Таким образом, для КИХ-фильтра с линейной ФЧХ и четным порядком N можно записать

(10.27).

В дальнейшем, для простоты будем рассматривать только фильтры с нечетным порядком.

При синтезе передаточной функции фильтра исходными параметрами, как правило, являются требования к частотной характеристике. Существует много методик синтеза КИХ-фильтров. Рассмотрим некоторые из них.

Поскольку частотная характеристика любого цифрового фильтра является периодической функцией частоты, то ее можно представить в виде ряда Фурье

(10.28),

где коэффициенты ряда Фурье равны

(10.29).

Видно, что коэффициенты ряда Фурье h (n ) совпадают с коэффициентами импульсной характеристики фильтра. Поэтому, если известно аналитическое описание требуемой частотной характеристики фильтра, то по нему можно легко определить коэффициенты импульсной характеристики, а по ним – передаточную функцию фильтра. Однако на практике это не реализуемо, поскольку импульсная характеристика такого фильтра имеет бесконечную длину. Кроме того, такой фильтр физически не реализуем поскольку импульсная характеристика начинается в - ¥ , и никакая конечная задержка не сделает это фильтр физически реализуемым.

Одним из возможных методов получения КИХ-фильтра, аппроксимирующего заданную частотную характеристику заключается в усечении бесконечного ряда Фурье и импульсной характеристики фильтра, полагая что h (n )=0 при . Тогда

(10.30).

Физическая реализуемость передаточной функции H (z ) может быть достигнута путем умножения H (z ) на .

(10.31),

где

(10.32).

При такой модификации передаточной функции амплитудная характеристика фильтра не изменяется, а групповая задержка увеличивается на постоянную величину .

В качестве примера расчитаем КИХ-фильтр низких частот с частотной характеристикой вида

(10.33).

В соответствии с (10.29) коэффициенты импульсной характеристики фильтра описываются выражением

(10.34).

Теперь из (10.31) можно получить выражение для передаточной функции

(10.35),

где

(10.36).

Амплитудные характеристики рассчитанного фильтра для различных N представлены на рис.10.2.

Рис.10.2

Пульсации в полосах пропускания и задерживания происходят вследствие медленной сходимости ряда Фурье, которая, в свою очередь, обусловлена наличием разрыва функции на частоте среза полосы пропускания. Эти пульсации известны как пульсации Гиббса .

Из рис.10.2 видно, что с увеличением N частота пульсаций растет, а амплитуда уменьшается как на нижних, так и на верхних частотах. Однако амплитуда последней пульсации в полосе пропускания и первой пульсации в полосе задерживания остаются практически неизменными. На практике такие эффекты часто нежелательны, что требует отыскания путей снижения пульсаций Гиббса.

Усеченную импульсную характеристику h (n ) можно представить в виде произведения требуемой бесконечной импульсной характеристики и некоторой функции окна w (n ) длины n (рис.10.3).

(10.37).



В рассмотренном случае простого усечения ряда Фурье используется прямоугольное окно

(10.38).

В этом случае частотную характеристику фильтра можно представить в виде комплексной свертки

(10.39).

Это значит, что будет «размытой» версией требуемой характеристики .

Задача сводится к отысканию функций окон, позволяющих уменьшить пульсации Гиббса при той же избирательности фильтра. Для этого необходимо вначале изучить свойства функции окна на примере прямоугольного окна.

Спектр функции прямоугольного окна можно записать как

(10.40).

Спектр функции прямоугольного окна представлен на рис.10.4.

Рис.10.4

Поскольку при , то ширина главного лепестка спектра оказывается равной .

Наличие боковых лепестков в спектре функции окна приводит к увеличению пульсаций Гиббса в АЧХ фильтра. Для получения малых пульсаций в полосе пропускания и большого затухания в полосе задерживания необходимо, чтобы площадь, ограниченная боковыми лепестками, составляла малую долю от площади, ограниченной главным лепестком.

В свою очередь, ширина главного лепестка определяет ширину переходной зоны результирующего фильтра. Для высокой избирательности фильтра ширина главного лепестка должна быть по возможности малой. Как видно из вышеизложенного, ширина главного лепестка уменьшается с увеличением порядка фильтра.

Таким образом, свойства подходящих функций окна можно сформулировать следующим образом:

- функция окна должна быть ограничена во времени;

- спектр функции окна должен наилучшим образом аппроксимировать функцию, ограниченную по частоте, т.е. иметь минимум энергии за пределами основного лепестка;

- ширина основного лепестка спектра функции окна должна по возможности малой.

Наиболее часто используют следующие функции окон:

1. Прямоугольное окно. Рассмотрено выше.

2. Окно Хэмминга (Hamming) .

(10.41),

где .

При это окно называется окном Хэнна (hanning ).

3. Окно Блэкмана (Blackman) .


(10.42).

4. Окно Бартлета (Bartlett) .

(10.43).

Показатели фильтров, построенных с применением указанных функций окон, сведены в таблицу 10.1.

Окно

Ширина главного лепестка

Коэффициент пульсаций, %

N=11

N=21

N=31

Прямоугольное

22.34

21.89

21.80

Хэннинга

2.62

2.67

2.67

Хэмминга

1.47

0.93

0.82

Блэкмана

0.08

0.12

0.12

Коэффициент пульсации определяется как отношение максимальной амплитуды бокового лепестка к амплитуде главного лепестка в спектре функции окна.

Для выбора требуемого порядка фильтра и наиболее подходящей функции окна при расчете реальных фильтров можно использовать данные таблицы 10.2.

переходной

Неравномерность

пропускания (дБ)

Затухание в

заграждения (дБ)

Прямоугольное

Хэннинга

Хэмминга

Блэкмана

Как видно из таблицы 10.1, существует определенная зависимость между коэффициентом пульсаций и шириной главного лепестка в спектре функции окна. Чем меньше коэффициент пульсаций, тем больше ширина главного лепестка, а значит и переходной зоны в АЧХ фильтра. Для обеспечения малой пульсации в полосе пропускания приходится выбирать окно с подходящим коэффициентом пульсаций, а требуемую ширину переходной зоны обеспечивать повышенным порядком фильтра N .

Эту проблему можно решить с помощью окна, предложенного Кайзером (Kaiser ). Функция окна Кайзера имеет вид

(10.44),

где a - независимый параметр, , I 0 – функция Бесселя первого рода нулевого порядка, определяемая выражением

(10.45).

Привлекательным свойством окна Кайзера является возможность плавного изменения коэффициента пульсаций от малых значений до больших, при изменении только одного параметра a . При этом как и для других функций окон ширина главного лепестка может регулироваться порядком фильтра N .

Основными параметрами, задаваемыми при разработке реального фильтра являютя:

Полоса пропускания - w p ;

Полоса заграждения - w a ;

Максимально допустимая пульсация в полосе пропускания – A p ;

Минимальное затухание в полосе задерживания – A a ;

-частота дискретизации - w s .

Эти параметры иллюстрируются на рис.10.5. При этом максимальная пульсация в полосе пропускания определяется как

(10.46),

а минимальное затухание в полосе задерживания как

Сравнительно простая процедура расчета фильтра с окном Кайзера включает в себя следующие этапы:

1.Определяется импульсная характеристика фильтра h (n ) при условии, частотная характеристика является идеальной

(10.48),

где (10.49).

2. Выбирается параметр d как

(10.50),

где (10.51).

3.Вычисляется истинное значение A a и A p по формулам (10.46), (10.47).

4.Выбирается параметр a как

(10.52).

5.Выбирается параметр D как

(10.53).

6.Выбирается наименьшее нечетное значение порядка фильтра из условия

(10.54),

(10.57)

следует, что

Поскольку отсчеты импульсной характеристики фильтра являются коэффициентами его передаточной функции, то условие (10.59) означает, что коды всех коэффициентов фильтра содержат лишь дробную часть и знаковый разряд и не содержат целой части.

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

Абсолютные величины отсчетов входных сигналов фильтра обычно нормированы так, что

Если анализ проводится для КИХ-фильтра с линейной ФЧХ, то алгоритм вычисления его выходного сигнала может быть следующим

где - округленные до s k коэффициенты фильтра.

Этому алгоритму соответствует структурная схема фильтра, представленная на рис.10.5.



Существуют два способа реализации этого алгоритма. В первом случае все операции умножения выполняются точно и округление произведений отсутствует. В этом случае разрядность произведений равна s in +s k , где s in – разрядность входного сигнала, а s k – разрядность коэффициентов фильтра. В этом случае структурная схема фильтра, представленная на рис.10.5 точно соответствует реальному фильтру.

При втором способе реализации алгоритма (10.61) каждый результат операции умножения округляется, т.е. произведения вычисляются с некоторой погрешностью. В этом случае необходимо изменить алгоритм (10.61) так, чтобы учесть погрешность вносимую, округлением произведений

Если значения отсчетов выходного сигнала фильтра вычисляются по первому способу (с точными значениями произведений), то дисперсия выходного шума определяется как

(10.66),

т.е. зависит от дисперсии шума округления входного сигнала и значений коэффициентов фильтра. Отсюда можно найти требуемое количество разрядов входного сигнала как

(10.67).

По известным значениям s in и s k можно определить количество разрядов, необходимое для дробной части кода выходного сигнала как

Если значения отсчетов выходного сигнала вычисляются по второму способу, когда каждое произведение округляется до s д разрядов, то дисперсию шума округления, создаваемого каждым из умножителей можно выразить через разрядность произведения как

DR in и отношения сигнал-шум на выходе фильтра SNR out . Значение динамического диапазона входного сигнала в децибелах определяется как

(10.74),

где A max и A min – максимальная и минимальная амплитуды входного сигнала фильтра.

Отношение сигнал-шум на выходе фильтра, выраженное в децибелах, определяется как

(10.75),

определяет среднеквадратическое значение мощности выходного синусоидального сигнала фильтра с амплитудой A min , а

(10.77)

определяет мощность шума на выходе фильтра. Из (10.75) и (10.76) при A max =1 получаем выражение для дисперсии выходного шума фильтра

(10.78).

Это значение дисперсии выходного шума фильтра может быть использовано для вычисления разрядностей входного и выходного сигналов фильтра.

Физически осуществимые цифровые фильтры работают в реальном масштабе времени, для формирования выходного сигнала в i-ый дискретный момент времени могут использовать следующие данные:

1. Значения выходного сигнала в текущей момент времени; так же некоторое количество прошлых отсчетов входного сигнала: x(i-1), x(i-2), x(i-m);

2. Некоторое количество предыдущих отсчетов выходного сигнала: y(i-1), y(i-2), y(i-n).

Целые числа m и n определяют порядок цифрового фильтра. Фильтры классифицируются в зависимости от того, как используется информация о прошлом состоянии системы.

Фильтры с КИХ или не рекурсивные фильтры, работающие в соответствии со следующим алгоритмом.

M – порядок фильтра.

Не рекурсивный фильтр производит взвешивание, суммирование предыдущих отсчётов входного сигнала. Прошлые отсчеты выходного сигнала не используются.

H(z) – системная функция.

Системная функция имеет m нулей и один полюс, при z=0.

Алгоритм функционирования цифрового фильтра с КИХ показан на рис.45.

Основными элементами фильтра служат блоки задержки отсчетов значений на 1 интервал дискретизации .

Масштабные блоки, выполняющие умножение на весовые коэффициенты в цифровой форме. С выхода масштабных блоков сигнал поступает в сумматор, где вычисляется выходной сигнал.

Данная структурная схема не является электрической, а служит графическим изображением алгоритма обработки сигнала на ЭВМ. Выходными и входными данными для такого алгоритма служат массивы чисел.

Применим к системным функциям обратное Z – преобразование и найдем импульсную характеристику:

(импульсная характеристика фильтра).

Импульсная характеристика КИХ фильтра содержит конечное число элементов и данный фильтр всегда устойчив.

Найдем частотную характеристику выполнив подстановку

T=1/fs – интервал дискретизации.

Все началось с того, что другу друга моего друга потребовалась помощь с этими самыми фильтрами. Джедайскими путями слухи об этом дошли до меня, я отписался в комментариях к посту по ссылке. Вроде помогло. Ну, я надеюсь.

Эта история всколыхнула во мне воспоминания о третьем, что ли, курсе, когда я сам сдавал ЦОС, и подвигла написать статью для всех тех, кому интересно, как же работают цифровые фильтры, но кого закономерно пугают забористые формулы и психоделичные рисунки в (я уже не говорю про учебники).

Вообще, по моему опыту, ситуация с учебниками описывается известной фразой про то, что за деревьями бывает не видно леса. И то сказать, когда тебя сходу начинают пугать Z-преобразованием и формулами с делением полиномов, которые часто бывают длиннее двух досок, интерес к теме иссякает крайне быстро. Мы же начнем с простого, благо для понимания происходящего совсем необязательно расписывать длинные комплексные выражения.

Итак, для начала несколько простых базовых понятий.

1. Импульсная характеристика.

Положим, у нас есть коробка с четырьмя выводами. Мы без понятия, что там внутри, но зато точно знаем, что два левых вывода — вход, а два правых — выход. Давайте попробуем подать на нее очень короткий импульс очень большой амплитуды и посмотрим, что будет на выходе. Ну а чего, все равно что внутри этого четырехполюсника — неясно, потому как его описывать — непонятно, а так хоть что-то увидим.

Тут надо сказать, что короткий (вообще говоря, бесконечно короткий) импульс большой (вообще говоря, бесконечной) амплитуды в теории называется дельта-функцией. К слову, самое смешное, что интеграл от этой бесконечной функции равен единице . Такая вот нормировка.

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

2. Свертка.

Если говорить коротко, то свертка — это математическая операция, сводящаяся к интегрированию произведения функций:

Обозначается, как видно, звездочкой. Также видно, что при свертке одна функция берется в своем «прямом» порядке, а вторую мы проходим «задом наперед». Разумеется, в более ценном для человечества дискретном случае свертка, как и всякий интеграл, переходит в суммирование:

Казалось бы, некая унылая математическая абстракция. Однако на самом деле свертка — пожалуй самое волшебное явление этого мира, по удивительности уступающее разве только появлению человека на свет, с той лишь разницей, что откуда берутся дети большинство людей узнает в самом крайнем случае годам к восемнадцати, в то время как про то, что такое свертка и чем она полезна и удивительна, огромная часть населения Земли совершенно не догадывается всю свою жизнь.

Так вот, мощь этой операции заключается в том, что если f — любой произвольный входной сигнал, а g — импульсная характеристика четырехполюсника, то результат свертки этих двух функций будет аналогичен тому, что мы получили бы, пропустив сигнал f через этот четырехполюсник.

То есть, импульсная характеристика представляет собой полный слепок всех свойств четырехполюсника по отношению к входному воздействию, и свертка входного сигнала с оной позволяет восстановить соответствующий ему выходной сигнал. Как по мне, это просто потрясающе!

3. Фильтры.

С импульсной характеристикой и сверткой можно творить много интересного. Например, если сигнал звуковой, можно организовывать реверберацию, эхо, хорус, флэнджер и много, много другого; можно дифференцировать и интегрировать… В общем, творить что угодно. Для нас же сейчас важнее всего то, что, разумеется, с помощью свертки так же легко получаются и фильтры.

Собственно цифровой фильтр и есть свертка входного сигнала с импульсной характеристикой, соответствующей желаемому фильтру.

Но, разумеется, импульсную характеристику надо как-то получить. Мы, конечно, выше уже разобрались как ее померять, но в такой задаче толку в этом немного — если мы уже собрали фильтр, зачем еще что-то мерять, можно использовать его как есть. Да и, кроме того, самая главная ценность цифровых фильтров состоит в том, что они могут иметь характеристики, недостижимые (или очень трудно достижимые) в реальности — например, линейную фазу . Так что тут промерять вообще никак, надо просто считать.

4. Получение импульсной характеристики.

В этом месте в большинстве публикаций по теме авторы начинают вываливать на читателя горы Z-преобразований и дробей из полиномов, запутывая его окончательно. Я не буду этого делать, просто кратко поясню, к чему все это и почему на практике для прогрессивной общественности оно не сильно необходимо.

Предположим, мы определились, чего хотим от фильтра, и составили уравнение, которое его описывает. Далее, чтобы найти импульсную характеристику, можно подставить в выведенное уравнение дельта-функцию и получить искомое. Единственная проблема состоит в том, как это сделать, ибо дельта-функция во временно й области задается хитрой системой, и вообще там всякие бесконечности. Так что на этом этапе все оказывается страшно непросто.

Вот здесь, бывает, и вспоминают, что существует такая штука как преобразование Лапласа . Само по себе оно не фунт изюму. Единственной причиной того, что его терпят в радиотехнике, как раз и является тот факт, что в пространстве того аргумента, переходом к которому является это преобразование, некоторые вещи действительно становятся проще. В частности, очень легко выражается та самая дельта-функция, которая доставляла нам столько хлопот во временной области — там это просто единица!

Z-преобразование (aka преобразование Лорана) — версия преобразования Лапласа для дискретных систем.

То есть, применив преобразование Лапласа (или Z-преобразование, по необходимости) к функции, описывающей желаемый фильтр, подставив в полученное единицу и преобразовав обратно, мы получим импульсную характеристику. Звучит легко, желающие могут попробовать. Я не рискну, ибо, как уже было сказано, преобразование Лапласа — суровая вещь, особенно обратное. Оставим его на крайний случай, а сами поищем какие-нибудь более простые способы получения искомого. Их есть несколько.

Во-первых, можно вспомнить про еще один удивительный факт природы — амплитудно-частотная и импульсная характеристики связаны между собой добрым и знакомым преобразованием Фурье. Это значит, что мы можем нарисовать любую АЧХ на свой вкус, взять от нее обратное преобразование Фурье (хоть непрерывное, хоть дискретное) и получить импульсную характеристику той системы, что ее реализует. Это просто потрясающе!

Тут, правда, не обойдется без проблем. Во-первых, импульсная характеристика, которую мы получим, скорее всего будет бесконечной (не буду пускаться в объяснения почему; так устроен мир), так что нам придется волевым решением обрезать ее в какой-то точке (положив равной нулю дальше этой точки). Но это не пройдет просто так — следствием этого, как и следует ожидать, будут искажения АЧХ рассчитанного фильтра — она станет волнистой, а частотный срез размоется.

Для того, чтобы минимизировать эти эффекты, к укороченной импульсной характеристике применяются различные сглаживающие оконные функции. В результате АЧХ обычно размывается еще больше, зато исчезают неприятные (особенно в полосе пропускания) осцилляции.

Собственно, после такой обработки мы получаем рабочую импульсную характеристику и можем строить цифровой фильтр.

Второй метод рассчета еще проще — импульсные характеристики наиболее популярных фильтров давно выражены в аналитическом виде за нас. Остается только подставить свои значения и применить к результату оконную функцию по вкусу. Так что можно даже не считать никаких преобразований.

Ну и, конечно, если стоит цель эмулировать поведение какой-то конкретной схемы, можно получить ее импульсную характеристику в симуляторе:

Здесь я подал на вход RC-цепи импульс напряжением 100500 вольт (да, 100.5 кВ) длительностью 1 мкс и получил ее импульсную характеристику. Понятно, что в реальности такого не сделать, но в симуляторе этот метод, как видно, прекрасно работает.

5. Примечания.

Вышесказанное насчет укорочения импульсной характеристики относилось, конечно, к т.н. фильтрам с конечной импульсной характеристикой (FIR/КИХ-фильтрам). Они обладают кучей ценных свойств, включая линейную фазу (при определенных условиях построения импульсной характеристики), которая дает отсутствие искажений сигнала при фильтрации, а также абсолютную стабильность. Есть и фильтры с бесконечной импульсной характеристикой (IIR/БИХ-фильтры). Они менее ресурсоемки в смысле рассчетов, но уже не имеют перечисленных преимуществ.

В следующей статье я надеюсь разобрать простой пример практической реализации цифрового фильтра.