Искусство схемотехники. Том 2 (Изд.4-е)
Шрифт:
Здесь xi являются дискретными выборками из входного сигнала, hk — весовые коэффициенты, а yi – значения выходного сигнала. В реальных условиях цифровой фильтр будет суммировать только конечное множество входных значений, как, например, в генераторе шума, где было использовано 32 члена. На рис. 9.91 схематично показано, как это происходит.
Рис. 9.91. Нерекурсивный
Заметьте, что такой фильтр может обладать интересным свойством симметричности во времени, т. е. усреднением прошлого и будущего для того, чтобы сформировать текущее значение выхода.
Разумеется, реальные аналоговые фильтры умеют лишь смотреть в прошлое и соответствуют цифровым фильтрам с ненулевыми весовыми коэффициентами только при k >= 0.
Частотная характеристика симметричного фильтра. Можно показать, что частотная характеристика симметричного фильтра (hk = h– k) имеет вид
где tотс — время между выборками (отсчетами). Нетрудно заметить, что hk представляют собой коэффициенты разложения в ряд Фурье требуемой частотной характеристики. Это объясняет, почему в случае представленной ранее схемы генератора весовые коэффициенты были выбраны в соответствии с функцией (sin x)/x: они являются компонентами Фурье заграждающего НЧ-фильтра. В таких симметричных фильтрах фазовый сдвиг на любой частоте либо равен 0, либо 180°.
Рекурсивные фильтры. Можно получить интересный класс цифровых фильтров, если на вход фильтра в дополнение к внешнему входному сигналу подать собственный выходной сигнал фильтра. Такой фильтр можно рассматривать как фильтр с обратной связью. Он имеет причудливое название рекурсивный фильтр (или с бесконечной импульсной характеристикой) в противоположность рассмотренному выше нерекурсивному (с конечной импульсной характеристикой) фильтру. Можно, например, сформировать выходной сигнал в соответствии со следующим выражением:
yi= Ayi-1 + (1 — A)xi
Это соответствует низкочастотной характеристике, эквивалентной той, которой обладает простой низкочастотный RC-фильтр
А = е– tотс/RC
где tотс – интервал времени между последовательными выборками хi из входного сигнала. Эта ситуация, конечно, не является идентичной ситуации с аналоговым низкочастотным фильтром, работающим с аналоговым сигналом, по причине дискретной природы отсчетов.
Пример НЧ-фильтра. В качестве числового примера предположим, что вам требуется отфильтровать ряд числовых значений, соответствующих сигналу с затуханием 3 дБ на частоте f3 дб = 1/20tотс. Таким образом, постоянная времени соответствует интервалу времени 20 последовательных отсчетов. В этом случае А = 0,95123, а выходной сигнал определяется по выражению yi = 0,95123yi-1 + 0,04877хi.
Для обработки данных уже представленных в виде дискретных отсчетов, как, например, массив данных в компьютере, вы, возможно, предпочтете использовать такой фильтр. Рекурсивный фильтр при этом будет реализовываться с помощью однократного прохода по данным с тривиальной арифметической обработкой. Программа НЧ-фильтра на языке Фортран будет выглядеть следующим образом:
A = exp(-TS/TC)
В = 1. — А
DO 10I = 2,N
10X(I) = A*X(I — 1) + B*X(I),
где X — матрица данных, TS — интервал времени между отсчетами (т. е. TS = 1/tотс), а ТС — выбранная постоянная времени фильтра. Эта маленькая программа осуществляет фильтрацию на месте, т. е. она заменяет первоначальные данные отфильтрованными. Можно, конечно, создавать из отфильтрованных данных отдельный массив.
НЧ-фильтр с коммутацией. Такой же фильтр можно построить аппаратным путем, используя схему, показанную на рис. 9.92.
Рис. 9.92. Рекурсивный фильтр на коммутируемых конденсаторах.
Ключи на полевых транзисторах S1 и S2 коммутируются с некоторой тактовой частотой, периодически заряжая конденсатор С1 до входного напряжения и затем передавая его заряд на конденсатор С2. Если С2 имеет напряжение U2, а С1 заряжается до входного уровня U1, то при подключении С1 к С2 напряжение на обоих конденсаторах будет определяться соотношением U = (С1U1 + С2U2)/(C1 + С2), что эквивалентно рассмотренному ранее рекурсивному фильтру при
уi= С2/(C1 + C2)уi-1 + С1/(C1 + C2)xi.
Приравнивая эти коэффициенты к заданному ранее значению А, получим
f3 дB = (1/2)fотсln(C1 + C2)/C2.