Проектирование ких - фильтров в базисе плис фирмы Altera

УДК 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.

Строгонов Андрей Владимирович - ВГТУ, д-р техн. наук, профессор, andreis@hotmail.ru Борисов Дмитрий Александрович - ВГТУ, студент, 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

11750 Cutoff Freq

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

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:

:

The attenuation at cutoff frequencies is fixed at 6 dB

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

На рис.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