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


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

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

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

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

W(z) =

Алгоритмы программ цифровых фильтров Y(z) Алгоритмы программ цифровых фильтровАлгоритмы программ цифровых фильтров b0+b1z-1+...+bmz-m

- стандартная форма
для дискретных ПФ

Алгоритмы программ цифровых фильтров Алгоритмы программ цифровых фильтров
X(z) a0+a1z-1+...+akz-k
Алгоритмы программ цифровых фильтров

W(z) =

Алгоритмы программ цифровых фильтров Y(z) Алгоритмы программ цифровых фильтровАлгоритмы программ цифровых фильтров K Алгоритмы программ цифровых фильтров 1+e2z-1 Алгоритмы программ цифровых фильтровАлгоритмы программ цифровых фильтров 1+ekz-1

- разложение z-ПФ
на множители [1]

Алгоритмы программ цифровых фильтров Алгоритмы программ цифровых фильтров Алгоритмы программ цифровых фильтров Алгоритмы программ цифровых фильтров
X(z) 1+d1z-1 1+d2z-1 1+dkz-1
Алгоритмы программ цифровых фильтров

W(z) =

Алгоритмы программ цифровых фильтров Y(z) Алгоритмы программ цифровых фильтровАлгоритмы программ цифровых фильтров P1 Алгоритмы программ цифровых фильтровАлгоритмы программ цифровых фильтров P2 Алгоритмы программ цифровых фильтровАлгоритмы программ цифровых фильтров Pk

- разложение z-ПФ
на элементарные
дроби [1]

Алгоритмы программ цифровых фильтров Алгоритмы программ цифровых фильтров Алгоритмы программ цифровых фильтров Алгоритмы программ цифровых фильтров
X(z) 1+d1z-1 1+d2z-1 1+dkz-1

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

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

Алгоритмы программ цифровых фильтров
Рисунок 1

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

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

После разложений, каждый из множителей в форме Алгоритмы программ цифровых фильтровАлгоритмы программ цифровых фильтров следует представить в стандартной форме Алгоритмы программ цифровых фильтровАлгоритмы программ цифровых фильтров соответствует разностное уравнение (РУ):

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

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

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

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

Структурной схеме соответствует алгоритм Алгоритмы программ цифровых фильтров
Условие физической реализуемости - а0 № 0
Рисунок 2

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

Структурной схеме соответствует алгоритм Алгоритмы программ цифровых фильтров
Условие физической реализуемости - а0 № 0
Рисунок 3

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

Алгоритмы программ цифровых фильтров
Рисунок 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.

Выберем коэффициенты z-ПФ для расчета переходной характеристики и построим ее:

K=
b0=  b1=  b2=
a0=  a1=  a2=



Содержание раздела