А. Г. Чурсин
ОЦЕНКА БЫСТРОДЕЙСТВИЯ ЦИФРОВЫХ ФИЛЬТРОВ С КОНЕЧНОЙ ИМПУЛЬСНОЙ ХАРАКТЕРИСТИКОЙ
PERFORMANCE EVALUATION OF DIGITAL FILTERS WITH A FINITE IMPULSE RESPONSE
Рассмотрена возможность построения цифровых КИХ-фильтров без операции умножения. Проведена оценка быстродействия цифровых фильтров с конечной импульсной характеристикой с операцией умножения и без, работающих на процессорах общего назначения.
The paper considers the possibility of constructing FIR digital filters without multiplication operation. The performance of FIR digital filters with finite impulse response with and without multiplication operation, operating on general-purpose processors, is evaluated.
Введение. В операциях цифровой обработки сигналов особое внимание уделяется цифровой фильтрации, которая по объему вычислений в среднем занимает от 20 до 60%. В узком смысле цифровой фильтр — это частотно-избирательная цепь, обеспечивающая селекцию цифровых сигналов по частоте [1]. После цифровой обработки получают нужный нам сигнал, переносящий полезную информацию в цифровом виде, для удобства его последующей обработки. Следовательно, современные цифровые фильтры в системах ЦОС должны разрабатываться с повышенными характеристиками. Фильтры могут обладать тысячными порядками. Из-за больших порядков фильтров увеличиваются расчёты и, как следствие, происходит увеличение аппаратных затрат. При построении цифровых фильтров наибольший ресурс времени и вычислительной мощности потребляет операция умножения [1]. Таким образом, задача минимизации времени вычислений и уменьшения аппаратных затрат сводится к минимизации количества умножений, требуемых для вычисления очередного отфильтрованного отсчета [2].
Цели и задачи. В данной работе поставлена цель исследовать возможность построения цифровых фильтров без операции умножения. Также необходимо получить коэффициенты фильтра в каноничном знако-разрядном представлении для упрощения операции сдвига и поставлена задача проведения оценки быстродействия синтезированных фильтров 17-го порядка с умножением и без. Все цифровые фильтры делятся на два обширных класса: нерекурсивные — фильтры с конечной импульсной характеристикой (КИХ) и рекурсивные — фильтры с бесконечной импульсной характеристикой (БИХ) [3]. Будут рассмотрены только КИХ-фильтры, фазовая характеристика которых, в отличие от БИХ-фильтров, линейна.
Основная часть. Для получения фильтра без умножителей используются разные методы, в данной исследовательской работе применяется метод замены операции умножения операцией арифметического сдвига. Сдвиг на N разрядов влево соответствует умножению числа на 2N Введение дополнительных цепей сдвига, позволяет за один такт производить сдвиг информации в регистрах сразу на несколько разрядов. Также стоит отметить, что для упрощения вычислений при сдвиге в двоичном виде лучше использовать представления десятичных чисел с наименьшим количеством «1» в двоичном представлении. Уменьшения количества «1» можно добиться, представив их в каноничном виде. В среду MatLab загружается код, который уменьшает число двоичных «1». Полученные коэффициенты в двоичном виде могут принимать отрицательные значения, это означает, что при вычислении выходной последовательности входную последовательность нужно сдвинуть, опираясь на то, в каком разряде находится «1 » и какой знак стоит перед ней. Если знака нет, то сдвиг нужно производить влево, если есть знак, то вправо. Каждый сдвиг выполняется для каждой «1» коэффициента, а после складывается по правилам булевой алгебры.
Операции сдвига с каноничными знако-разрядными коэффициентами. Алгоритм получения каноничных знаковых чисел (Canonical signed digit — CSD), заключается в представлении нужного нам числа сложением и вычитанием 2N. Так, например, для числа 31, получаем выражение (25) — (20) = 32 - 1 =31. Что бы представить 31 в двоичном виде поставим двоичную «1 » в разряд, соответствующий степени 2, при этом сохраняя знак перед двойкой. В соответствии с выражением (25) - (20), двоичное число будет выглядеть как «10000-1».
Подход к определению быстродействия цифрового фильтра. Структурная схема любого цифрового фильтра содержит элементы памяти Т, сумматоры и умножители. Совокупность этих элементов образует арифметическое устройство фильтра (коммутирующие устройства, необходимые для синхронной записи и считывания двоичных символов в элементах памяти, и другие вспомогательные цепи здесь не рассматриваются) [4]. Для нахождения быстродействия вычислительного устройства цифрового фильтра необходимо найти количество операций, выполняемых при обработке сигнала и умножить на время выполнения одной операции. Быстродействие один из самых важных параметров для цифровых фильтров. В настоящее время выполнение одной операции занимает десятки пикосекунд.
Для подсчёта количества операций при обработке сигнала, необходимо обратиться к выражению (1). Из этого выражения следует, что для получения N-й выборки выходного сигнала требуется произвести N операций умножения и такое же количество операций сложения (2).
где yn — выходная последовательность; xk — входная последовательность; hn-k — импульсная характеристика фильтра.
где T — количество операций для обработки сигнала; x — количество операции умножения; N — порядок цифрового фильтра; y — количество операций сложения.
Для расчета времени обработки цифрового фильтра без умножителей умножение заменяется логическим сдвигом в лево на N бит, который заменяет операцию умножения на степень числа 2N. При расчёте времени обработки сигнала цифровым фильтром без умножителей х заменяется z. Тогда формула (2) принимает вид (3)
TT = zXN + yXN, (3)
где z — арифметический сдвиг.
В работе используется процессор общего назначения для обработки сигнала в процессе цифровой фильтрации. Операции умножения, сложения и сдвига выполняются за разное количество тактов процессора, их значения приведены в табл. 1. В зависимости от длины слова значения для одной операции могут изменяться, для расчёта количества тактов были взяты усреднённые значения.
Таблица 1
Количество тактов для выполнения операций
Умножение Сложение Сдвиг
4 1 1
5 2 1
6 3 1
Периодом тактового сигнала, или длительностью цикла синхронизации, t называется промежуток времени между передними фронтами последовательных тактовых импульсов. Обратная величина, f = 1/t, называется тактовой частотой. Увеличение тактовой частоты без изменения остальных параметров схемы приводит к увеличению ее производительности. Частота измеряется в Герцах (Гц) или в циклах за одну секунду: 1 мегагерц (МГц) = 106 Гц и 1 гигагерц (ГГц) = 109 Гц [5].
Тактовая частота процессора, измеряемая в Герцах — это количество операций, выполняемых процессором за 1 секунду. Исходя из этого, чтобы получить время выполнения одного такта нужно единицу разделить на тактовую частоту процессора (4).
£ = 1//, (4)
где t — время выполнения одного такта в секундах; f — тактовая частота процессора. Перевод количества тактов обработки сигнала Тт в секунды (5)
Tc = t X ТТ, (5)
где T — время обработки в секундах.
Получение КЗРК фильтра нижних частот с 17 9-битными коэффициентами, который имеет полосу пропускания 10 Гц, полосу задерживания 30 Гц и частоту дискретизации 100 Гц.
Данные для синтезируемого фильтра в среде MatLab: ntaps = 17;
nbits = 9;
fpass = 10;
fstop = 30;
fs = 100;
b_opt = csd_lowpass (ntaps, nbits, fpass, fstop, fs);
Значения КЗР коэффициентов представлены в табл. 2.
Для синтезируемого каноничного знако-разрядного фильтра нижних частот получена амплитудно-частотная характеристика в программе MatLab (рисунок).
Таблица 2
Коэффициенты CSD, старший бит слева
Номер коэффициента Старший разряд Младший разряд
1 0 0 0 0 0 0 0 0 -1
2 0 0 0 0 0 0 0 0 1
3 0 0 0 0 0 1 0 1 0
4 0 0 0 0 0 0 0 0 1
5 0 0 0 -1 0 0 0 0 -1
6 0 0 0 -1 0 0 -1 0 0
7 0 0 1 0 0 0 -1 0 0
8 1 0 0 -1 0 0 0 -1 0
9 1 0 1 0 -1 0 0 0 0
10 1 0 0 -1 0 0 0 -1 0
11 0 0 1 0 0 0 -1 0 0
12 0 0 0 -1 0 0 -1 0 0
13 0 0 0 -1 0 0 0 0 -1
14 0 0 0 0 0 0 0 0 0
15 0 0 0 0 0 1 0 1 0
16 0 0 0 0 0 0 0 1 0
17 0 0 0 0 0 0 0 0 -1
Рис 1. Амплитудно-частотная характеристика цифрового фильтра без умножителей
Оценка быстродействия цифровых КИХ-фильтров. По формуле (3) мы можем рассчитать количество тактов необходимых для обработки сигнала полученным цифровым фильтром без умножителей: Тт = 1 х 17 + 3 х 17 = 68.
Для процессора с тактовой частотой 4 ГГц время выполнения одного такта в секундах будет равно (4):
t = 1 / 4 ГГц = 0,00000000025.
Перевод количества тактов обработки сигнала Хг в секунды (5) X; = 0,00000000025 х 68 = 0,000000017, или 1,7 х 10-8.
Расчёт времени обработки сигнала для цифрового фильтра с умножителями и порядком фильтра N=17.
Количество тактов необходимых для выполнения обработки сигнала (2): Хт = 5 х 17 + 3 х 17 = 136.
Для процессора с тактовой частотой 4 ГГц время выполнения одного такта в секундах: t = 1 / 4 ГГц = 0,00000000025. (4)
Перевод количества тактов обработки сигналаХтв секунды (5) Тс = 0,00000000025 х 136 = 0,000000034 секунд или 3,4 х 10-8. Сравнение скорости обработки фильтров. Цифровой фильтр с умножением затратит на обработку сигнала 136 тактов, или 3,4 х 10-8 секунд, а ЦФ без умножителей 68 тактов, или 1,7х 10-8 секунд, из чего можно сделать вывод, что цифровой фильтр синтезируемый на регистрах сдвига выполнит обработку сигнала в 2 раза быстрее.
Заключение. В процессе выполнения работы была проверена возможность построения цифровых фильтров без умножителей на основе метода замены операции умножения операцией арифметического сдвига влево. Проведена оценка быстродействия цифровых КИХ-фильтров с умножением и без. По полученным результатам можно однозначно оценить выигрыш в уменьшении количества операций для обработки сигнала цифровыми фильтрами без умножений и уменьшении времени обработки в 2 раза.
Дальнейшее направление для исследования: рассмотреть процесс умножения на процессорах специального назначения, таких как программируемые логические интегральные схемы и процессоры цифровой обработки сигналов.
ЛИТЕРАТУРА
1. Солонина А. И., Улахович Д. А., Арбузов С. М., Соловьева Е. Б., Гук И. И. Основы цифровой обработки сигналов : курс лекций. — СПб. : БХВ-Петербург, 2003.
2. Каплун Д. И. Цифровые фильтры без умножений // Компоненты и технологии. — № 2. — 2007.
3. Рабинер Л., Гоулд Б. Теория и применение цифровой обработки сигналов. — М. : Мир, 1978.
4. Гоноровский И. С. Радиотехнические цепи и сигналы : учебник для вузов.— 4-е изд., перераб. и доп. — М. : Радио и связь,1986. — 512 с.: ил.
5. Харрис Д., Харрис С. Цифровая схемотехника и архитектура компьютера. — М. : ДМК Пресс, 2013. — 1662 с.
REFERENCES
1. Solonina A. I., Ulaxovich D. A., Arbuzov S. M., Solov"eva E. B., Guk I. I. Osnovy" cifrovoj obrabotki signalov : kurs lekcij. — SPb. : BXV-Peterburg, 2003.
2. Kaplun D. I. Cifrovy e fil'try" bez umnozhenij // Komponenty" i texnologii. — № 2. — 2007.
3. Rabiner L., Gould B. Teoriya i primenenie cifrovoj obrabotki signalov. — M. : Mir,
1978.
4. Gonorovskij I. S. Radiotexnicheskie cepi i signaly" : uchebnik dlya vuzov.— 4-e izd., pererab. i dop. — M. : Radio i svyaz",1986. — 512 s.: il.
5. Xarris D., Xarris S. Cifrovaya sxemotexnika i arxitektura komp"yutera. — M. : DMK Press, 2013. — 1662 s.
СВЕДЕНИЯ ОБ АВТОРЕ
Чурсин Андрей Германович. Инженер. АО "Концерн "Созвездие". E-mail: office@sozvezdie.su
Россия, 394018, г. Воронеж, ул. Плехановская, 14. Тел. (473) 252-12-13.
Chursin Andrei Germanovich. Engineer. Concern "Sozvezdie" JSC E-mail: office@sozvezdie.su
Work address: Russia, 394018, Voronezh, Plekhanovskaya Str., 14. Tel. (473) 252-12-13.
Ключевые слова: цифровая обработка сигнала; цифровые фильтры с конечной импульсной характеристикой; быстродействие цифровых фильтров; процессоры общего назначения.
Key words: digital signal processing; digital filters with a finite impulse response; digital filter performance; general-purpose processors.
УДК 004.318