Цитата(otshelnik86 @ Nov 3 2008, 12:26)
синтезировал на С++ фильтр на основе частотной выборки (ФОЧВ) типа IV по Р.Лайонсу. Это КИХ фильтр на основе гребенчатого фильтра и набора резонаторов. Написано, что его ИХ имеет длину N.
Подаю на вход одну единицу и (N - 1) нулей, т.е. цифровую дельта-функцию. Т.о. на выходе должна быть ИХ фильтра. Получаю ее, беру ДПФ и получаю спектр. Предварительно, чтобы получить более точный спектр добавляю после ИХ 3*N нулей. В результате получается спектр такой, который я задавал сразу. Т.е. меня это на 100% удовлетворяет.
А потом возникает такая ситуация... Когда подаю на вход одну единицу и, к примеру, 3*N нулей, то на выходе получаю ПОВТОРЯЮЩУЮСЯ несколько раз ИХ фильтра - т.е периодический сигнал. Почему так? Ведь отклик должен затухнуть.
И еще такой вопрос. В книге приводится формула, где отсутствует в знаменателе гребенчатого фильтра N. Надо ли еще делить выходной отсчет на N?
P.S. использую значение r<1 для устойчивости фильтра.
Так как Ричарда Лайонса книги у меня нет, то могу только предположить, что речь идет о следующих фильтрах:
Hk(z) = [1 - (z^-N)]/[1 - 2*r*cos(2*pi*k/N)*(z^-1) +r*r*(z^-2)] (1)
Действительно, суммируя (с весовыми коэффициентами) выходы нескольких таких фильтров можно получить АЧХ в принципе любого вида.
Но, если r<1 (как в Вашем случае), то каждый из фильтров (1) будет по сути БИХ фильтром, так как полюс знаменателя не компенсирует ноль числителя (все нули располагаются на единичной окружности на z плоскости, а все полюса располагаются на окружности радиуса r).
В этом случае, если на вход такого фильтра подать цифровую дельта-функцию, то выходом фильтра будет бесконечная последовательность состоящая из коэффициентов ИХ фильтра.
А теперь можно попытаться объяснить, почему мы видим периодическое повторение ИХ фильтра (если я прав и если это не банальная ошибка в программе
, то ИХ должна повториться дважды, причем второй раз с большим затуханием).
Представим фильтр (1) в виде последовательного соединения двух фильтров:
- гребенчатого фильтра Hg(z) = 1 - (z^-N) (2)
- резонатора Hr(z) = 1 - 2*r*cos(2*pi*k/N)*(z^-1) +r*r*(z^-2) (3)
Импульсная характеристика фильтра (2) будет представлять собой два единичных всплеска с амплитудой +1 и -1 разделенных интервалом в N отсчетов.
Импульсная характеристика (бесконечная) фильтра (3) это отсчеты из затухающей косинусоиды.
Таким образом, в момент времени 0 мы возбуждаем резонатор (3) единичным (положительным) импульсом. На выходе резонатора появляется затухающая косинусоида. Далее, через N отсчетов мы еще раз возбуждаем резонатор единичным (отрицательным) импульсом, на выходе резонатора снова появляется затухающая последовательность из отсчетов косинусоиды, но уже в противофазе.
Если r=1(нет затухания резонатора) то две косинусоиды начиная с момента N полностью компенсируют друг друга и на выходе фильтра с этого момента времени будут идти нули, т.е. ИХ в этом случае, это ИХ КИХ фильтра.
На рисунках показана ИХ для r=0.999, r=0.95 и r=0.9 (N=32):
Эскизы прикрепленных изображений