Научная статья на тему 'ОПТИМИЗАЦИЯ АЛГОРИТМА DDS МЕТОДОМ КОМПЕНСАЦИИ ПАРАЗИТНЫХ СОСТАВЛЯЮЩИХ'

ОПТИМИЗАЦИЯ АЛГОРИТМА DDS МЕТОДОМ КОМПЕНСАЦИИ ПАРАЗИТНЫХ СОСТАВЛЯЮЩИХ Текст научной статьи по специальности «Электротехника, электронная техника, информационные технологии»

CC BY
109
19
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
DDS / ПЛИС / ФАЗОВЫЙ АККУМУЛЯТОР / VERILOG

Аннотация научной статьи по электротехнике, электронной технике, информационным технологиям, автор научной работы — Шауэрман Александр Александрович, Борисов Александр Васильевич, Забелин Леонид Юрьевич

В статье рассматривается метод построения генераторов сигналов с прямым цифровым синтезом (DDS) на основе архитектуры с усеченным фазовым аккумулятором. Предлагается метод уменьшения паразитных составляющих генерируемого сигнала за счет применения ПЛИС. Для исследования алгоритмов цифровой обработки сигналов, в частности генераторов DDS, был разработан специальный стенд на основе ПЛИС Cyclon IV, АЦП и ЦАП. Схемы генераторов основаны на применении языка Verilog и системы автоматизированного проектирования QUARTUS Prime. Приведены результаты исследования генераторов на основе ПЛИС.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

OPTIMIZATION OF THE DDS ALGORITHM BY THE IDENTIFICATION OF SPURIOUS COMPONENTS

In this article direct digital synthesis (DDS) methods of signal generation are considered. Here we designed signal generator. FPGA Cyclone IV, ADC and DAC were designed for researching digital signal processing algorithms and DDS. Generator schemes are based on the Verilog language and programmable logic design software produced by Intel QUARTUS Prime. Phase Truncation properties in the Output Spectrum of DDS were considered and DDS research results were presented in this article.

Текст научной работы на тему «ОПТИМИЗАЦИЯ АЛГОРИТМА DDS МЕТОДОМ КОМПЕНСАЦИИ ПАРАЗИТНЫХ СОСТАВЛЯЮЩИХ»

УДК 621.373.9

Оптимизация алгоритма DDS методом компенсации паразитных составляющих

А. А. Шауэрман, А. В. Борисов, Л. Ю. Забелин

В статье рассматривается метод построения генераторов сигналов с прямым цифровым синтезом (DDS) на основе архитектуры с усеченным фазовым аккумулятором. Предлагается метод уменьшения паразитных составляющих генерируемого сигнала за счет применения ПЛИС. Для исследования алгоритмов цифровой обработки сигналов, в частности генераторов DDS, был разработан специальный стенд на основе ПЛИС Cyclon IV, АЦП и ЦАП. Схемы генераторов основаны на применении языка Verilog и системы автоматизированного проектирования QUARTUS Prime. Приведены результаты исследования генераторов на основе ПЛИС.

Ключевые слова: DDS, ПЛИС, фазовый аккумулятор, Verilog.

1. Введение

В телекоммуникационном оборудовании для большинства алгоритмов модуляции необходимо использовать генераторы гармонического колебания. Например, для получения квадратурных составляющих требуется два генератора со смещенной на 90 градусов фазой. В схемах передачи с несколькими несущими или в системах пространственного кодирования типа MIMO (Multiple Input Multiple Output) число таких генераторов соответственно возрастает. В настоящее время наибольшее распространение получили генераторы прямого цифрового синтеза DDS (Direct Digital Synthesizer) на основе архитектуры с усечением фазы [1].

Усечение фазы является важным аспектом архитектуры DDS. На вход адресов ПЗУ поступают не все значения регистра фазы, а только P старших разрядов. Для примера рассмотрим DDS с 32-разрядным аккумулятором фазы. Для прямого преобразования 32 бит фазы в соответствующую амплитуду потребуется в ПЗУ хранить 232 отсчета синуса. Если положить, что каждый отсчет хранится с 8-разрядной точностью, то потребуется 4 гигабайта памяти. Увеличение разрядности аккумулятора фазы не требует обязательного увеличения размера ПЗУ. Для адресации можно использовать лишь необходимое количество старших разрядов кода фазы. Например, в 32-разрядном DDS можно использовать только старшие 12 бит регистра фазы. В этом случае младшие 20 бит будут проигнорированы (усечены). В результате требуемый объем ПЗУ составит 212 отсчетов, или 4096 байт.

Однако фазовые ошибки, вносимые усечением разрядности регистра аккумулятора, приводят к ошибкам амплитуды в процессе преобразования фазы в амплитуду и в результате - к образованию паразитных гармонических составляющих, значительно ухудшающих отношение сигнал/шум (Signal-to-Noise Ratio, SNR) в генерируемом сигнале.

При аппаратной реализации алгоритма DDS на сигнальном процессоре, ПЛИС или в виде специализированной интегральной микросхемы наиболее дорогостоящим ресурсом является память для хранения отсчетов синуса. Важной задачей является оптимизация алгоритма DDS таким образом, чтобы при заданном отношении сигнала к шуму для аппаратной реализации требовалось как можно меньше ячеек постоянного запоминающего устройства (ПЗУ). Один из очевидных методов сокращения объема ПЗУ, применяемый на практике, основывается на свойствах симметрии синуса - в большинстве DDS в ПЗУ содержится только 1/4 пе-

риода. Однако при этом немного усложняется логика формирования адреса. Другое направление оптимизации - это компенсация искажений, вызванных технологией усечения фаз. Это позволяет значительно (на несколько двоичных порядков) сократить объем ПЗУ при сохранении требуемого отношения сигнал/шум.

Очевидно, что поиск и разработка алгоритмов реализации DDS с наименьшим потреблением дорогостоящих аппаратных ресурсов является актуальной задачей.

2. Алгоритм компенсации паразитных составляющих

В работах [2, 3, 4] описаны методы компенсации паразитных составляющих, возникающих в результате усечение фазы. В работе [4] автором предложен эффективный метод компенсации с использованием двух DDS: первый DDS генерирует обыкновенный сигнал, второй - сигнал ошибки. С помощью аналогового сумматора сигналы смешиваются, в получившемся сигнале динамический диапазон, свободный от паразитных составляющих (Spurious-Free Dynamic Range, SFDR), увеличивается. С использованием ПЛИС этот метод может быть усовершенствован: оптимизация позволила отказаться от второго DDS, сигнал ошибки сформировать в цифровом виде, а аналоговый сумматор заменить цифровым.

Сигнал на выходе генератора DDS с учетом усечения фазы может быть записан следующим образом:

s(m) = sin

^(m • D - mod(m • D,2 A-P ))

.2 j

(1)

где A - разрядность аккумулятора фазы до усечения;

P - разрядность фазы после усечения;

D - код частоты;

mod - остаток от деления;

m - порядковый номер отсчета на выходе генератора.

Выражение (1) не учитывает эффекта квантования, здесь и далее положим, что разрядность отсчетов в ПЗУ и разрядность ЦАП значительно превышает разрядность фазы, следовательно, составляющие спектра, обусловленные квантованием, много меньше составляющих, возникших в результате эффекта усечения фаз, и могут не учитываться.

Используя тригонометрическое преобразование, запишем выражение (1) в виде:

(

s(m) = sin

—-• m • D 0A

v 2

\ f cos

'^ mod(m • D,2A-P )'-

v 2

f

- cos

2^ n —-• m • D

A

v 2

\ f sin

~ mod(m • D,2A-P )) (2)

v2

При условии, что можно утверждать, что

mod(m • D,2A-P )<< 2 A:

sin

^ • mod(m • D,2A- P )]« ^ • mod(m • D,2A-P )

>2 j 2

mod(m • D,2A-P )]« 1.

С учетом (3) выражение для выходного сигнала примет вид:

s(m) = sin

jt

Л

• m • D

(

- cos

j

Л (

• m • D

j

i(m • D,2A-P j

mod(m • D,2A-P

v 2A v j

(3)

(4)

Очевидно, что первый компонент (4) представляет собой выходной сигнал DDS без эффекта усечения фазы, второй компонент - аддитивное искажение, которое может быть компенсировано сигналом коррекции:

(

сг (т) = соб

Л

—-• т • Б

V 2 у

^ шоё(т • Б,2Л" Р )

.2 ✓

Итоговый сигнал без ошибки усечения фазы:

(т) = я(т)+сг (т) (6)

Операция коррекции может быть выполнена в цифровом виде аппаратно. Сигнал коррекции представляет собой произведение отмасштабированной функции косинуса на остаток

Л—Р

от деления мгновенной фазы на константу 2 . Для получения функции косинуса из синуса достаточно сдвинуть фазу на 90°. Если делитель числа может быть записан в форме 2 , где X - целое число, то для операции остатка от деления достаточно взять от числа младшие X бит. В цифровом виде данная операция выполняется элементарно и не требует аппаратных средств.

Функциональная схема DDS с коррекцией эффекта усечения фазы показана на рис. 1. Цифровая часть схемы - генерация и цифровая коррекция - может быть выполнена в ПЛИС. Умножитель и сумматор реализуются в ПЛИС на аппаратных блоках либо на базовых логических элементах.

Рис. 1. Функциональная схема DDS с коррекцией

Очевидно, что при некоторых значениях кода частоты никакой ошибки не произойдет и составляющие в спектре не появятся, в то же время для других значений кода частоты Б ошибка будет максимальной, а уровень паразитных гармоник будет наибольшим. Для того чтобы в спектре сигнала отсутствовали паразитные составляющие, значение Б должно удовлетворять условию [1]:

(7)

НОД (б,2Л—Р )

= 2

Л—Р

где НОД - наибольший общий делитель.

Другими словами, Б должно быть кратно 2

Л—Р

Значение Б, при котором наблюдается наибольший уровень паразитных гармоник,

должно удовлетворять условию:

НОД (б,2 Л—Р )

= 2

Л—Р—1

(8)

3. Моделирование алгоритма коррекции

Произведем моделирование численными методами в среде МаШСАО. Для исследований выбираем простую архитектуру БОБ, использующую 7-разрядный аккумулятор (А = 7), в котором для адресации ПЗУ используются старшие 5 разрядов (Р = 5). Полный период для аккумулятора фазы составляет 128 шагов, полный период для адресов ПЗУ составляет 32 шага.

Рассмотрим случай, при котором наблюдается наибольший уровень паразитных гармоник, используя (8), находим, что Б = 2. На рис. 2, 3 показаны сигнал на выходе БОБ и его спектр. Спектр получен с помощью прямого дискретного преобразования Фурье и выражен в логарифмических единицах. Ось частоты нормирована относительно частоты дискретизации. Следует отметить, что разрядность ЦАП при моделировании не учитывается, поэтому характерные искажения сигнала («ступеньки») на временной диаграмме вызваны только эффектом усечения фаз. На спектре эти искажения выражены в виде гармоники с уровнем -26.2 дБ.

Рис. 2. Сигнал на выходе БББ для Б = 2

О 0.1 0.2 0.3 0.4

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Рис. 3. Спектр сигнала на выходе БББ для Б = 2

На рис. 4 показан сигнал коррекции, рассчитанный по (5).

Рис. 4. Сигнал коррекции для Б = 2

На рис. 5 изображен сигнал после коррекции, а на рис. 6 - его спектр. Для наглядности показана первая четверть периода сигнала.

О 5 10 15 гр

Рис. 5. Результат коррекции. Временная диаграмма

0 0.1 0.2 0.3 0.4 Ф

Рис. 6. Спектр сигнала на выходе после коррекции

В результате коррекции уровень паразитной гармоники составил минус 52.3 дБ, что на 27.1 дБ лучше исходного.

Так как в спектре доминирует одна паразитная составляющая, то для визуальной оценки удобно и допустимо вместо интегрального параметра использовать параметр SFDR. Используя полученную математическую модель, рассчитаем для различных Р значение SFDR, результаты сведем в табл. 1 и построим график зависимости (рис. 7)

Таблица 1. SFDR для различных значений разрядности фазы

Р 5 6 7 8 9 10 11 12

SFDR, дБ 26.17 32.20 38.22 44.24 50.26 56.28 62.30 68.32

SFDR, коррекция, дБ 52.34 64.40 76.44 88.48 100.53 112.57 124.61 136.65

140

ОБ ш

100

80 60 40 20

1 1 XXX Сигнал/шум без кор. И* Сигнал/шум кор.

___$

4 5 6 7 8 Р 10 11 12 р 13

Рис. 7. Отношение сигнал/шум для алгоритма с коррекцией и без

Анализ графика и таблицы позволяет сделать вывод, что при увеличении разрядности фазы Р на один разряд в алгоритме без коррекции динамический диапазон, свободный от паразитных составляющих, улучшается на 6.02 дБ, в то время как в алгоритме с коррекцией улучшение происходит на 12.04 дБ. Из табл. 1 видно, что для достижения уровня БЕБЯ не хуже, чем при Р = 5, но без коррекции, требуется выбрать разрядность фазы не менее 10 (р = 10). Таким образом, если реализовывать БББ по алгоритму без коррекции требуется ПЗУ на 210 ячеек (1024), если же по алгоритму с коррекцией, то достаточно всего лишь памяти на 32 ячейки. В абсолютных значениях выигрыш становится колоссальным, если речь идет о генераторах, где разрядность отсчета сигнала больше 8 бит. В этом случае требования к отношению сигнал/шум значительно возрастают. Так, для 16-битных систем шум квантования будет на уровне минус 98.08 дБ, это значит, что искажения сигнала из-за усечения фаз также не должны превышать этого уровня. Этого можно достичь, используя 217 ячеек памяти в алгоритме без коррекции, или всего 29 в алгоритме с коррекцией.

4. Реализация генератора на ПЛИС

Для экспериментального исследования алгоритмов цифровой обработки сигналов, включая методы цифрового синтеза, нами был разработан специальный стенд LESO7 (рис. 8, 9).

Рис. 8. Структурная схема стенда

Стенд подключается к персональному компьютеру (ПК) или ноутбуку через разъем USB. На плате размещена ПЛИС с набором аналоговой периферии: аналого-цифровые (АЦП) и цифро-аналоговые преобразователи (ЦАП). Разрядность ЦАП - 14 бит, максимальная частота обновления - 125 МГц. Ввод и вывод аналогового сигнала осуществляется через разъемы типа BNC. В основе стенда ПЛИС FPGA Cyclone IV.

Встроенное программное обеспечение ПЛИС выполнено на языке описания аппаратуры Verilog HDL. Прошивка состоит из модулей, объединенных в модуль верхнего уровня.

Модуль «dds_correction» предназначен для генерации гармонического сигнала и демонстрирует описанный алгоритм коррекции эффекта усечения фаз. Архитектура модуля соответствует функциональной схеме (рис. 1). Параметры алгоритма DDS соответствуют рассмотренному ранее примеру: разрядность фазового аккумулятора (A) равна 7, разрядность фазы после усечения (P) равна 5, код частоты (D) обеспечивает максимальный уровень паразитных гармоник и равен 2. Листинг модуля приведен ниже:

module dds_correction (

input clk_i, // Тактовые импульсы

output reg signed [13:0] out_1, // Шина данных ЦАП_1 output reg signed [13:0] out_2 // Шина данных ЦАП_2

);

reg signed [13:0] rom[31:0]; // Разрядность фазы 5, 32 ячейки

initial begin

// Инициализируем rom файлом с 32-мя отсчетами $readmemh("meminit/sin_full_32_14bit.mif", rom); end

reg signed [6:0] phase_acc; // Регистр аккумулятора фазы, 7 бит

wire signed [6:0] phase_sin, phase_cos; // Переменные для фазы wire signed [27:0] corr;

// Фазовый аккумулятор always @(posedge clk_i) begin

phase_acc <= phase_acc + 2; // Прибавляем код D

end

assign phase_sin = phase_acc; // Оставляем начальную фазу нулевой

assign phase_cos = phase_acc + 32; // Сдвиг фазы 90 градусов // Формирование сигнала коррекции

// Для адресации памяти используем только 5 старших бит фазы assign corr = rom[phase_cos[6:2]] * $signed(phase_sin[1:0] * 404);

// Формирование сигнала на вход ЦАП

always @(posedge clk_i)

begin

// На ЦАП_1 исходный сигнал

out_1 <= rom[phase_sin[6:2]] + $signed({1'b1, {(13){1 'b0}}});

// На ЦАП_2 сигнал с коррекцией

out_2 <= corr[26:13] + rom[phase_sin[6:2]] + $signed({1'b1, {(13){1'b0}}}); end

endmodule

Фазовый аккумулятор состоит из 7-разрядного сумматора и регистра. На каждом такте опорного генератора (clk_i) на выходе аккумулятора появляется новое значение, полученное в результате суммирования предыдущего значения с кодом частоты (D = 2).

Микросхемы ПЛИС семейства Cyclone IV оснащены специальной памятью для пользовательских данных. Структура встроенной памяти организована в виде столбцов блоков M9K, которые можно сконфигурировать в различные типы памяти, такие как ROM, RAM, буферы FIFO и сдвиговые регистры. Для того чтобы компилятор разместил пользовательскую память в ячейках M9K, следует использовать только допустимый синтаксис, учитывающий аппаратные особенности блоков M9K [5].

Память записывается в виде массива регистров. Системная функция $readmemh позволяет читать данные из файла и загружать эти данные в память. Таблица с отчетами синуса из файла считывается в процессе компиляции проекта, эти данные компилятор включает в тело бинарного файла конфигурации ПЛИС. Разрядность отсчетов в таблице соответствует разрядности ЦАП и равна 14. Высокая разрядность ЦАП позволяет при исследовании эффектов усечения при малых значениях P пренебречь ошибками квантования сигнала.

Помимо результирующего сигнала из модуля выведен исходный сигнал. Это позволяет с помощью осциллографа наблюдать одновременно два сигнала.

5. Экспериментальные исследования

При исследовании используется анализатор сигналов ЬЕБ04 [6]. Схема экспериментального стенда приведена на рис. 10.

Рис. 10. Внешний вид стенда

В исследовании задана тактовая частота БОБ 100кГц.

На рис. 11 показана осциллограмма сигналов до коррекции и после.

^ 1_Е£04 I -И. 1 |

шаша! |-1

Ш 0

__ 1 Г Л |—л Г-1 Г-г— 1___ 1 ш

г1 Синх. НЕ ги

Авт. 50 20 10 100 V 1 / 5 1 .11111,. 1

-1 1 □

/ / -Г

1 1

¥ и [ 0,2, х ,2 1_

_г \ \ т. \ Ш 1 0,5- 4 -1 0

Т 1 1 ] V. 1 1 1

Г ] 1 т \ г ] 1 1 1.0' у 0,5 0

1 1 В 2,0 мс Развертка, время/дел

I 1 г 1 1 ~ + V У

5- / —р 1 1 V Д 0

1 ц тг / 7 С V с С С Г-1

Г 1 г 1 • J •

1 ( I

1 I 1 1—1 1-1 1—1 1—1

к а5

и к _и 1_и . А . А

ч А А

И 1 1 с

■, н— _1

I

1 л .О о".

1 1

1 1 усил, усил, усил, усил,

Ц г>

"1- г1 ^ О о

2,0 2,0 5,0 5,0

Ь глахэ и [|Ц ши икс/дел Б/дел В/дел Б/дел Б/дел

= II- = ■

Рис. 11. Осциллограмма сигнала до коррекции (желтый канал) и после (зеленый канал)

На рис. 12. показан участок сигнала в первой четверти периода. Хорошо видно соответствие моделированию (рис. 5).

Рис. 12. Осциллограмма сигнала до коррекции (желтый канал) и после (зеленый канал).

Четверть периода

На рис. 13 показан спектр сигнала до коррекции. Курсорами выделены основная (15.25 дБ) и доминирующая паразитная (-11.97 дБ) гармоники. Динамический диапазон, свободный от паразитных составляющих, составляет 27.22 дБ.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Рис. 13. Спектр сигнала до коррекции

На рис. 14 показан спектр сигнала после коррекции. Курсорами выделены основная (15.25 дБ) и доминирующая паразитная (-38.07 дБ) гармоники. БЕБЯ составляет 53.32 дБ.

Рис. 14. Спектр сигнала после коррекции

6. Заключение

Предложенная модификация базового алгоритма прямого цифрового синтеза позволяет при аппаратной реализации на ПЛИС или ДСП (Digital Signal Processor, DSP) значительно уменьшить потребляемую устройством память либо при сохранении исходного объема памяти значительно уменьшить паразитные составляющие в спектре генерируемого сигнала. Кроме того, достоинством метода является его возможность совместного использования с методом оптимизации, когда в памяти хранится лишь четверть периода синуса.

Результаты моделирования хорошо подтверждают эффективность оптимизации алгоритма и позволяют дать количественную оценку улучшенных параметров.

Результаты экспериментального исследования реального генератора на платформе ПЛИС хорошо согласуются с результатами моделирования.

Однако предложенный способ обладает и недостатками: при реализации алгоритма используется дополнительный аппаратный умножитель и сумматор (встроенные в ПЛИС или ДСП), что при некоторых аппаратных платформах может нивелировать выгоду, полученную от сокращения памяти, и внести дополнительные задержки в генерацию сигнала.

Литература

1. A Technical Tutorial on Digital Signal Synthesis. Analog Devices, Inc., 1999.

2. MifsudA. Direct digital synthesis radio frequency arbitrary function generator using an FPGA [D]. University of Malta, 2016.

3. Ryan Groulx, Shawn Mason, Rockwell Collins. Minimization of DDS Spurious Content in Multi-Channel Systems // High Frequency Electronics. Oct. 2006

4. Zhou Jianming A new method of spur reduction in phase truncation for DDS // IEICE Electronics Express. 2008. V. 5, № 21. P. 915-920.

5. Cyclone IV Device Handbook. 101 Innovation Drive. San Jose.

6. Цифровой USB анализатор сигналов LESO4 [Электронный ресурс]. URL: http ://www. labfor. ru/devices/leso4 (дата обращения: 01.12.2019).

Статья поступила в редакцию 07.03.2020; переработанный вариант - 27.03.2020.

Шауэрман Александр Александрович

инженер гр. электронных средств обучения СибГУТИ, e-mail: shamrel@yandex. com. Борисов Александр Васильевич

к.т.н., доцент кафедры САПР СибГУТИ, e-mail: borisov@sibsutis . ru. com. Забелин Леонид Юрьевич

к.т.н., доцент, зав. кафедрой САПР СибГУТИ (630102, Новосибирск, ул. Кирова, 86), e-mail: zabelinlu@sibsutis.ru.

Optimization of the DDS algorithm by the identification of spurious components А. Shauerman, A. Borisov, L. Zabelin

In this article direct digital synthesis (DDS) methods of signal generation are considered. Here we designed signal generator. FPGA Cyclone IV, ADC and DAC were designed for researching digital signal processing algorithms and DDS. Generator schemes are based on the Verilog language and programmable logic design software produced by Intel QUARTUS Prime. Phase Truncation properties in the Output Spectrum of DDS were considered and DDS research results were presented in this article.

Keywords: DDS, FPGA, phase accumulator, Verilog.

i Надоели баннеры? Вы всегда можете отключить рекламу.