Мы хотим найти два фильтра, h (подавляющий высокие частоты) и g
(подавляющий низкие частоты), которые позволяли бы разложить сигнал на
две компоненты,
и
, вдвое
их проредить (половина значений становится лишней – ведь частотный диапазон
сократился вдвое!), а затем, с помощью транспонированных фильтров, точно
восстановить по этим данным исходный сигнал (эту операцию можно
применять рекурсивно). Условия на искомые фильтры удобно записать в терминах
z-преобразования.
Пусть –
z-преобразование одной из компонент. Перед кодированием она
прореживается вдвое, а перед восстановлением исходного сигнала доводится до
исходной длины вставкой нулей между соседними значениями. При этом z-преобразование
из
превращается в
.
Подставим сюда (1.1’) для каждого из фильтров, и получим z-преобразования
компонент перед восстановлением
z-преобразования транспонированных фильтров имеют вид
и
. Сигнал
восстановится с их помощью точно, если:
Получаем условия точного восстановления (perfect reconstruction, PR):
В матричной форме они записываются так:
где
Подставив , получим
условия на ДПФ искомых фильтров:
Допустим, что мы нашли h такой, что
(1.2’)
Тогда, положив
(1.3)
мы видим, что (1.2) выполняется. Задача свелась к нахождению
тригонометрического многочлена ,
удовлетворяющего (1.2’). На методах построения таких многочленов мы
остановимся в следующей лекции. Фильтры h и g, удовлетворяющие
(1.2), называются квадратурными зеркальными фильтрами (quadrature mirror
filters, QMF).
На рис.1, (a) и (b), показаны ДПФ такой пары фильтров h и g, а также исходный сигнал до и после фильтрации (без прореживания).
Точно такую же операцию можно применить к одной или обеим из полученных компонент, и т.д., добиваясь нужной локализации по частоте. Это позволяет адаптироваться к особенностям сигнала за счет выбора подходящего “дерева разложения”. Оно может выглядеть, например, так: