Методика проектування цифрових фільтрів з застосуванням VHDL



Запропонована методика проектування цифрових фільтрів, що складається з етапів цілочисельної оптимізації коефіцієнтів фільтру, формування його структури та її моделювання. Використання мови VHDL на усіх етапах проектування дає змогу пришвидшити проектування та покращити характеристики фільтрів. Ефективність методики показана на прикладах проектування рекурсивних фільтрів без блоків множення.

Кючові слова: VHDL, ПЛІС IIR filter, allpass filter, web-application

Сергієнко Анатолій Михайлович, старший науковий співробітник, НТУУ “КПІ”, каф. Обчислювальної техніки, Україна,

Сергієнко Анастасія Анатоліївна, аспірант, НТУУ “КПІ”, кафедра системного програмування і спеціалізованих комп’ютерних систем, Україна

Method of the Digital Filter Design using VHDL

A methodis proposed, which consists in integer searching for the filter coefficients, forming the filter structure and modeling it. The use of the VHDL language in all the steps of the filter design helps to speed-up and improve the filter optimization. Examples of the multiplier-less IIR filter design shows the method effectiveness.

Keywords: VHDL, FPGA, IIR filter, allpass filter, web-applicatio

Sergiyenko Anatolij Mikhalilovich, senior scientist, NTUU “KPI”, Computer Engineering Dep-t, Ukraine,

Serhienko Anastasia Anatoliivna, graduate student, NTUU “KPI”, Application Specific Computer Dep-t, Ukraine

Вступ

Традиційна методика розробки цифрового фільтру для реалізації у програмованій логічній інтегральній схемі (ПЛІС) полягає у виконанні наступних кроків. За допомогою певної САПР, наприклад, Matlab, шукаються коефіцієнти фільтру, які задоволь­няють задані обмеження ампітудо-частотної характеристики (АЧХ). Далі ці коефіцієнти перетворюються у цілочисельні або двійкові числа з округленням та перевіркою АЧХ. Коефіцієнти заван­тажуються у модель фільтра,яка є віртуальним модулем, що поставляється виробником ПЛІС разом з відповідною САПР або розробляється за допомогою мови VHDL чи Verilog. І нарешті, модель фільтра тестується у відповідному стенді для іспитів [1].

Недоліком такої методики є те, що необхідно використо­вувати окрему програму типу Matlab, яка має недешеву ліцензію. Також для кожного варіанту округлення коефіцієнтів слід перевіряти відповідність одержаної АЧХ заданій. Причому на АЧХ можуть впливати особливості структури фільтра, округлення проміжних результатів, тощо.

У доповіді пропонується використовувати мову VHDL як для пошуку коефіцієнтів, так і для опису структури фільтрів та їх випробування.

Можливості VHDL для розробки цифрових фільтрів

Мова VHDL традиційно використовується для опису струк­тур різноманітних спеціалізованих обчислювачів та їх подальшої трансляції у прошивку ПЛІС. Але її можливості по математичній обробці даних є недооціненими. У склад бібліотеки IEEE мови VHDL входять бібліотеки констант і функцій з плаваючою комою MATH_REAL та типів і функцій обробки комплексних чисел MATH_COMPLEX. У цих бібліотеках є багато функцій, що допомагають досліджувати алгоритми цифрової обробки сигналів. Крім того на основі цих пакетів авторами були розроблені підпрограми вирішення систем лінійних рівнянь та дискретного перетворення Фур’є. Отже, можливості мови та симулятора VHDL наближаються до можливостей системи Matlab [2].

У дослідженні цифрових фільтрів, як правило, використовується комплексна змінна $Z={{e}^{j\varphi}}$. Для її одержання у VHDL можна застосувати функцію:

Тепер можна описати передаточну функцію, наприклад, фільтра нижніх частот на базі фазового фільтра

\[H\left(Z \right)=1+\frac{a+b{{Z}^{-1}}+{{Z}^{-2}}}{1+b{{Z}^{-1}}+a{{Z}^{-2}}};\quad\quad\quad(1)\]

за допомогою функції:

Далі коефіцієнти a і b можуть бути розраховані за допомогою відношень [3]:

\[a=\frac{1-tg\Delta f}{1+tg\Delta f};b=-\cos {{f}_{C}}\cdot \left( 1+a \right),\]

де $\Delta f$ –ширина перехідної смуги, рад., ${{f}_{C}}$ частота зрізу, рад.

Округленні цілочисельні значення коефіцієнтів уточнюють за допо­могою їх перебору у деяких околах а і b. При цьому коефіцієнти підбираються так, щоб передаточна функція (1) мала оптимальну форму АЧХ. Обчислити передаточну функцію у ряді частотних точок, тобто, побудувати АЧХ, можна за допомогою наступного оператора процесу:

При виконанні цього процесу за тисячу тактів синхросигналу на екрані VHDL-симулятора побудуються графіки амплітуди у лінійному та логарифмічному масштабах та фази передаточної функції H(Z) [4].

Одержані коефіцієнти фільтру вставляються у модель фільтра, що реалізується. Ця модель може бути протестована за допомогою стенду для іспитів, який запропоновано у [5]. При цьому на входи двох екземплярів фільтру (рис.1) подаються квадратурні складові аналітичного синусного сигналу, частота якого змінюється за лінійним законом. Як результат моделювання, одержуються графіки оброблених вихідних сигналів у вигляді амплітуди та фази передаточної функції.

Рис.1. Стенд для вимірювання передаточної функції фільтру

Експериментальні результати

Методика розробки цифрових фільтрів з використанням VHDL була спробувана при розробці різних цифрових фільтрів, що реалізуються у ПЛІС. Як приклад, була розроблена велика множина ре­курсивних фільтрів без блоків множення. Для такого фільтра викорис­то­ву­вались передаточні функції на основі функції (1) та коефіцієнти, що пред­ставляються у знаковій квазіканонічній двійковій системі з числом ненульо­вих розрядів не більше трьох. Пошук таких коефіцієнтів виконувався шляхом перебору можливих коефіцієнтів, запуску оператора процесу, що описаний вище та перевірці виходу точок АЧХ за встановлені межі у спеціальній програмі на VHDL.

Одержана множина коефіцієнтів ефективних фільтрів з графіками їхніх передаточних функцій була внесена у базу даних, на основі якої було створено web-застосунок для генерування моделей цифрових фільтрів, опи­саних мовою VHDL [6]. Рекурсивні фільтри, що генеруються, мають невеликі апаратні витрати (80-300 логічних таблиць без боків множення), задовільну передаточну характеристику (рівень придушення – більше 30 дб, крутизна у перехідній смузі – до 300 дб/октава) і високу частоту дискретизації сигналів, що обробляються (до 250 - 1000 МГц) при їх реалізації у сучасних ПЛІС.

Висновки

Мова VHDL дає змогу розробляти цифрові фільтри, не виходячи за межі редактора і симулятора. При цьому можливості швидкого моделювання складних оптимізаційних процесів забезпечують ефективний пошук опти­маль­них структурних рішень. На відміну від використання таких поширених засобів проектування, як Matlab, стимулятор VHDL забезпечує перевірку функціонування фільтра, що проектується, з урахуванням як фіксованої розрядності коефіцієнтів і даних, так і способу виконання арифметичних операцій та інших особливостей його реалізації у ПЛІС.

Перелік посилань

$1.$ Khan S. A. Digital Design of Signal Processing Systems. A Practical Approach. — UK: JohnWiley & Sons, 2011. — 586 P.

$2.$ Сергиенко А.М. VHDL против Matlab'a // Argc&Argv. Программирование / информационные технологии / стандарты, 2005. — Т. 58. —№ 1. — С. 40-46.

$3.$ Vaidyanathan P.P. The Digital All-Pass Filter: A Versatile Signal Processing Building Block /P. Regalia, S.K. Mitra, P.P. Vaidyanathan // Proc. IEEE. – 1988. – V. 76. – № 1. – P. 19-37.

$4.$ Sergiyenko A. IIR filter analysis using VHDL. Allpass, multiple delay, and masking filters [electronic resource] / A.Sergiyenko / — Kiev: NTUU “KPI”, 2012. — Available at: http://kanyevsky.kpi.ua/fpgadesign/dsp\_rab2eng.html.

$5.$ Sergiyenko A. Testbench for the filter testing [electronic resource] / A. Sergiyenko / — Kiev: NTUU “KPI”, 2012. — Available at: http://kanyevsky.kpi.ua/useful\_core/testbench\_for\_filter.html .

$6.$ Сергієнко А. М. Генератор рекурсивних фільтрів без блоків множення [електронний ресурс] / А. М.Сергієнко, А. А. Сергієнко / НТУУ “КПІ”, 2016.— Режим доступу: http://kanyevsky.kpi.ua/GEN\_MODUL/APgen/FiltergenAP\_ukr.php

Mar 29, 2017