Интернет-журнал "Домашняя лаборатория", 2007 №8
Шрифт:
ТИПЫ ЦИФРОВЫХ ФИЛЬТРОВ
• Фильтр скользящего среднего
• Фильтр с конечной импульсной характеристикой (КИХ)
? Линейная фаза
? Легкость проектирования
? Значительные вычислительные затраты
• Фильтр с бесконечной импульсной характеристикой
? Основаны на классических аналоговых фильтрах
? Высокая вычислительная эффективность
• Решетчатые фильтры (могут быть КИХ или БИХ)
• Адаптивные фильтры
Рис. 6.5
Элементарной формой КИХ-фильтра является фильтр скользящего среднего (moving average), показанный на рис. 6.6.
Фильтры
С учетом равенства коэффициентов, наиболее простой путь исполнения фильтра скользящего среднего представлен на рис. 6.7. Обратите внимание, что первым шагом является запоминание первых четырех отсчетов х(0), х(1), х(2), х(3) в регистрах. Эти величины суммируются и затем умножаются на 0,25 для получения первого выхода у(3). Обратите внимание, что начальные значения выходов у(0), у(1) и у(2) некорректны, потому что, пока отсчет х(3) не получен, не все регистры заполнены.
Когда получен отсчет х(4), он суммируется с результатом, а отсчет х(0) вычитается из результата. Затем новый результат должен быть умножен на 0,25. Поэтому вычисления, требуемые для получения нового значения на выходе, состоят из одного суммирования, одного вычитания и одного умножения, независимо от длины фильтра скользящего среднего.
Реакция 4-точечного фильтра скользящего среднего на ступенчатое воздействие представлена на рис. 6.8.
Обратите внимание, что фильтр скользящего среднего не имеет выброса по фронту входного сигнала. Это делает его полезным в приложениях обработки сигналов, где требуется фильтрация случайного белого шума при сохранении характера входного импульса. Из всех возможных линейных фильтров фильтр скользящего среднего дает самый низкий уровень шума при заданной крутизне фронта импульса. Это показано на рис. 6.9, где уровень шума понижается по мере увеличения числа точек. Существенно, что время реакции фильтра на ступенчатое воздействие от 0 % до 100 % равно произведению общего количества точек фильтра на период дискретизации.
Частотная характеристика простого фильтра скользящего среднего выражается функцией sin(x)/x. Она представлена в линейном масштабе на рис. 6.10. Увеличение числа точек при реализации фильтра сужает основной лепесток, но существенно не уменьшает амплитуду боковых лепестков частотной характеристики, которая равна приблизительно -14 дБ для фильтра с 11 и с 31 отводами (длиной буфера). Естественно, эти фильтры не подходят в том случае, где требуется большое ослабление в полосе задержания.
Можно существенно улучшить эффективность простого КИХ-фильтра скользящего среднего, выбирая разные веса или значения коэффициентов вместо равных значений. Крутизна спада может быть увеличена добавлением
большего количества звеньев в фильтр, а характеристики полосы затухания улучшаются выбором надлежащих коэффициентов фильтра. Обратите внимание, что, в отличие от фильтра скользящего среднего, для реализации каждой ступени обобщенного КИХ-фильтра требуется цикл умножения с накоплением. Сущность проектирования КИХ-фильтра сводится к выбору соответствующих коэффициентов и необходимого числа звеньев при формировании желаемой частотной характеристики фильтра H(f). Для включения необходимой частотной характеристики H(f) в набор КИХ-коэффициентов имеются различные алгоритмы и программные пакеты. Большинство этого программного обеспечения разработано для персональных компьютеров и доступно на рынке. Ключевой теоремой проектирования КИХ-фильтра является утверждение, что коэффициенты h(n) КИХ-фильтра являются просто квантованными значениями импульсной характеристики этого фильтра. Соответственно, импульсная характеристика является дискретным преобразованием Фурье от H(f).Обобщенная форма КИХ-фильтра с числом звеньев N представлена на рис. 6.11. Как было сказано, КИХ-фильтр должен работать в соответствии с уравнением, задающим свертку:
где h(k) — массив коэффициентов фильтра и x(n-k) — входной массив данных фильтра. Число N в уравнении представляет собой число звеньев и определяет эффективность фильтра, как было сказано выше. КИХ-фильтр с числом звеньев N требует N циклов (операций) умножения с накоплением.
Согласно рис. 6.12, диаграммы КИХ-фильтров часто изображаются в упрощенном виде. Операции суммирования представляются стрелками, указывающими в точки, а операции умножения обозначают, помещая коэффициенты h(k) рядом со стрелками на линиях. Элемент задержки z– 1 показывают, помещая его обозначение выше или рядом с соответствующей линией.
РЕАЛИЗАЦИЯ КИХ-ФИЛЬТРА НА ПРОЦЕССОРЕ DSP С ИСПОЛЬЗОВАНИЕМ ЦИКЛИЧЕСКИХ БУФЕРОВ
В рядах, задаваемых уравнениями КИХ-фильтров, предполагается последовательное обращение к N коэффициентам от h(0) до h(N-1). Соответствующие точки данных циркулируют в памяти. При этом добавляются новые отсчеты данных, заменяя самые старые, и каждый раз производится вычисление выходного значения фильтра. Для реализации циклического буфера может использоваться фиксированный объем оперативной памяти, как показано на рис. 6.13 для КИХ-фильтра с 4 звеньями. Самый старый отсчет данных заменяется новым после каждой операции вычисления свертки. Выборка из четырех последних отсчетов данных всегда сохраняется в оперативной памяти.
Чтобы упростить адресацию, чтение из памяти старых значений начинается с адреса, который следует непосредственно за адресом только что записанного нового элемента выборки. Например, если значение х(4) только что записано в ячейку памяти 0, то значения данных читаются из ячеек 1, 2, 3 и 0. Этот пример может быть расширен применительно к любому числу звеньев фильтра. Используя адресацию ячеек памяти таким способом, адресный генератор должен лишь вычислять последовательные адреса, независимо от того, является ли данная операция чтением памяти или записью. Такой буфер в памяти данных называется циклическим, потому что, когда достигается его последняя ячейка, указатель автоматически позиционируется на начало буфера.