РЕАЛИЗАЦИЯ ФИЛЬТРОВ С БЕСКОНЕЧНОЙ ИМПУЛЬСНОЙ ХАРАКТЕРИСТИКОЙ НА FPGA
Обработка сигналов может осуществляться с помощью различных технических средств. В последнее десятилетие лидирующее положение занимает цифровая обработка, которая по сравнению с аналоговой имеет следующие преимущества: малую чувствительность к параметрам окружающей среды, простоту перепрограммирования и переносимость алгоритмов.
Использование цифровых автоматов на основе FPGA в системах с цифровой обработкой сигнала (ЦОС) вместо DSP и специализированных микросхем, как правило, связано с необходимостью получения высокой производительности, труднодостижимой на другой элементной базе.
Одной из распростран╦нных операций ЦОС является фильтрация. Вид импульсной характеристики цифрового фильтра (ЦФ) определяет их деление на ЦФ с конечной импульсной характеристикой (КИХ-фильтры) и ЦФ с бесконечной импульсной характеристикой (БИХ-фильтры).
Широкое применение цифровых КИХ-фильтров вызвано тем, что свойства их хорошо исследованы. Использование особенностей архитектуры ПЛИС FPGA позволяет проектировать компактные и быстрые КИХ-фильтры с использованием так называемой распредел╦нной арифметики [2]. В случае использования ПЛИС фирмы Xilinx программный модуль генерации параметризованных и оптимизированных под конкретную архитектуру модулей CORE Gen делает использование таких фильтров очень простым. Большой выбор настраиваемых параметров в CORE Gen позволяет быстро сгенерировать фильтр с оптимальными для данного приложения характеристиками (такими как плотность упаковки, степень параллелизма вычислений и др.). Недостатком КИХ-фильтров можно считать быстрый рост порядка фильтра с ростом отношения частоты дискретизации к частоте среза (и, соответственно, потребляемых фильтром ресурсов FPGA), а также рост потребляемых ресурсов с понижением степени распараллеливания вычислений (при повышении частоты дискретизации). Этот факт является существенным при необходимости проектирования цифровых фильтров с высокими частотой дискретизации и крутизной АЧХ, с большим отношением частоты дискретизации к частоте среза.
В этой статье предпринята попытка оценить реальные возможности использования БИХ-фильтров в качестве альтернативы КИХ-фильтрам. При схожих передаточных характеристиках БИХ-фильтры имеют, как правило, существенно меньшую вычислительную сложность, и порядок фильтра зависит, в первую очередь, от ширины переходной полосы. Основным препятствием при реализации таких фильтров, как правило, становится реализация быстродействующих умножителей большой разрядности. В связи с появлением нового семейства ПЛИС фирмы Xilinx Virtex-II (системные частоты до 420 МГц, логическая ╦мкость до 10 млн. системных вентилей, набор быстродействующих умножителей 18x18), в области реализации БИХ-фильтров появились новые возможности [1].
Наиболее часто используемая реализация БИХ-фильтра в виде последовательного соединения звеньев 2-го порядка обусловлена е╦ большей, по отношению к другим реализациям, устойчивостью и меньшими внутренними шумами. При этом выражение для передаточной характеристики фильтра N-го порядка выглядит следующим образом [3]:
Разностное уравнение звена 2-го порядка имеет вид:
Это уравнение может быть реализовано в виде структур различного вида. Один из вариантов привед╦н на рис. 1. Подобная структура позволяет получить более высокую скорость обработки потока данных, чем в канонической форме реализации фильтра.
Рисунок 1. Структурная схема звена 2-го порядка
Использование современных математических пакетов существенно упрощает расч╦т коэффициентов фильтра, анализ поведения фильтра при его реализации в виде устройства с конечной разрядной сеткой (искажения АЧХ, устойчивость, предельные циклы и так далее) и моделирование отклика фильтра на реальное воздействие.
Были реализованы два варианта звеньев второго порядка - в арифметике с фиксированной точкой и в арифметике с плавающей точкой. С уч╦том характеристик умножителей семейства Virtex-II в БИХ-фильтрах, предполагается, что в качестве коэффициентов используются 18-разрядные двоичные числа со знаком (в случае арифметики с фиксированной точкой) или числа с 16-разрядной мантиссой и 6-разрядным порядком (в случае арифметики с плавающей точкой). Переход к использованию арифметики с плавающей точкой связан с появлением на выходе фильтра незатухающих колебаний при уменьшении входного сигнала до нуля (предельные циклы). При моделировании фильтра амплитуда этих колебаний при различных условиях достигала 5√9 младших разрядов, что неприемлемо для некоторых задач. Для фильтров с плавающей точкой эта величина находилась в пределах 1√2 единиц младшего разряда.
Описание структуры в виде модуля на языке VHDL позволило получить легко перенастраиваемую заготовку для реализации фильтров с различными характеристиками (такими как разрядность входных данных и коэффициентов фильтра, точность внутренних вычислений). Реализация фильтров с переза-гружаемыми коэффициентами также не представляет сложности.
На рис. 2 приведена обобщ╦нная АЧХ-фильтра верхних частот (Fs - частота дискретизации, Fs/2 = 1). Для сравнения БИХ- и КИХ-фильтров в табл. 1 приведена зависимость порядка фильтра от соотношения Fs, Fstop, Fpass, Astop, Apass. Для расч╦та порядка КИХ-фильтра использовался алгоритм Ремеза. Аппроксимация БИХ-фильтра - эллиптическая. Разрядность коэффициентов выбиралась из соображения сохранения формы АЧХ и минимально допустимого уровня колебаний на выходе (в случае БИХ-фильтра). Входные данные - 18-разрядные двоичные числа со знаком.
Таблица 1. Зависимость порядка фильтра от параметров
╧ фильтра Вид импульсной характеристики Fstop Fpass Apass Astop Порядок фильтра 1 КИХ 0,1 0,2 40 1 30 2 БИХ 0,1 0,2 40 1 4 3 КИХ 0,1 0,15 40 1 60 4 БИХ 0,1 0,15 40 1 4 5 КИХ 0,025 0,05 40 1 120 6 БИХ 0,025 0,05 40 1 4 7 КИХ 0,1 0,2 60 1 44 8 БИХ 0,1 0,2 60 1 5 9 КИХ 0,1 0,15 60 1 86 10 БИХ 0,1 0,15 60 1 6 11 КИХ 0,025 0,05 60 1 170 12 БИХ 0,025 0,05 60 1 5
В таблице могут быть мелкие неточности, поэтому рекомендуем обратиться к файлу в формате .pdf
Рисунок 2. АЧХ проектируемого фильтра
Для сравнения характеристик по использованию ресурсов ПЛИС ниже приводятся таблицы для фильтров, спроектированных с параметрами из табл. 1 с указанием минимально возможного типа ПЛИС, количества занимаемых слайсов и предельной частотой дискретизации. КИХ-фильтры были сгенерированы с помощью CORE Gen. Проектирование БИХ-фильтров с плавающей точкой на VIRTEX не проводилось в связи с большим объ╦мом занимаемых ресурсов.
Анализируя табл. 2√6, можно сделать следующие выводы:
Таблица 2. Результаты проектирования КИХ-фильтров на Virtex-II
╧ фильтра Тип ПЛИС Кол-во слайсов Максимальная частота дискретизации, МГц 1 XC2V500-4 1851 139 3 XC2V1000-4 3778 122 5* XC2V1000-4 3757 50 7 XC2V500-4 2827 123 9 XC2V1000-4 5101 66 11* XC2V1000-4 3615 35
*) Тактовая частота фильтра в 2 раза выше частоты дискретизации.
В таблице могут быть мелкие неточности, поэтому рекомендуем обратиться к файлу в формате .pdf
Таблица 3. Результаты проектирования КИХ-фильтров на Virtex
╧ фильтра Тип ПЛИС Кол-во слайсов Максимальная частота дискретизации, МГц 1 XCV200-4 1832 62 3 XCV400-4 3712 71 5* XCV400-4 3757 29 7 XCV400-4 2799 64 9 XCV600-4 5044 56 11* XCV400-4 3590 23
*) Тактовая частота фильтра в 2 раза выше частоты дискретизации.
В таблице могут быть мелкие неточности, поэтому рекомендуем обратиться к файлу в формате .pdf
Таблица 4. Результаты проектирования БИХ-фильтров с фиксированной точкой на Virtex-II
╧ фильтра Тип ПЛИС Кол-во слайсов Кол-во умножителей Максимальная частота дискретизации, МГц 2, 4, 6 XC2V250-4 203 10 93 8, 12, 10 XC2V250-4 302 15 86
В таблице могут быть мелкие неточности, поэтому рекомендуем обратиться к файлу в формате .pdf
Таблица 5. Результаты проектирования БИХ-фильтров с фиксированной точкой на Virtex
╧ фильтра Тип ПЛИС Кол-во слайсов Кол-во умножителей Максимальная частота дискретизации, МГц 2, 4, 6 XCV100-4 814 27 8, 12 XCV150-4 1392 33 10 XCV150-4 1482 32
В таблице могут быть мелкие неточности, поэтому рекомендуем обратиться к файлу в формате .pdf
Таблица 6. Результаты проектирования БИХ-фильтров с плавающей точкой на Virtex-II
╧ фильтра Тип ПЛИС Кол-во слайсов Кол-во умножителей Максимальная частота дискретизации, МГц 2, 4, 6 XC2V500-4 2088 10 26 8, 12, 10 XC2V1000-4 3125 15 26
В таблице могут быть мелкие неточности, поэтому рекомендуем обратиться к файлу в формате .pdf
Наиболее быстрыми фильтрами являются КИХ-фильтры, у которых частота дискретизации совпадает с тактовой частотой. Они же являются наиболее дорогостоящими в смысле ресурсов.
Наиболее экономными с точки зрения ресурсов являются БИХ-фильтры с фиксированной точкой на Virtex-II. Существенное различие в объ╦мах используемых ресурсов между реализациями фильтров для семейств Virtex и Virtex-II связано с наличием в Virtex-II аппаратных умножителей.
БИХ-фильтры с плавающей запятой медленнее, чем БИХ-фильтры с фиксированной запятой и занимают больше ресурсов, но при моделировании с уч╦том конечной разрядной сетки показали существенно меньший уровень собственных шумов.
Также необходимо отметить более высокие рабочие частоты фильтров на Virtex-II, что связано с наличием в этом семействе дополнительных трассировочных ресурсов.