Метод октавной цифровой фильтрации с сокращением объема вычислений на ПЛИС

№ 9’2008
PDF версия
В статье рассмотрен метод октавной фильтрации, который позволяет существенно сократить аппаратные затраты при реализации цифровых фильтров в ПЛИС. Это достигается за счет правильного выбора центральной частоты, полосы пропускания и окна цифрового фильтра. Метод особенно эффективен при исследовании гладких спектров.

Введение

В операциях цифровой обработки сигналов особое внимание уделяется цифровой фильтрации, которая в среднем занимает до половины всего объема вычислений. В узком смысле цифровой фильтр — это частотно-избирательная цепь, обеспечивающая селекцию цифровых сигналов по частоте [1]. После выполнения цифровой фильтрации мы, как правило, получаем интересующий нас сигнал, то есть сигнал, несущий нужную нам информацию в виде, удобном для последующей обработки. Соответственно, к параметрам цифровых фильтров в современных системах цифровой обработки сигналов начинают предъявляться повышенные требования. Частоты, на которых работают фильтры, нередко достигают нескольких сотен мегагерц и более. Поэтому, растет ширина полос фильтров. Увеличивается порядок фильтра, нередко достигая четырехзначных чисел, постепенно возрастает и разрядность обрабатываемых данных. Это ведет к увеличению объема вычислений, а значит, и к резкому росту аппаратных затрат.

При реализации цифровых фильтров с использованием программируемых логических интегральных схем (ПЛИС) встает вопрос минимизации количества составных элементов, необходимых для построения требуемого фильтра.

Одним из наиболее критичных элементов в ПЛИС является умножитель. В состав каждой ПЛИС входит фиксированное количество умножителей, которые могут быть использованы для построения определенного количества систем. Поэтому для оптимального использования ресурсов ПЛИС необходимо минимизировать не порядок фильтра, а число его ненулевых коэффициентов.

Рассмотрим метод октавной фильтрации [2], который может быть реализован в нерекурсивных цифровых фильтрах — фильтрах с конечной импульсной характеристикой (КИХ). Сущность метода заключается в таком выборе центральной частоты, полосы пропускания и окна цифрового фильтра, при которых около 75% импульсной характеристики фильтра приближаются к нулю.

Октавная фильтрация

Суть октавной фильтрации заключается в разделении исследуемого сигнала на октавные полосы частот. Октавная полоса частот (октава) — полоса частот, у которой отношение верхней граничной частоты к нижней равно 2. Соответственно, весь исследуемый частотный диапазон при помощи октавных фильтров разбивается на определенное количество октав, необходимое для дальнейшей обработки.

В общем же случае говорят об «m-октавной» фильтрации, когда соотношение верхней и нижней граничных частот полосы определяется выражением [1]:

fв/fн = 21/m,

где m ∈ 1, 2, 3 … ∞.

Возможность повышения достоверности оценки спектральной плотности мощности с одновременным сокращением объема вычислений делает методы m-октавной фильтрации весьма перспективными при исследовании гладких спектров, для которых существует возможность увеличения полосы частот без опасения потери характерных местных особенностей.

Наибольшее значение эти методы приобретают при неэргодическом характере сигнала, имеющем место, например, при исследовании неизотропных турбулизированных областей океана.

Кроме того, октавные полосы частот используют при проведении акустических расчетов и измерении шумов, а также в системах распознавания речи.

Метод октавной фильтрации с сокращением объема вычислений

Классический цифровой КИХ-фильтр, имеющий 2N+1 коэффициентов, характеризуется дискретным уравнением свертки [3]:

где x(i) — сигнал на входе фильтра; y(i) — сигнал на выходе фильтра; R(n) — импульсная характеристика фильтра.

Импульсную характеристику R(n) полосового фильтра, или ядро, можно представить в виде [3]:

где β — нормированный коэффициент усиления, определяемый как:

где fc — центральная частота фильтра; B — полоса пропускания; T — интервал дискретизации; H(nT) — временное окно, выбор формы которого определяет не только крутизну фронтов полосового фильтра, но и существенно влияет на количество необходимых вычислений.

Обозначим

a(nT) = (sin(BπnT))/BπnT и b(nT) = cos(2πfcnT),

при –N ≤ n ≤ N, тогда мы можем переписать выражение (1) в следующем виде:

R(nT) = βxH(nT)xа(nT)xb(nT). (2)

При заданном значении N единственно удобным (и возможным) средством повышения скорости вычислений является манипуляция свободными переменными fc , B и H(nT), так что некоторые из коэффициентов станут либо равными нулю, либо четными степенями 2.

Выбирая fc такой, чтобы выполнялось соотношение:

cos(2πfcnT) = cos((nπ)/2),

то есть

fc = 1/4T = fc/4,

где fs — частота дискретизации, получаем равные нулю значения каждого второго отсчета.

Индексы этих отсчетов задаются рядом:

Zb = {1, 3, 5, …, 2p+1 ≤ N},

а индексы ненулевых значений:

Zb = {0, 2, 4, 6, ѕ}.

Такой выбор fc дает еще одно важное качество — все ненулевые значения b(nT) равны 1:

cos(2πfcnT) = ±1.

Естественно, оба эти качества могут быть реализованы только при одной фиксированной частоте (относительно fs) настройки цифрового фильтра, однако имеется возможность ее перемещения по шкале частот за счет изменения самой fs по закону 2i (выбрасыванием четных отсчетов). Поэтому предъявление к fc требований в конечном итоге сводится к анализу спектра не одним, а целым набором фильтров, частоты настройки которых подчиняются октавному закону:

fci = fci x 2i–1.

Ширина полосы частот B, в свою очередь, может быть подобрана так, что все ненулевые значения a(nT) совпадут с нулевыми значениями b(nT). Для этого положим:

B = 1/(nT),

где n — четное.

Тогда для n = 4 получаем значение:

B = 1/4T = fc

и Za = {4, 8, 12, …},

а это соответствует полосе пропускания, равной центральной частоте, что и является характерным признаком октавной фильтрации.

В этом случае ядро фильтра:

при –N ≤ n ≤ N принимает нулевое значение при индексах ряда:

ZR =Za ∪ Zb = {1, 3, 5, 7, 8, 9, 11, …}.

Рассмотрим пример синтеза вышеописанного фильтра с помощью утилиты Fda Tool пакета математического моделирования MATLAB. Зададим следующие параметры: полосовой КИХ-фильтр; метод расчета — Kaizer Window; порядок фильтра — 36, то есть для нашего случая N будет равно 18; частота дискретизации — 12,8 кГц; верхняя граничная частота — 1,6 кГц; нижняя граничная частота — 4,8 кГц; данные представлены в формате с фиксированной запятой.

На рис. 1 изображена импульсная характеристика октавного фильтра при N = 18. Ненулевые коэффициенты импульсной характеристики такого фильтра обозначены стрелочками и имеют индексы ZR = {0, 2, 6, 10, 14, 18}.

Можно показать, что выбором формы временного окна Н(nТ) можно произвести дальнейшее сокращение ненулевых отсчетов ядра R(nT). Однако, учитывая малость величины выигрыша, обычно форму окна выбирают из соображений обеспечения минимального уровня боковых лепестков, а не минимизации вычислений.

Таким образом, процесс октавной фильтрации при использовании описанного метода сводится к следующим операциям:

  1. По соотношению (1) определяется выходной сигнал полосового октавного фильтра, выделяющего из анализируемого сигнала полосу fs/8 ÷ fs/4.
  2. Из исходной последовательности поточечно вычитается последовательность, полученная в п. 1. «Остаточные данные» соответствуют исходному сигналу с усеченным сверху спектром частот.
  3. Из полученных остаточных данных выбрасываются все четные отсчеты, благодаря чему спектр частот транспонируется в более низкочастотную область.
  4. Полученная последовательность подвергается повторной обработке по п. 1, 2, 3. Количество повторов определяется количеством октав исследуемого процесса. На рис. 2 представлен описанный алгоритм октавной фильтрации.

Стоит заметить, что если данный алгоритм применить к каждой из получившихся полос как к исходным данным, то мы получим m-октавную фильтрацию.

Рассмотренный выше алгоритм имеет два ограничения:

  1. Данные для последовательных полос неодинаковой длины и, следовательно, не могут быть сложены напрямую.
  2. Все полосы эффективно дискретизированы на удвоенной частоте Найквиста, которая может не обеспечить достаточного расширения данных.

Характеристики фильтра

Частотная характеристика описанных октавных полос несимметрична относительно их центральных частот (рис. 3). Причина такой асимметрии в том, что верхняя и нижняя переходные полосы являются результатом последовательных операций фильтрации. Верхняя переходная полоса самой высокочастотной октавной полосы определяется предварительными преобразованиями, которые исключаются из нашего обсуждения. Верхние переходные полосы всех последующих октавных полос являются результатом обработки остаточных данных (рис. 2). Для того чтобы выделить октавную полосу из остаточных данных необходимо произвести децимацию этих данных. Такая же операция приводит к делению на два нижней переходной полосы. Поэтому характеристики полос несимметричны.

Так как подавление в децибелах на октаву одинаковое для всех полос, то, если их изобразить в логарифмическом масштабе частоты, асимметрия не будет очевидной.

При необходимости получения симметричных характеристик октавных полос последует неизбежное увеличение числа коэффициентов фильтра в связи с тем, что для каждой будет нужен свой отдельный октавный фильтр, где Ni+1 = Ni/2, где i = 1, 2, …M для M-полос. При этом количество коэффициентов фильтра, необходимых для выделения первой октавной полосы, будет как минимум в четыре раза больше, чем для несимметричного случая. Соответственно, аппаратные затраты, как и количество умножителей, при реализации такого фильтра возрастут.

Реализация октавной фильтрации на ПЛИС

Теперь перейдем к реализации рассмотренного фильтра на ПЛИС. Синтезируем коэффициенты уже рассмотренного нами ранее октавного фильтра, порядок которого равен 36, при помощи утилиты Fda Tool пакета математического моделирования MATLAB. АЧХ этого фильтра изображена на рис. 4.

Коэффициенты фильтра, которые являются коэффициентами его импульсной характеристики, имеют следующие значения:

–0.000030517578125
0
0
0
0.002044677734375
0
0
0
–0.0153656005859375
0
0
0
0.06536865234375
0
0
0
–0.3020172119140625
0
0.4999847412109375
0
–0.3020172119140625
0
0
0
0.06536865234375
0
0
0
–0.0153656005859375
0
0
0
0.002044677734375
0
0
0
–0.000030517578125

Так как импульсная характеристика КИХ-фильтров симметрична, мы имеем шесть ненулевых коэффициентов фильтра.

Реализуем фильтр на ПЛИС EP2C20 семейства Cyclone2 фирмы Altera. Поскольку в выбранном ПЛИСе аппаратные умножители имеют разрядность 9×9, возьмем разрядность входных данных равной 17, а разрядность коэффициентов равной 18. В результате получим 12 используемых аппаратных умножителей. При реализации же в ПЛИСе стандартного КИХ-фильтра порядка 36 (37 коэффициентов) количество используемых аппаратных умножителей будет равно 38. Таким образом, количество используемых аппаратных умножителей сокращается более чем в три раза.

Заключение

Итак, мы рассмотрели простой и эффективный метод октавной фильтрации, который позволяет более чем в три раза сократить число ненулевых коэффициентов импульсной характеристики, что, в свою очередь, приводит к сокращению числа умножителей при реализации такого октавного фильтра в ПЛИСе. Уменьшая число умножителей, входящих в состав фильтра, мы можем добиться более рационального использования ресурсов микросхемы и, соответственно, повышения производительности системы.

Литература

  1. Солонина А. И., Улахович Д. А., Арбузов С. М., Соловьева Е. Б., Гук И. И. Основы цифровой обработки сигналов: Курс лекций. СПб.: БХВ-Петербург, 2003.
  2. Nelson G., Pfeifer L., Wood R. High-Speed Octave Band Digital Filtering. IEEE Transactions on audio and electroacoustics. Vol. AU-20, no. 1. 1972.
  3. Рабинер Л., Гоулд Б. Теория и применение цифровой обработки сигналов. М.: Мир. 1978.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *