УДК 621.396.1
КОМПЕНСАЦИЯ НЕЛИНЕЙНОСТИ КОЭФФИЦИЕНТА УСИЛЕНИЯ ПЕРЕСТРАИВАЕМЫХ ДЕЦИМИРУЮЩИХ CIC-ФИЛЬТРОВ
COMPENSATION OF NON-LINEARLY GAIN OF TUNABLE DECIMATION CIC FILTERS
М. А. Квачев, П. И. Пузырёв
Омский государственный технический университет, г. Омск, Россия
M. A. Kvachev, P. I. Puzyrev
Omsk State Technical University, Omsk, Russia
Аннотация. Дано описание методики проектирования децимирующих каскадных интегрально-гребенчатых фильтров с сокращенной разрядностью регистров и сумматоров, переменным коэффициентом децимации и компенсацией нелинейно изменяющегося коэффициента усиления, позволяющей сохранить полезный сигнал при больших перестройках коэффициента децимации.
Проведено компьютерное моделирование в целях подтверждения эффективности метода компенсации, предложенного в данной статье. Даны рекомендации к проектированию и показан пример проектирования фильтра с необходимыми параметрами. Анализ использования ресурсов ПЛИС спроектированного фильтра показал меньшее потребление ресурсов кристалла и достаточно высокие рабочие частоты тактирования схемы в сравнении с аналогичными решениями от различных поставщиков ПО и IP-ядер.
Ключевые слова: цифровая фильтрация, ПЛИС, цифровой понижающий преобразователь, CIC, передискретизация.
DOI: 10.25206/2310-9793-7-2-204-211
I. Введение
При реализации цифровых приемных устройств возникает необходимость понижения частоты дискретизации сигнала на выходе смесителя для последующей обработки на низкой частоте. Осуществление данной операции выполняет передискретизирующий фильтр, являющийся частью DDC (Digital Down Converter - цифровой понижающий преобразователь).
В системах передискретизации сигналов с большими значениями изменения частоты дискретизации повсеместно используются CIC (Cascaded Integrator-Comb - каскадный интегрально-гребенчатый) фильтры. Описаны данные фильтры большим количеством авторов [1-6], однако большое развитие получили только в последнее время с быстрым ростом использования SDR (Software-Defined Radio - программно-определяемое радио).
Цифровой понижающий преобразователь осуществляет перенос спектра сигнала на более низкую частоту и проводит передискретизацию сигнала для передачи последующим устройствам цифровой обработки.
На базе данных фильтров осуществляют фильтрацию от наложений спектров сигнала при изменении частоты дискретизации. Их отличительная особенность от остальных типов фильтров, заключается в возможности изменения частоты дискретизации в достаточно широком диапазоне (в основном от 8 до 8192, но возможно и расширение диапазона вплоть до 32000 [7]), а также в полном отсутствии операций умножения. Подобные достоинства делают CIC фильтры крайне привлекательными для реализации на ПЛИС (программируемая логическая интегральная схема), ЦСП (цифровой сигнальный процессор) и в виде ИС (интегральная схема), выполняющих обработку сигнала на достаточно высокой частоте.
При реализации CIC фильтра возникает необходимость уменьшения промежуточной разрядности вычислений с целью экономии логических блоков (ALM), а также поддержки возможности изменения коэффициента децимации что влечет за собой проблему изменения уровня сигнала на выходе фильтра нелинейным образом.
В [1] описана возможность построения CIC-фильтра с отбрасыванием младших значащих разрядов на каждой стадии фильтрации, без значительной потери точности.
Большинство программных средств для генерирования HDL описаний CIC-фильтров предоставляют возможность генерации фильтра с поддержкой изменения коэффициента децимации во время работы устройства только при использовании полной разрядности промежуточных вычислений. Либо предоставляет возможность изменения коэффициента децимации с значительным увеличением потребления ресурсов и/или снижением максимальной рабочей частоты.
Подобную проблему различные поставщики программного обеспечения и 1Р-ядер решают методом компенсации изменившегося коэффициента усиления на выходе фильтра. Подобный подход зачастую не может быть применен по ряду причин, так как в некоторых случаях информация в процессе фильтрации может быть практически полностью потеряна или испорчена. К тому же некоторые подходы требуют значительного использования логических элементов схемы, ячеек памяти и т. п.
В разделе III изложены теоретический базис, необходимый для расчета С1С фильтра с требуемыми характеристиками, а также предложен метод компенсации отклонения амплитуды выходного сигнала фильтра, вызванного изменением коэффициента децимации.
Раздел IV содержит результаты моделирования С1С-фильтров, проведено сравнение сгенерированных автоматически фильтров и фильтра, построенного в данной статье, по использованию ресурсов ПЛИС, затрачиваемых на реализацию данного фильтра и максимальным рабочим частотам.
II. Постановка задачи
В процессе изменения коэффициента децимации СГС-фильтра коэффициент усиления изменяется нелинейно и при достаточно больших отклонениях коэффициента децимации от исходного информация о сигнале может быть полностью утеряна. Задачей данной работы является предоставить методику проектирования СГС-фильтра с переменным коэффициентом децимации, сокращенной разрядностью внутренних регистров, и компенсацией нелинейности коэффициента усиления. Дать оценку использования ресурсов ПЛИС и рекомендации при реализации СГС-фильтра по предложенной методике.
III. Теория
С1С-фильтр представляет собой каскадное включение N идеальных интеграторов и гребенчатых фильтров. Структурная схема которого показана на рис. 1.
Рис. 1. ^каскадный децимирующий СГС фильтр Передаточная характеристика ^каскадного фильтра по [1. Eq. 3]
/1 _ - ЯМ\М
Н (2) = НN (^ (2) = (1 г - N
(1 - 2 )
(1)
где Я - коэффициент децимации, М - величина задержки в каскаде гребенчатого фильтра. Воспользовавшись z-преобразованием, как это описано в [8], перейдем к АЧХ фильтра порядка N (2), график которой представлен на рисунке 2.
Н ( п _ГэЬО^М)/ ]N
НС1С (/ ) _[ /¡5т(я-/ / Я)} .
(2)
Для больших значений Я, воспользовавшись приближением 8т(х)» х (2), аппроксимируют выражением
Нас (/) _
ЯМ
$тпМ/
пМ/
N
Аэг 0 < / < —. М
(3)
Рис. 2. Частотная характеристика фильтра с параметрами R = 2048, N = 4, M = 1 и fS = 100 MHz Данный фильтр подавляет все частоты выше fstop
fstop ' /RM •
Нули фильтра расположены на частотах кратных fsiop и определяются по (5)
fzeros = kifsOp > 0 < k < RM-
(4)
(5)
Как видно по рис. 2, на нулевой частоте С1С-фильтр имеет большой коэффициент усиления, что приводит к нежелательному увеличению разрядности внутренних регистров/сумматоров.
Максимальный уровень значений сигнала из-за коэффициента усиления фильтра
Gmx = ( RM )N .
(6)
Максимальная внутренняя разрядность регистров согласно (6) с учетом знакового бита определяется как
Вах =Г N 1о§2 КМ + Вт 1. (7)
Для приведения выходной разрядности С1С-фильтра к необходимой выполняется отбрасывание младших значащих разрядов в количестве
B2 N+1 _ Bmax Bout.
(8)
Однако сокращение разрядности по (8) порождает искажения выходного сигнала, а именно появление белого шума с большой амплитудой [9].
Метод уменьшения разрядности предложенный Хогенауэром в [1] заключается в удержании значения ошибки округления от 2Ы стадий фильтрации в заданных пределах, а именно:
2 1 С72 <-С
T 2N
T2 N +1 :
(9)
где °'т2М+1 - дисперсия шума, возникающего вследствие отбрасывания младших разрядов на выходе С1С-фильтра.
Иначе говоря, ошибки от отбрасывания разрядов на каждой из 2N стадий фильтрации приводят к ошибке, вносимой конечным 2N+1 уменьшением разрядности.
Процесс усечения разрядности на В^ бит порождает белый шум с математическим ожиданием (10)
Ej = 2
(10)
и дисперсией (11)
^ = - E2. j 12 j
(11)
Дисперсия шума, вносимого сокращением разрядности на каждой стадии фильтрации, определяется как
И _ ^, (12)
где Е2 - коэффициент усиления шума на]-ой стадии
F2 =
( RM-1) N+ j-1
£ hj (k) , j = 1,
,N
k =0
2N+\—j
£ h](k), j = N + 1, ■■■ ,2N,
к= 0
1
j = 2N +1
(13)
где
h, (k) =
L k / RM у
l=0
NУ
,( 2 N +1 - j
(-1)k I ,
'N - j + k - RMl ^ k-RMl /
7 = 1, 2, -,N .
J =N+1, 2N
(14)
Таким образом, используя вышеописанные выражения, сделаем вывод, который более подробно рассмотрен в [1, Appendix III]: количество разрядов, которые можно опустить на каждом этапе фильтрации без риска сделать фильтр неустойчивым или потерять полезную информацию, определяется согласно следующему выражению
Bj =
- log2 Fj + log2 VT2N+1 + 1log2
6_
N
(15)
При изменении коэффициента децимации усиление СГС-фильтра изменяется нелинейным образом согласно (6), зависимость приведена на рис. 3. Для удержания амплитуды в определенном диапазоне и сохранения информации о сигнале необходимо произвести компенсацию ухода коэффициента усиления от исход-ного.
Так как во время работы устройства невозможно изменить разрядность регистров, необходимо произвести усиление сигнала. Усиление на выходе фильтра или на какой-либо из промежуточных стадий невозможно
из-за того, что относительно небольшой по уровню входной сигнал будет усиливаться наряду с шумом и'^ ,
который возникает в результате усечения разрядности на каждой стадии фильтрации.
Следовательно, единственным способом для компенсации изменившегося коэффициента усиления фильтра является предварительное усиление сигнала на входе первой секции согласно (16).
l
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 Decimation Factor R Рис. 3. График зависимости разрядности регистров от коэффициента децимации для фильтров разных порядков
KB = N log2 ^MR , (16)
где Rbase - базовый коэффициент децимации, который был использован при расчете CIC-фильтра и определении разрядностей регистров, Rnew - новый коэффициент децимации к которому необходимо провести компенсацию.
Усиление можно проводить путем умножения сигнала на коэффициент усиления (14, выражение 1) либо битовым сдвигом на необходимое количество разрядов (14, выражение 2)
(2Kb , если умножитель
ук.^си (17)
Из (16) и (17) очевидно, что битовый сдвиг осуществляет точную подстройку амплитуды сигнала только при выборе коэффициентов децимации кратных степеням двойки.
Метод компенсации при помощи умножения гораздо более точен, однако требует использования умножителей на достаточно высокой частоте f что часто неосуществимо, а также требует достаточного количества логических элементов, DSP-умножителей или площади ИС.
IV. Результаты экспериментов
А. Компьютерное моделирование
Для исследования CIC фильтра проведем его проектирование со следующими требованиями f =100 MHz, fout = 50 kHz, N = 4, M = 1, Bn = 16, Bout = 20.
По (4) определим необходимый коэффициент децимации R = 2000. Для упрощения расчетов и обеспечения небольшого запаса примем R = 2048.
Максимальная промежуточная разрядность регистров определяется по (7) как Bmax = 60 и общее количество отбрасываемых разрядов по (8) B2N+1 = 40.
Согласно (11), (12), (13) и (14) определим количество бит отбрасываемых за 2N стадий фильтрации как 0, 11, 21, 30, 35, 36, 37, 38 и 40 (выходное 2N+1 усечение разрядности).
Коэффициент GAIN рассчитывается по (16) и (17) всякий раз при обновлении коэффициента децимации, либо на стадии проектирования для необходимых значений R и сохраняется в памяти устройства.
Структурная схема децимирующего CIC-фильтра с ограниченной разрядностью и компенсацией усиления представлена на рис. 4.
Рис. 4. Структурная схема децимирующего фильтра с параметрами R = 2048, Bin = 16, Bout = 20, N = 4, M = 1
Входное усиление, как уже было сказано ранее, может быть произведено двумя способами: регистровым сдвигом и умножением посредством использования встроенных умножителей цифрового устройства.
Зависимость коэффициента усиления от коэффициента децимации для различных методов компенсации представлена на рис. 5.
Рис. 5. Зависимость коэффициента усиления от коэффициента децимации для различных методов компенсации
Маркерами на графике выделены точки, при которых оба метода компенсации обеспечивают одинаковую степень компенсации. Также из-за ограниченной разрядности умножителей возникает неравномерность коэффициента усиления (рис. 6).
1
0.9995 0.999 0,9985
тз
^ 0.998 со
5 0 9975 -Z.
■| 0.997 О
0.9965
0.996 -0.9955 —
0.995 --1--'0 500 1000 1500 2000
Decimation Factor R
Рис. 6. Зависимость коэффициента усиления от коэффициента децимации при компенсации посредством умножителя 16 x 54
B. Результаты HDL-синтеза
По данным, полученным в IV.A, был проведен синтез HDL-описаний CIC-фильтров с переменным коэффициентом децимации, оценка использования ресурсов ПЛИС, а также оценка максимальных рабочих частот (табл. 1).
Для выполнения данной части эксперимента использовались инструменты MATLAB HDL-Coder, Quartus Prime 18.1 и Timing Analyzer. Синтез проводился для ПЛИС Intel семейства Cyclone V. В крайнем правом столбце табл. 1 указаны максимальные рабочие частоты синтезированных схем. Согласно [12] работа схем гарантируется на частотах, ниже указанных.
ТАБЛИЦА 1
ИСПОЛЬЗОВАНИЕ РЕСУРСОВ ПЛИС И МАКСИМАЛЬНЫЕ РАБОЧИЕ ЧАСТОТЫ
Вид фильтра Потребление ресурсов Fmax, МГц
ALM Register DSP Blocks Memory
Slow Fast
Без компенсации. Полная разрядность 509 1508 0 0 254 372
Компенсация сдвиговым регистром. Сокращенная разрядность 207 403 0 0 281 504
Компенсация умножением. Сокращенная разрядность 157 387 2 0 275 495
Intel FPGA CIC IP-Core. Компенсация умножением. Сокращенная разрядность. 363 686 0 868 170 315
MATLAB HDL-Coder. Компенсация умножением. Полная разрядность 1009 581 0 0 62 156
V. Обсуждение экспериментов
Полученная в IV.A зависимость подтверждает сделанный в (17) вывод, что полноценная компенсация коэффициента усиления методом сдвигового регистра возможна только при условии выбора коэффициентов децимации равными показателям двойки.
При реализации CIC-фильтров с компенсацией при больших значениях отношения Rbase к Rnew, из-за нехватки разрядности DSP-умножителей может потребоваться преобразование схемы компенсации к каскадному включению умножителей и сумматоров как описано в [10] и [11].
В IV.B приведенные сведения об использовании ресурсов ПЛИС говорят о том, что использование данной методики компенсации экономит значительное количество ALM и блоков памяти по сравнению с аналогичными решениями от поставщиков синтезируемых модулей CIC-фильтров.
VI. Выводы и заключение
В данной работе была изложена методика проектирования CIC-фильтров для задач децимации сигналов с сокращенной внутренней разрядностью регистров по Хогенауэру, обладающих программируемым коэффициентом децимации и компенсацией переменного коэффициента усиления.
Проведенное моделирование построенного CIC-фильтра показало, что компенсация коэффициента усиления выполняется успешно для обоих приведенных методов, однако наиболее точный метод с использованием аппаратных умножителей является довольно ресурсоемким решением, так как умножитель вынужден функционировать на высокой частоте входного сигнала и задействует несколько встроенных DSP-умножителей устройства.
По сравнению с автоматически генерируемыми CIC-фильтрами, предоставляемыми различными программными пакетами и библиотеками IP-ядер, CIC-фильтр, спроектированный по данной методике, обладает меньшим использованием ресурсов ПЛИС и наибольшей максимальной рабочей частотой.
При проектировании CIC-фильтров с большими отклонениями Rnew от Rbase необходимая разрядность DSP-умножителя может возрасти и потребуется преобразование умножителя к каскадному виду, поэтому выбор используемого метода компенсации зависит от свободных ресурсов цифрового устройства.
Список литературы
1. Hogenauer E. B. An Economical Class of Digital Filters for Decimation and Interpolation // IEEE Transactions on Acoustics, Speech and Signal Processing, ASSP-29, April 1981. Vol. 29 (2). Р. 155-162.
2. Meyer-Baese U. H. Hogenauer CIC Filters // Digital Signal Processing with FPGA, 3rd ed., Springer, Berlin, Germany, 2007. Ch. 5, sec. 3. Р. 256-272.
3. Lyons R. G. Understanding cascaded integrator-comb filters. 2005, Март 31. URL : https://www.embedded.com/design/configurable-systems/4006446/Understanding-cascaded-integrator-comb-filters.
4. Lyons R. G. Cascaded Integrator-Combs Filters // Understanding Digital Signal Processing, 2nd ed., Prentice Hall, New Jersey, 2011. Ch. 10, sec. 5. Р. 397-407.
5. Donadio M. P. CIC Filter Introduction. 2010, Июль 18. URL : http://dspguru.com/files/cic.pdf.
6. Бахурин С. А. CIC фильтры Хогенауэра и их характеристики. 2010, Июнь 9. URL: http://www.dsplib.ru/content/cic/cic.html.
7. CIC IP Core User Guide, 6th ed., Intel, 2017.
8. Бахурин С. А. Преобразование Лапласа. Z-преобразование. 2010, Июнь 10. URL: http://www.dsplib.ru/content/filters/ch9/ch9.html.
9. Oppenheim A. V. [et al.]. Round-off Noise in Digital Filters // Discrete-Time Signal Processing, 2nd ed., Prentice Hall, New Jersey, ch. 6, sec. 8. Р. 391-402.
10. DSP Blocks in Starix-IV Devices", 2nd ed., Altera, 2004.
11. Using Embedded Multipliers in Spartan-3 FPGAs, 2nd ed., Xilinx, 2003.
12. Guaranteeing Silicon Performance with FPGA Timing Models, 2nd ed., Intel, 2017.