УДК 621.396.96
ПРОЕКТИРОВАНИЕ КИХ - ФИЛЬТРОВ В БАЗИСЕ ПЛИС ФИРМЫ ALTERA
А.В. Строгонов, Д. А. Борисов
В статье рассматриваются вопросы проектирования цифровых фильтров с конечной импульсной характеристикой в базисе программируемых логических интегральных схем (ПЛИС) фирмы Altera с использованием системы Matlab/Simulink и САПР ПлИс Quartus II
Ключевые слова: КИХ - фильтр, моделирование, мегафункция
Одной из распространённых операций цифровой обработки сигналов является фильтрация, для реализации которой могут быть использованы программно-аппаратные ресурсы цифровых сигнальных процессоров; ПЛИС по архитектуре FPGA (программируемые пользователем вентильные матрицы); различные операционные устройства: регистры, умножители, сумматоры и соответствующее управляющее устройство; программная реализация с использованием высокоуровневых языков.
Вид импульсной характеристики цифрового фильтра определяет их деление на фильтры с конечной импульсной характеристикой (КИХ-фильтры) и фильтры с бесконечной импульсной характеристикой (БИХ-фильтры). Широкое применение цифровых КИХ-фильтров вызвано тем, что свойства их хорошо исследованы. Использование особенностей архитектуры ПЛИС FPGA позволяет проектировать компактные и быстрые КИХ-фильтры с использованием распределённой арифметики [1-3].
Цель примера спроектировать два одинаковых по характеристикам КИХ-фильтра в среде FDATool системы Matlab/Simulink и с использованием мегафункции Mega Core FIR Compiler САПР ПЛИС Quartus II. Главным достоинством среды FDATool от других программ расчета КИХ-фильтров является возможность генерации кода языка VHDL с использованием Simulink HDL Coder.
Использование Mega Core Fir Compiler позволяет быстро спроектировать цифровой КИХ-фильтр исходя из заданных параметров. Быстрота и малая трудоемкость расчетов делает данное программное обеспечение незаменимым при проектировании КИХ-фильтров в базисе ПЛИС фирмы Altera. Настроим мегафункцию так, чтобы АЧХ и импульсные характеристики совпадали с характеристиками фильтра построенного с использованием FDATool системы Matlab/Simulink.
Строгонов Андрей Владимирович - ВГТУ, д-р техн. наук, профессор, [email protected] Борисов Дмитрий Александрович - ВГТУ, студент, borisov dmitrii @таЦ.ги
Исходные данные для расчета КИХ-фильтра нижних частот:
1) тип фильтра (Filter type);
2) частота взятия отчетов (Input Sample Rate) FS , Гц;
2) выбор порядка фильтра (Number of Taps) n ;
3) частота среза (CutOff Freq) или граница полосы задерживания, Гц;
5) неравномерность АЧХ в полосе пропускания (Passband Ripple) Rp , Дб;
6) минимальное затухание в полосе задерживания (Stopband Reject) RS , Дб;
7) ширина переходной полосы (Transition Bandwidth), равная разности границы полосы задерживания минус граница полосы пропускания (в явном виде не задается), Гц;
8) тип окна (Window Type).
Для расчета КИХ-фильтра используются следующие данные (таблица):
Исходные данные для расчета КИХ-фильтра НЧ
Параметры фильтра Значение
Filter type Low Pass (ФНЧ)
Input Sample Rate (Fs), Гц 11000
Number of Taps 53
Window Type Blackman
CutOff Freq (Fs), Гц 1750
Passband Ripple (Rp), Дб 0,1
Stopband Reject (Rs), Дб 60
Transition Bandwidth, Гц 50
При запуске мегафункции Mega Core FIR Compiler открываются диалоговые окна мастера, в котором последовательно предлагается задать имя проекта, разрядность входной шины данных КИХ-фильтра, способ представления входных данных: signed - десятичное число со знаком, unsigned -десятичное число без знака.
После нажатия клавиши “Далее” появляется окно выбора способа расчета и формата представления весовых коэффициентов КИХ-фильтра (отводов). Существует возможность чтения коэффициентов как из текстового файла (коэффициенты могут быть получены, например, с использованием системы Matlab/Simulink), так и генерация с использованием встроенного модуля мегафункции Core FIR Compiler исходя из
заданных параметров. Вид окна представлен на рис.1. Мегафункция автоматически оценивает число отводов КИХ-фильтра при заданном пользователем типе окна.
Мегафункция представляется возможность проанализировать влияние преобразования из
формата с плавающей запятой в формат с фиксированной запятой с заданной точностью и влияние операции масштабирования на коэффициенты КИХ-фильтра.
Coefficient Generdtor 1.1.0
10 dB 0 •10 -20 -30 -40 -50 60 -70
-90 Freq. О Loef. U Index
Filter Order Estimator
Passband [o^j Ripple '
Stopband [бо Reject I
T ransition [50 Bandwidth ‘
Estimate Number of Taps Required
1.1e+003 8 12
Auto Rate Change
Interpolation Pj-Factor ' Decimation l-j Factor
Automatically Generate Filer Parameters
ч.
\
\
\
'Да „
|А А/ \ л
Г 1 І V у V Г\Г\г 1АЛ/
Filter Generator Input Sample Rate
¡нош
Filter Type
2.2e+003 З.Зе+ООЗ 4.4e+003 5.5e+003
16 20 24 28 32 36 40 44 46 52
1 Low Pass -
Number of Taps Excess BW
J53 0 %
Window T ype
1 Blackman -
Coef.
Values
0.60
0.40
0.20
“0.00
Cutoff Freq (1)
11750 Cutoff Freq (2)
1.4 750+006
Apply
Display : Frequency in Blue, Coeficient Values in Red
Рис.1. Диалоговое окно мастера компиляции КИХ-фильтра САПР ПЛИС Quartus II
Следующий шаг - этап графического анализа полученных результатов. Использование формата с фиксированной запятой дает возможность получения более точных результатов. Операции сложения и вычитания в формате с фиксированной запятой не приводят к необходимости округления результатов - они могут лишь вызвать переполнение. В отличие от сложения умножение чисел с фиксированной запятой приводит к увеличению числа значащих цифр результата и, следовательно, к необходимости округления. Если результат умножения по модулю не превосходит единицы, то использование формата с плавающей запятой даст большую точность. Однако операции сложения в формате с плавающей запятой могут приводить к потере точности.
Далее задаем требуемую точность вычислений. По умолчанию выбираем «Full Precision» (полная точность). На следующем этапе задаем коэффициенты интерполяции и децимации фильтра (по умолчанию берутся равными 1). Затем выбираем архитектуру: параллельную или
последовательную реализацию цифрового КИХ-фильтра. А также конвейерные свойства: оптимизацию по частоте или по используемым ресурсам ПЛИС. На последнем этапе задаем
период тактирования (по умолчанию 40 нс), и форматы файлов представляющие полученные результаты: для MatLab Simulink, Verilog, VHDL.
Чтобы протестировать полученный КИХ-фильтр собирается тестовая схема в графическом схемном редакторе САПР Quartus II 2.0. На вход «clock» подается последовательность тактовых импульсов с периодом импульса 40нс. Вход clken является разрешающим, поэтому на него подается постоянный сигнал логической единицы. На вход xin[3..0] подается тестовый сигнал - аналог 5-функции.
Результаты моделирования представлены на рис.2. Выходной сигнал yout[13..0] представляет не что иное, как рассчитанные весовые коэффициенты фильтра (0 -1 -1 0 1 3 1 -3 -5 -3 4 11 8 -5 -21 -21 6 57 106 127 106 57 6 -21 -21 -5 8 11 4 -3 -5 -3 1 3 1 0 -1 -1 0), так как на вход подавался единичный импульс. Отрицательные числа представлены в системе с плавающей запятой и переведены в десятичную систему.
Пример расчета КИХ-фильтра в среде FDATool показан на рис.3. Среда FDATool представляет графический интерфейс для расчета параметров фильтров и просмотра их характеристик.
■ *.np о;
u
filter 1_________________
Xin[3..0] FIR 53 taps XOUt[3..0] clken
> clock
youl[13..0]
xjutp. O]
. yout[13 0]
Simulation Waveforms
Master Time Bar:
4.0us *| >| Pointer: | 5/17 n
Start:
Ops 320.0ns 640.0ns 960.0 ns 1.28 us 1.6 us 1.92 us 2.24us 2.56us
3.2 us 3.52 us
in
1ЛЛЛ
in
um
in
innnnnnnnnn
LR
in
in
in
inn
inn
in
□ yout
ГЗЖШХШ -5 3 4 11 S -5 -21 57 0 2 0 5/ бХЗЮЖ
Рис.2. Результаты моделирования работы КИХ-фильтра НЧ: а) схемно-графическое представление; б) импульсная характеристика
FDATool. При проектировании КИХ-фильтра в среде FDATool используются следующие методы: Equiriple - синтез фильтров с равномерными пульсациями АЧХ методом Ремеза; Least-Squares -минимизация среднеквадратичного отклонения АЧХ от заданной и метод окон (Window). В разделе Filter Order зададим порядок КИХ-фильтра. Порядок КИХ-фильтра зададим тот, который рекомендует выбрать мегафункция Mega Core FIR. Мегафункция также предлагает и метод синтеза (окно Blackman - Блекмена). Расчет фильтра осуществляется нажатием кнопки Design Filter (рис.4).
На вкладке Design Filter зададим тип синтезируемой АЧХ - фильтр нижних частот, тип фильтра - нерекурсивный (FIR), метод синтеза -метод окон (синтез с использованием весовых функций). Среда FDATool поддерживает больше методов синтеза, чем мегафункция Mega Core FIR. Преимущество мегафункции в том, что порядок проектируемого КИХ-фильтра (число отводов) оценивается автоматически, но синтез АЧХ осуществляеться методом окон. Этот недостаток компенсируется возможностью загрузки
коэффициентов проектируемого фильтра,
полученных, например, с использованием среды
Filter Design ft Analysis Tool - [untitled.fda *]
File Edit Analysis Targets View Window Help
пеней ßßо щ
ЕЕЯ
йіШ-
- Current Filter Information-
Structure: Direct-Form FIR
Order: 53
Stable: Yes
Source: Designed
Magnitude Response (dB)_
Frequency (kHz)
Response Type—
— Design Method-
ОIIR Butterworth
® FIR I Window
© Lowpass V
о Highpass V
0 Bandpass
0 Bandstop
о Differentiator -
__Filter Order_______________________
(J) Specify order: ¡53
О Minimum order
Frequency Specifications_____________
Units: I Hz VI
Fs: |l 1000 I
Options______________________
[^1 Scale Passband
Window: |Blackman~
Function Name: | ~
Parameter:
View
Magnitude Specifications-
Fc:
|l 750
:
The attenuation at cutoff frequencies is fixed at 6 dB (half the passband gain)
Desjgn Filte!
[Designing Filter... Done
Рис.3. Интерфейс среды FDATool. Пример расчета АЧХ КИХ-фильтра
cosÇ2 *рі.*[0:0.001:2] .*(1 + Р:0.00
From
Woikspace
► Convert
Data Type Conversion
Input Output
:o
Scope
xin yout
Altera FIR Filter
tl
Рис.4. Модель КИХ-фильтра в системе Matlab/Simulink (а), сигнал после фильтрации КИХ-фильтром, с использованием среды FDATool (б) и мегафункции Core FIR Compiler (г), сигнал до фильтрации (в)
На рис.4, а показана модель КИХ-фильтра (имя модели Filter) построенная как с использованием базовых элементов (задержка, сумма, коэффициент усиления) цифровых фильтров, так и с использованием S-функции (модель КИХ-фильтра построенная с
использованием мегафункции Mega Core FIR Compiler). На рис.4, в показан сигнал до фильтрации, а на рис.4, б и г после.
Использование пакета Signal Processing (среда FDATool) системы Matlab/Simulink позволяет проводить проектирование цифровых фильтров в базисе универсальных и специализируемых процессоров цифровой обработки сигналов с использованием арифметики с фиксированной и плавающей запятой. Основными этапами проектирования является выбор спецификации фильтра, расчет коэффициентов, архитектурная реализация, анализ ошибок (шум округления при квантовании результатов арифметических
операций, ошибки квантования коэффициентов и влияние длины входного слова - эффекты конечной разрядности) и реализация в аппаратной и/или программной форме.
Литература
1. Мистюков В.Г., Капитанов В.Д. Реализация высокопроизводительных сверхкомпактных КИХ-фильтров на ПЛИС / Scan Engineering Telecom, 1999. 11 с.
2. Стешенко В.Б. ПЛИС фирмы “Altera”:
элементная база, система проектирования и языки описания аппаратуры. М.: Издательский дом
“Додэка-XXI”, 2002. 567 с.
3. Айфичер. Эммануил С., Джервис, Барри У.
Цифровая обработка сигналов: практический
подход, 2-е издание.: Пер. с англ. - М.:
Издательский дом “Вильямс”, 2004. - 2004. - 992 с.
Воронежский государственный технический университет
DESIGNING FIR - FILTER IN BASE FPGA ALTERA
A.V. Strogonov, D.A. Borisov
In article are considered questions, designing filter with finite impulse response (FIR - filter) in base FPGA Altera with use of system Matlab/Simulink and CAD FPGA Quartus II
Key words: FIR - filter, modeling, megafunction