Цифровые фильтры.

Общие понятия. В одномерной дискретной линейной системе связь между входом и выходом (входной и выходной дискретными последовательностями значений сигнала – отсчетами), задается линейным оператором преобразования TL:

y(kDt) = TL{x(kDt)}.

Это выражение отображает краткую запись линейного разностного уравнения:

am y(kDt-mDt) =bn x(kDt-nDt), (2.1.1)

где k = 0, 1, 2, …- порядковый номер отсчетов, Dt - интервал дискретизации сигнала, am и bn - вещественные или, в общем случае, комплексные коэффициенты. Положим a0 = 1, что всегда может быть выполнено соответствующей нормировкой уравнения (2.1.1), и, принимая в дальнейшем Dt = 1, т.е. переходя к числовой нумерации цифровых последовательностей значений сигналов, приведем его к виду:

y(k) = bn x(k-n) –am y(k-m). (2.1.2)

Оператор, представленный правой частью данного уравнения, получил название цифрового фильтра (ЦФ), а выполняемая им операция - цифровой фильтрации данных (информации, сигналов). Если хотя бы один из коэффициентов am или bn зависит от переменной k, то фильтр называется параметрическим, т.е. с переменными параметрами. Ниже мы будем рассматривать фильтры с постоянными коэффициентами (инвариантными по аргументу).

Основные достоинства цифровых фильтров по сравнению с аналоговыми.

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

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

· Один фильтр может обрабатывать несколько входных каналов или сигналов.

· Входные и выходные данные можно сохранять для последующего использования.

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

· Фильтры могут использоваться при очень низких частотах и в большом диапазоне частот, для чего достаточно только изменять частоту дискретизации данных.

Нерекурсивные фильтры. При нулевых значениях коэффициентов am уравнение (2.1.2) переходит в уравнение линейной дискретной свертки функции x(k) с оператором bn:

y(k) = bn x(k-n). (2.1.3)

Значения выходных отсчетов свертки (2.1.3) для любого аргумента k определяются текущим и "прошлыми" значениями входных отсчетов. Такой фильтр называется нерекурсивным цифровым фильтром (НЦФ). Интервал суммирования по n получил название "окна" фильтра. Окно фильтра составляет N+1 отсчет, фильтр является односторонним каузальным, т.е. причинно обусловленным текущими и "прошлыми" значениями входного сигнала, и выходной сигнал не может опережать входного. Каузальный фильтр может быть реализован физически в реальном масштабе времени. При k<n, а также при k<m для фильтра (2.1.2), проведение фильтрации возможно только при задании начальных условий для точек x(-k), k = 1, 2, … , N, и y(-k), k = 1, 2, … , M. Как правило, в качестве начальных условий принимаются нулевые значения, или продление первых отсчетов входных сигналов или его тренда назад по аргументу.

При обработке данных на ЭВМ ограничение по каузальности снимается. В программном распоряжении фильтра могут находиться как "прошлые", так и "будущие" значения входной последовательности отсчетов относительно текущей точки вычислений k, при этом уравнение (2.1.3) будет иметь вид:

y(k) =bn x(k-n). (2.1.4)

При N' = N фильтр называется двусторонним симметричным. Симметричные фильтры, в отличие от односторонних фильтров, не изменяют фазы обрабатываемого сигнала.

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

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

Представим, что на одной полоске бумаги выписаны по порядку сверху вниз значения данных x(k) ≡ sk (см. рис. 2.1.1). На второй полоске бумаги находятся записанные в обратном порядке значения коэффициентов фильтра bn ≡ hn (обозначение h для коэффициентов операторов НЦФ является общепринятым). Для вычисления yk ≡ y(k) располагаем вторую полоску против первой таким образом, чтобы значение h0 совпало со значением sk, перемножаем все значения hn с расположенными против них значениями sk-n, и суммируем все результаты перемножения. Результат суммирования является выходным значением сигнала yk. Сдвигаем окно фильтра - полоску коэффициентов hk, на один отсчет последовательности sk вниз (или массив sk сдвигаем на отсчет вверх) и вычисляем аналогично следующее значение выходного сигнала, и т.д.

Рис. 2.1.1. Нерекурсивный ЦФ.

Описанный процесс является основной операцией цифровой фильтрации, и называется сверткой в вещественной области массива данных x(k) с функцией (оператором) фильтра bn (массивом коэффициентов фильтра). Для математического описания наряду с формулами (2.1.3-2.1.4) применяется также символические формы записи фильтрации:

y(k) = b(n) * x(k-n) º b(n) ③ x(k-n).

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

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

yk = 0.2(xk-2+xk-1+xk+xk+1+xk+2).

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

yk =bn xk-n, bn = 0,2. (2.1.5)

Аналогично, при сглаживании данных методом наименьших квадратов (МНК) на основе кубического уравнения:

yk = (-3xk-2+12xk-1+17xk+12xk+1-3xk+2)/35. (2.1.6)

Это также НЦФ с коэффициентами: b0 = 17/35, b1 = b-1 = 12/35, b2 = b-2 = -3/35.

Пример.Уравнение НЦФ: yk =bn xk-n, bn = 0,2. Начальные условия - нулевые.

Входной сигнал – скачок функции (ступень): xk = {0,0,0,0,0,0,10,10,10,10,…}.

Выходной сигнал: yk = {0,0,0,0,2,4, 6, 8,10,10,10,10,…}.

Результат фильтрации приведен на рис. 2.1.2(А). Проверьте результат (выполните фильтрацию, как это показано на рис. 2.1.1, с учетом четности фильтра).

Рис. 2.1.2. Сглаживание МНК в скользящем окне по пяти точкам

Заметим: сумма коэффициентов сглаживающих НЦФ всегда должна быть равна 1, при этом сумма значений массива выходного сигнала равна сумме значений массива входного сигнала. Координатная детальность выходного сигнала ниже входного, резкие изменения входных сигналов "размазываются" по аргументу.

Повторите фильтрацию фильтром МНК на основе кубического уравнения. Сравните результаты фильтрации с результатами первого НЦФ (приведены на рис. 2.1.2(В)).

Для операции фильтрации характерны следующие основные свойства:

· Дистрибутивность: h(n) ③ [a(k)+b(k)] = h(n) ③ a(k)+h(n) ③ b(k).

· Коммутативность: h(n) ③ a(k) ③ b(k) = a(k) ③ b(k) ③ h(n).

· Ассоциативность: [a(k) ③ b(k)] ③ h(n) = h(n) ③ a(k) ③ b(k).

Фильтрация однозначно определяет выходной сигнал y(k) для установленного значения входного сигнала s(k) при известном значении импульсного отклика фильтра h(n).

Рис. 2.1.3. Рекурсивный ЦФ.

Рекурсивные фильтры. Фильтры, которые описываются полным разностным уравнением (2.1.2)

y(k) = bn x(k-n) –am y(k-m),

принято называть рекурсивными цифровыми фильтрами (РЦФ), так как в вычислении текущих выходных значений участвуют не только входные данные, но и значения выходных данных фильтрации, вычисленные в предшествующих циклах расчетов. С учетом последнего фактора рекурсивные фильтры называют также фильтрами с обратной связью, положительной или отрицательной в зависимости от знака суммы коэффициентов am. По существу, полное окно рекурсивного фильтра состоит из двух составляющих: нерекурсивной части bn, ограниченной в работе текущими и "прошлыми" значениями входного сигнала (при реализации на ЭВМ возможно использование и “будущих” отсчетов сигнала) и рекурсивной части am, которая работает только с "прошлыми" значениями выходного сигнала. Техника вычислений для РЦФ приведена на рис. 2.1.3.

Пример.Уравнение РЦФ: yk = boxk+a1yk-1, при bo = a1 = 0.5, y-1 = 0.

Входной сигнал: xk = {0,0,1,0,0,0,0,0,0,0,1,1,1,1,1....}

Расчет выходного сигнала:

уо = 0,5xo + 0,5y-1 = 0; y1 = 0,5x1 + 0,5yo =0; y2 = 0,5x2 + 0,5y1 = 0.5; y3 = 0,5x3 + 0,5y2 = 0.25;

y4 = 0,5x4 + 0,5y3 = 0.125; y5 = 0,5x5 + 0,5y4 = 0.0625; y6 = 0,5x6 + 0,5y5 = 0.03125; и т.д.

Выходной сигнал: yk = {0, 0, 0.5, 0.25, 0.125, 0.0625, 0.03125, 0.015625,...}

Рис. 2.1.4. Рекурсивная фильтрация.

Из примера можно видеть, что реакция РЦФ на конечный входной сигнал (например, на единичный импульс Кронекера в точке 2), в результате действующей положительной обратной связи, в принципе, может иметь бесконечную длительность (в данном случае с близкими к нулю, но не нулевыми значениями), в отличие от реакции НЦФ, которая всегда ограничена количеством членов bk (окном фильтра). Фильтры такого типа называют также фильтрами с бесконечной импульсной характеристикой (БИХ-фильтры).

Пример.Уравнение РЦФ: yk = boxk - a1yk-1, при bo = 0.5, a1=1.1, y-1 = 0

Входной сигнал: xk = {0, 10, 0, 0, 0,....}.

Выходной сигнал: yk = {0,0,5,-5.5,6.05,-6.655,7.321,-8.053,8.858,-9.744,10.718,-11.79,… и т.д.}

Заметим: коэффициент обратной связи больше a1 > 1 и выходной сигнал идет "в разнос".

Рис. 2.1.5. Неустойчивый рекурсивный фильтр.

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

yk = (xk+xk-1)/2 + yk-1, (2.1.7)

т.е. здесь мы имеем РЦФ с коэффициентами: bo = b1 = 0.5, a1 = 1.

Пример.Уравнение РЦФ: yk=(xk+xk-1)/2+yk-1, начальные условия - нулевые.

Входной сигнал: xk={0,0,2,2,4,0,0,0,4,4,4,0,0,0,5,0,0,0,....}

Выполните фильтрацию. Контроль: yk= {0,0,0,1,3,6,8,8,8,10,14,18,20,20,20,22.5,25,25,25...}

2.1.6. Интегрирующий рекурсивный фильтр.