Алгоритмы программ цифровых фильтров

Существует три основных алгоритма программной реализации дискретных передаточных функций (z-ПФ):

Алгоритм Требуемое быстродействие Объём памяти
алгоритмы программ цифровых фильтров - student2.ru Непосредственный а) с двумя буферами б) с одним буфером 24(m+k+1) / Tц 9m+9k+12
алгоритмы программ цифровых фильтров - student2.ru Последовательный 52k / Tц 20k+10
алгоритмы программ цифровых фильтров - student2.ru Параллельный 50k / Tц 19k+8

Дискретную ПФ можно представить в любой из форм:

алгоритмы программ цифровых фильтров - student2.ru W(z ) = алгоритмы программ цифровых фильтров - student2.ru Y(z) алгоритмы программ цифровых фильтров - student2.ru = алгоритмы программ цифровых фильтров - student2.ru b0+b1z-1+...+bmz-m - стандартная форма для дискретных ПФ
алгоритмы программ цифровых фильтров - student2.ru алгоритмы программ цифровых фильтров - student2.ru
X(z) a0+a1z-1+...+akz-k
алгоритмы программ цифровых фильтров - student2.ru W(z ) = алгоритмы программ цифровых фильтров - student2.ru Y(z) алгоритмы программ цифровых фильтров - student2.ru = алгоритмы программ цифровых фильтров - student2.ru K алгоритмы программ цифровых фильтров - student2.ru 1+e2z-1 алгоритмы программ цифровых фильтров - student2.ru ... алгоритмы программ цифровых фильтров - student2.ru 1+ekz-1 - разложение z-ПФ на множители [1]
алгоритмы программ цифровых фильтров - student2.ru алгоритмы программ цифровых фильтров - student2.ru алгоритмы программ цифровых фильтров - student2.ru алгоритмы программ цифровых фильтров - student2.ru
X(z) 1+d1z-1 1+d2z-1 1+dkz-1
алгоритмы программ цифровых фильтров - student2.ru W(z ) = алгоритмы программ цифровых фильтров - student2.ru Y(z) алгоритмы программ цифровых фильтров - student2.ru = алгоритмы программ цифровых фильтров - student2.ru P1 алгоритмы программ цифровых фильтров - student2.ru + алгоритмы программ цифровых фильтров - student2.ru P2 алгоритмы программ цифровых фильтров - student2.ru +...+ алгоритмы программ цифровых фильтров - student2.ru Pk - разложение z-ПФ на элементарные дроби [1]
алгоритмы программ цифровых фильтров - student2.ru алгоритмы программ цифровых фильтров - student2.ru алгоритмы программ цифровых фильтров - student2.ru алгоритмы программ цифровых фильтров - student2.ru
X(z) 1+d1z-1 1+d2z-1 1+dkz-1

где: ei - нули z-ПФ; di - полюса z-ПФ; a0 - не равно нулю; Pi - коэффициенты разложения

Этим формам представления z-ПФ соответствуют структурные схемы изображенные на рис. 1.

алгоритмы программ цифровых фильтров - student2.ru

Рис. 1

  • Разложения алгоритмы программ цифровых фильтров - student2.ru и алгоритмы программ цифровых фильтров - student2.ru делают параметры z-ПФ независимыми, позволяют контролировать ряд дополнительных фазовых координат: x1[n], x2[n], ..., xk-1[n]; или y1[n], y2[n], ..., yk[n] - что удобно при отладке систем.
  • Последовательная структура алгоритмы программ цифровых фильтров - student2.ru удобна при синтезе дискретной коррекции.
  • Параллельная структура алгоритмы программ цифровых фильтров - student2.ru удобна для построения цифровых регуляторов.
  • Разложение z-ПФ на элементарные дроби алгоритмы программ цифровых фильтров - student2.ru позволяет реализовать z-ПФ на параллельно работающих ЦВМ для повышения быстродействия.

Перечисленные факторы определяют выбор алгоритма программы для ЦВМ.

После разложений, каждый из множителей в форме алгоритмы программ цифровых фильтров - student2.ru или каждую из элементарных дробей в форме алгоритмы программ цифровых фильтров - student2.ru следует представить в стандартной форме алгоритмы программ цифровых фильтров - student2.ru (с отрицательными степенями оператора z). Переход к разностным уравнениям будет един. z-ПФ в форме алгоритмы программ цифровых фильтров - student2.ru соответствует разностное уравнение (РУ):

алгоритмы программ цифровых фильтров - student2.ru ,

по которому и составляется программа. Поскольку текущее значение выходной координаты y[n] рассчитывается по предыдущим значениям y[n-1], y[n-2], y[n-k] - данное РУ называется рекурсивным.

Изобразим структурную схему цифрового фильтра для этого уравнения (см. рис. 2). Ее можно преобразовать, объединив два буфера (см. рис. 3). Цепочки элементов z-1 в программах будут соответствовать буферам из ячеек памяти, данные в которых сдвигаются на каждом такте дискретизации. Обе структурные схемы можно составить из простейших блоков программы VisSim.

алгоритмы программ цифровых фильтров - student2.ru

Структурной схеме соответствует алгоритм алгоритмы программ цифровых фильтров - student2.ru а.

Условие физической реализуемости - а0 ¹0

Рис. 2

алгоритмы программ цифровых фильтров - student2.ru

Структурной схеме соответствует алгоритм алгоритмы программ цифровых фильтров - student2.ru б.

Условие физической реализуемости - а0 ¹0

Рис. 3

Если выбран последовательный алгоритмы программ цифровых фильтров - student2.ru или параллельный алгоритмы программ цифровых фильтров - student2.ru алгоритм, то структура каждого множителя или элементарной дроби первого порядка (см. рис. 1) будет иметь более простой вид (см. рис. 4).

алгоритмы программ цифровых фильтров - student2.ru

Рис. 4

Согласно структурной схеме рис. 2, составим процедуру реализующую дискретную ПФ второго порядка:

function y_zW(x) { y=( k * (x*b0+xz_1*b1+xz_2*b2) - ( yz_1*a1+yz_2*a2) ) / a0; xz_2=xz_1; xz_1=x; yz_2=yz_1; yz_1=y; return y;};

где: xz_2, xz_1 и yz_2, yz_1 - ячейки двух буферов, т.е. регистры задержки - z -1.

Наши рекомендации