Научная статья на тему 'Исследование и моделирование конвейерных алгоритмов расчета фазы по квадратурам'

Исследование и моделирование конвейерных алгоритмов расчета фазы по квадратурам Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
165
63
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРИЕМНИК / ДЕМОДУЛЯТОР / ФАЗОВАЯ МОДУЛЯЦИЯ / ПЛИС

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Климчук М.В., Терешин А.А., Гончаров С.Н., Писецкий В.В., Гончаров Е.С.

Настоящая работа посвящена исследованию различных методов расчета фазы сигнала по его квадратурам и синтезу блока программы для ПЛИС по одному из методов в рамках задачи создания цифровой радиолинии связи. В работе рассмотрены следующие методы расчета фазы сигнала по квадратурам: Табличный метод Метод аппроксимирующей функции Метод разложение в ряд Тейлора Алгоритм CORDIC Для каждого из методов проанализированы сложность реализации алгоритма и его погрешность. В конечном итоге, по совокупности параметров выбран алгоритм CORDIC, для реализации которого разработан и испытан макет на базе ПЛИС.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Климчук М.В., Терешин А.А., Гончаров С.Н., Писецкий В.В., Гончаров Е.С.

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

Текст научной работы на тему «Исследование и моделирование конвейерных алгоритмов расчета фазы по квадратурам»

УДК 621.376.4

Климчук1 М.В., Терешин2 А.А., Гончаров1 С.Н., Писецкий1 В.В., Гончаров3 Е.С.

Саровский физико-технический институт — филиал федерального государственного автономного образовательного учреждения высшего образования «Национальный исследовательский ядерный университет «МИФИ» (СарФТИ НИЯУ МИФИ), Саров, Россия

2Акционерное общество «Радиотехнический институт имени академика А.Л. Минца», Саровский физико-технический институт — филиал федерального государственного автономного образовательного учреждения высшего образования «Национальный исследовательский ядерный университет «МИФИ» (СарФТИ НИЯУ МИФИ), Саров, Россия

3Федеральное государственное автономное образовательное учреждение высшего образования «Национальный исследовательский ядерный университет «МИФИ», Саров, Россия

ИССЛЕДОВАНИЕ И МОДЕЛИРОВАНИЕ КОНВЕЙЕРНЫХ АЛГОРИТМОВ РАСЧЕТА ФАЗЫ ПО КВАДРАТУРАМ

Настоящая работа посвящена исследованию различных методов расчета фазы сигнала по его квадратурам и синтезу блока программы для ПЛИС по одному из методов в рамках задачи создания цифровой радиолинии связи. В работе рассмотрены следующие методы расчета фазы сигнала по квадратурам: Табличный метод

Метод аппроксимирующей функции Метод разложение в ряд Тейлора Алгоритм CORDIC

Для каждого из методов проанализированы сложность реализации алгоритма и его погрешность. В конечном итоге, по совокупности параметров выбран алгоритм CORDIC, для реализации которого разработан и испытан макет на базе ПЛИС. Ключевые слова:

ПРИЕМНИК, ДЕМОДУЛЯТОР, ФАЗОВАЯ МОДУЛЯЦИЯ, ПЛИС Введение

Радиосвязь является одним из основных способов передачи информации на расстояние. Каждое устройство радиосвязи должно содержать приемник и передатчик, либо только один из них. Передат-

чик одного устройства должен произвести модуляцию высокочастотного радиосигнала информационным сигналом, а приемник другого устройства в свою очередь должен его демодулировать. Одним из основных видов модуляций сигнала является фазо-ая модуляция.

Рисунок 1 - Типовая схема приемника сигнала с фазовой модуляцией

Рассмотрим типовую схему приемника сигнала с фазовой модуляцией, представленную на рисунке 1. На вход приемника поступает сигнал вида: S(t) = cos(mt + Ф(г) + ф) , (1)

где m - угловая частота несущего сигнала, Ф("Ь) - фаза, изменяющаяся со временем и представляющая собой информационный сигнал, ф - случайная фаза при некогерентном приеме. Задачей приема является получение информационного сигнала Ф("Ь) .

В рассмотренной схеме входной сигнал S(t) поступает на квадратурный гетеродин, где он умножается на опорные сигналы вида cos(mt), сдвинутые между собой по фазе на ж/2 . Сигналы с выхода

умножителей поступают на фильтры низких частот, чтобы исключить высокочастотные гармоники. Далее синфазная I(t) и квадратурная Q(t) составляющие сигнала поступают на демодулятор. В результате работы демодулятора на его выходе формируется информационный сигнал Ф^) .

Ключевым блоком в полностью или частично цифровом приемнике с фазовой модуляцией является демодулятор. Он должен решать нетривиальную математическую задачу в реальном времени с темпом поступления значений на вход. Скорость входного потока может составлять единицы ГВыб/с. Настоящая работа посвящена исследованию различных методов расчета фазы сигнала по его квадратурам, выбору наиболее подходящего метода и на его основе синтезу блока программы для ПЛИС в рамках задачи создания цифровой радиолинии связи.

Постановка задачи

Для решения поставленной задачи были выполнены:

1. Анализ существующих методов расчета фазы сигнала по его квадратурам, синтез алгоритмов на

основе рассмотренных методов, исследование различных алгоритмов на программно-математической модели.

2. Формулирование требований к алгоритму расчета фазы в терминах точности, скорости и реализуемости на цифровом вычислителе. Сравнение алгоритмов и выбор одного из них для последующей реализации на ПЛИС.

3. Реализация алгоритма расчета фазы на ПЛИС. Проверка работоспособности и оценка характеристик.

Методы расчета фазы сигнала по квадратурам

Из определения квадратурных составляющих, I и О являются действительной и мнимой частями комплексной огибающей входного сигнала. Следовательно, аргумент комплексного числа 1+^0 будет являться искомой фазой сигнала. Область расчета фазы можно свести к первой четверти, соответственно взяв I и 0 по модулю, следующим образом:

arg(|I| + j\Q\), Ж + arg(| I\ + jQ ж + arg(| I + j|Q

у + arg( 1 + А

I > 0,Q > 0 , I < 0, Q > 0 I < 0,Q < 0

I), I > 0,Q < 0

(2)

Более того, без потери общности область расчета можно сократить до первой получетверти:

Мщ+у|е|), |е| < щ

arg(Q+аИХ IQI > I

(3)

Все методы расчета фазы можно разделить на табличные и расчетные. Табличные методы хранят в памяти заранее рассчитанные значения фазы с требуемой точностью. Точность расчетных методов

а

а

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

Далее будут рассмотрены основные методы расчета фазы, каждому из них будет дана оценка его преимуществ и недостатков с точки зрения точности, масштабируемости и реализации на цифровых вычислителях различного типа:

вычислитель с целочисленным расчетом (включая деление);

вычислитель с плавающей запятой (включая деление);

вычислитель с целочисленным расчетом без операции деления.

Для проверки алгоритмов, синтезированных по рассматриваемым методам, была разработана программа исследования алгоритмов расчета фазы по квадратурам. Программа написана на языке программирования С++ с использованием библиотеки в качестве среды разработки использовалась программа О^Сгеа^г. Общий вид программы представлен на рисунке 2. Программа позволяет выбрать алгоритм расчета фазы для исследования и задать его параметры. Для выбранного алгоритма результатом работы является ошибка расчета фазы, отображаемая на графике. Дополнительно выводится информация о максимальной и среднеквадратической ошибке. В случае табличного метода, так же отображается размер рассчитанной таблицы.

Программа исследования алгоритмов рас

С Целочисленный режим С Табличный метод

точность, градусы 0.5

С1 СОГЮ1С

Количество итераций

% Метод разложений в рад Тейлора

О агс5|п(х) О аг«д(х) в точке х-0 @ агс[д(х) в точках х=0 и х=1 Точка сшивания двух разложений 0.5 Число членов ряда 8

разрядность коэффициентов 10

С метод аппроксимирующей функции

| 0: [т28~

расчет фазы по заданным 1и0

расчет фазы

Амплитуда 16 «Р» шаг, градусы (Т

В цифровых устройствах разрядность АЦП редко превышает 16. Предположим, что на вход поступают 16-разрядные значения синфазной и квадратурной составляющей сигнала. Количество всевозможных значений одной квадратуры составляет 216. Количество всевозможных комбинаций значений двух

поэтому, если исполь-

квадратур составляет 23 зовать табличный метод напрямую, то объем требуемой памяти будет недопустимо большим.

Требуемый объем памяти можно уменьшить, если в таблице хранить значения обратной тригонометрической функции, а индексом таблицы будет служить нормированный аргумент функции. В этом случае алгоритм должен содержать процедуру вычисления индекса таблицы. В качестве обратной тригонометрической функции уместно использовать арктангенс, так как вычисление аргумента не требует расчета квадратного корня, и производная функции ни в какой точке не стремится к бесконечности. В этом случае таблица должна содержать значения фазы требуемой точности и в диапазоне от 0° до 45°. В связи с тем, что для расчета аргумента необходимо использовать деление, то этот метод подходит для вычислителей с плавающей запятой или вычислителей с целочисленной арифметикой и возможностью деления.

Синтез алгоритма. Таблица должна быть заполнена значениями арктангенса с таким шагом, чтобы в области максимальной производной шаг был равен требуемой точности. Пусть Дф - требуемая точность, тогда размер таблицы рассчитывается следующим образом:

N =

1

+ 1 ,

(4)

Хап(2л(р)

где квадратные скобки означают, взятие целой части числа. Для заданных I и Q индекс таблицы вычисляется по следующей формуле:

I ■

е

N + 0.5

(5)

Рисунок 2 - Интерфейс программы исследования алгоритмов расчета фазы

В программе с целью проверки работы выбранного алгоритма рассчитывается набор значений ^ и Qn таким образом, чтобы истинная фаза менялась с заданным шагом при постоянной амплитуде. Значения ^ и Qn рассчитываются по следующей формуле:

1п = А с^а ) <2„ = А втСа,)

где ап - изменяется в диапазоне от 0° до 45°. По полученным значениям рассчитанной фазы строится график зависимости ошибки расчета алгоритма от истинного угла, рассчитываются максимальная, средняя и среднеквадратическая ошибки. Для методов CORDIC и разложения в ряд Тейлора, программа позволяет использовать только целочисленный расчет. В этом случае точность расчета зависит от амплитуды сигнала и разрядности коэффициентов (для метода разложения).

Табличный метод

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

Результаты исследования. На рисунке 3 представлен график зависимости абсолютной ошибки расчета фазы табличным методом от истинного угла. Заданная точность расчета фазы равна 5°. Для расчета ошибки значения ^ и Qn рассчитываются таким образом, чтобы шаг истинного значения фазы составлял 0.5°. Из графика видно, что максимальная ошибка не превышает 5°. Получившийся размер таблицы для заданной точности равен 6. Для вычисления индекса в моделирующей программе использовалась арифметика с плавающей запятой.

Рисунок 3 - Ошибка расчета фазы табличным методом. Заданная точность 5°

Из-за того, что максимальная производная арктангенса ограничена (равна единице в нуле), то размер таблицы будет практически линейно расти с увеличением требуемой точности. В таблице 1 приведен размер таблицы в зависимости от требуемой точности алгоритма.

Таблица 1

Зависимость размера таблицы от требуемой точности алгоритма

Требуемая точность 5° 2° 1° 0.1°

Размер таблицы 6 15 29 287

Метод аппроксимирующей функции Описание метода. Данный метод заключается в расчете арктангенса с использованием следующей аппроксимации [1]:

21

агсг%( 2) = - 2

(6)

I 12 + 0.2812522

Выражение (6) позволяет рассчитать арктангенс на интервале от минус 45° до 45° при . На рисунке 4 представлен график ошибки расчета арктангенса по формуле (6). Из рисунка видно, что на большей части интервала ошибка не превышает 0,2 6°, а на границах значение ошибки доходит до 0,28°. Преимущество данного метода заключаются в том, что выражение не является итерационным, а значение ошибки 0,28° является приемлемым для использования этого алгоритма в некоторых задачах. Недостатком данного метода является невозможность повышение точности расчета, а также то, что требуется вычислитель с плавающей запятой из-за наличия операция деления с недетерминированным делителем.

/Т\ ........

ошибка = ....... \ -0.26° /

\ ошибка = 0.26° ^ \ У

кУ

-40

.40

жению в ряд Тейлора, например, функций: арксинус, арккосинус, арктангенс. В силу того, что для расчета аргумента арксинуса и арккосинуса необходимо выполнить вычисление квадратного корня, то, с точки зрения производительности и простоты реализации, уместнее использовать разложение арктангенса:

аг(х) = £

п=1

(-1)" 4 х2п 4 2п -1

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

для х < 1

(7)

Для расчета этого ряда требуется вычислитель с плавающей запятой, так как наличие степенной зависимости члена ряда приводит к стремительному увеличению разрядности.

На рисунке 5 представлен график ошибки расчета фазы с помощью разложения арктангенса в точке х=0 для восьми членов ряда. Из рисунка видно, что ошибка алгоритма расчета фазы данным методом приобретает максимальное значение при истинном угле 45°. Для уменьшения ошибки расчета можно воспользоваться дополнительным разложением арктангенса в точке х=1:

„ (х - 1)" 81П(3|") — аг^(X -1) = £-п-+ —

п=1 - 4

(8)

-20 0 20 Истинный угол 9 (градусы)

Рисунок 4 - Ошибка расчета арктангенса (иллюстрация взята из [1])

Синтез алгоритма. Алгоритм данного метода заключается в расчете выражения (6) для заданных I и 0.

Результаты исследования. На модели была получена зависимость ошибки расчета фазы от истинного значения угла вектора с координатами I и О аналогичная той, что представлена на рисунке 4.

Метод разложение в ряд Тейлора

Описание метода. Данный метод заключается в расчете тригонометрической функции по ее разло-

22 п

На рисунке 6 представлен график ошибки расчета фазы с помощью разложения арктангенса в точке х=1 для восьми членов ряда. Из рисунка 6 видно, что максимальная ошибка достигается при истинном угле 0°.

Чтобы уменьшить ошибку расчета фазы в окрестностях углов 0° и 45°, можно использовать комбинированное разложение арктангенса. Например, на интервале 0<х<Ь расчет проводить по разложению ряда в точке х=0, а на интервале Ь<х<1 использовать разложение в точке х=1. На рисунке 7 представлен график ошибки расчета фазы с использованием двух разложений сшитых, в точке Ь=0.5. Из рисунка видно, что использование комбинированного разложения значительно уменьшает ошибку расчета. Изменяя точку сшивания разложений, можно добиться уменьшения ошибки, например, в точке Ь=0.55 максимальная ошибка будет меньше примерно в три раза, чем при Ь=0.5 (для восьми членов ряда).

Рисунок 5 - Ошибка расчета фазы при разложении в точке х=0

Рисунок 6 - Ошибка расчета фазы при разложении в точке х=1

Рисунок 7 - Ошибка расчета фазы при разложении в точках х=0 и х=1

Синтез алгоритма. Суть алгоритма состоит в расчете сумм, представленных формулами (7) и (8).

Результаты исследований. На рисунке 8 представлен график зависимости максимальной ошибки расчета фазы от количества членов ряда для описанных выше алгоритмов.

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

20

18 —•—Ошибка расчета аг«вМ в

16 | 14 В * 12 двух точках

—♦—Ошибка расчета аг^(х) а

одной точке

I ю

1 * V

2

0 ( 2 4 6 8 10 12 14 16 18

Число членов ряда

Рисунок 8 - Максимальная ошибка расчета фазы в зависимости от числа членов ряда разложения

Метод по алгоритму CORDIC

Описание метода. Метод расчета фазы CORDIC (от англ. COordinate Rotation DIgital Computer - цифровой вычислитель поворота системы координат) заключается в последовательности поворотов вектора комплексного числа к действительной оси по известной формуле:

IM = I cos(£) - Qt sm(£.)

IM = It sm(ß) + Q cos(ß)

(9)

I,+1 = cos(ß)*(I,. - Qfg(ß))

(13)

а+1=ео8(д.)*(а - шд.))

Если выбрать такие углы поворота, что tg(фi)=2-i , тогда умножение на тангенс в формуле (13) можно заменить делением на степень двойки. Таким образом, можно получить следующие формулы, для поворота вектора:

1+1 = К (I )

а+1=к (а+ат-') 1

(14)

где K = cos(arctg(2 t )) -

Vi + 2-

-2t

коэффициент де-

формации вектора на 1-м шаге. Коэффициент К можно исключить из уравнений, так как он всегда положительный и соответственно не вносит дополнительного поворота вектора. С учетом всех изменений, получим итерационный алгоритм поворота вектора, использующий только операции сложения и деление на степень двойки:

I++1 = I -^^t 2-Q++1 = Qt + ^t h 2-

(15)

К преимуществам данного алгоритма можно отнести следующие моменты:

алгоритм может быть реализован на любом из рассматриваемых вычислителей;

точность расчета можно повысить, увеличив число итераций.

Результаты исследования. На рисунке 9 представлен график максимальной ошибки расчета фазы от количества итераций. Ошибка уменьшается в соответствии с формулой ф!=агсЬд (2-1)

где Ii, Qi - координаты вектора, Д^- угол поворота. Суммарный угол, на который пришлось повернуть вектор, будет искомым значением фазы. Представим полный угол поворота вектора следующей суммой:

п 1=1

где 01=±1 - направление поворота вектора, ф1>0 -абсолютное значение элементарного угла поворота, п - число итераций.

Сформулируем критерии для выбора последовательности ф^. Естественным требование является, чтобы каждый последующий элементарный угол поворота был меньше предыдущего с целью уменьшения ошибки расчета при росте п. Для того, чтобы ошибка определялась только последним углом поворота, достаточно, чтобы каждый следующий элементарный поворот был больше или равен половины предыдущего. Запишем эти условия в виде неравенства:

ф.+! <ф< 2ф.+! , (10) В качестве примера данному условию удовлетворяет последовательность углов вида: Ж

ф, = —, ' = 0,1,.., п ' 2'

Критерием выбора направления поворота вектора является знак значения Qi на каждом шаге:

а' =^'^(<2' ) (11)

Не сложно показать, что при соблюдении описанного правила выбора ф1 и направления поворота можно аппроксимировать произвольную фазу комплексного вектора с ошибкой не более чем последний угол поворота. Итоговое значение фазы будет накапливаться в конце каждой итерации по формуле:

а+1 =а-аф (12)

где а! - оценка искомой фазы на 1-ой итерации.

Синтез алгоритма. Описанный метод хорошо подходит для реализации на вычислителе с целочисленным расчетом. Уравнения (9) можно переписать

Рисунок 9 - Максимальная ошибка расчета фазы с помощью алгоритма CORDIC

Выбор алгоритма для реализации на ПЛИС Критерий выбора алгоритма расчета фазы вытекает из выше стоящей задачи разработки цифровой радиолинии связи:

вычисления должны выполняться в режиме реального времени с темпом поступления входных данных;

программа, разработанная по данному алгоритму, должна занимать минимально возможный ресурс ПЛИС;

по возможности выполнять вычисления в целочисленной арифметике;

ошибка расчета не должна превышать 1°. Приведенные ниже оценки потребления ресурсов рассчитывались исходя из реализации на ПЛИС семейства Virtex-2 фирмы Xilinx.

Табличный метод. Алгоритм, построенный по данному методу, потребует хранение таблицы размером 2 9 значений. Для обращения к таблице необходимо выполнить предварительную операцию вычисления индекса элемента по формуле (5). Языки VHDL и Verilog напрямую не поддерживает операцию деления. В тоже время Xilinx предлагает функционально законченный программный блок (IP-ядро) для выполнения целочисленного деления. В данном алгоритме разрядность делителя составляет 16, разрядность делимого 21. Блок целочисленного деления для данного алгоритма, выполняющий операцию с задержкой в один такт, займет 418 LUT (Look-Up Table - функциональный преобразователь) и 1210 триггера (687 ячеек).

Метод аппроксимирующей функции. Несмотря на то, что ошибку расчета этим алгоритмом невозможно уменьшить, он удовлетворяет требованию точности. Для расчета фазы по данному алгоритму требуется: четыре умножения, одно сложение и одно деление. Как и для табличного метода, для выполнения операции деления потребуется использовать IP-ядро целочисленного деления. Табличный метод является предпочтительнее, так как метод аппроксимирующей функции имеет большую разрядность входных значений блока деления (делитель 33 разряда, делимое 38 разряда), чем для табличного метода. Максимально допустимая разрядность делителя и делимого для блока целочисленного деления составляет 32, который при выполнении деления с задержкой в один такт займет 1155 LUT и 3234 триггеров (1807 ячеек),

Метод разложения в ряд Тейлора. Чтобы выполнить условие точности расчета, алгоритму, использующему комбинированное разложение, требуется только три члена ряда. Целочисленная реализация этого алгоритма осложняется предварительным вычислением аргумента с использованием операции деления, а так же ростом разрядности членов ряда. Для реализации данного алгоритма

в виде:

целесообразнее использовать арифметику с плавающей запятой. Фирма ХШпх предлагает !Р-ядра, работающие с числами с плавающей запятой и выполняющие операции деления, умножения, сложения и конвертации. Однако, данные программные блоки требуют много ресурсов ПЛИС. Например), 1Р-ядрю,

выполняющее деление 16 разрядных чисел (12 разрядов под мантиссу и 4 разряда для экспоненты), займет на ПЛИС 275 LUT и 407 триггеров при выполнении операции с задержкой 5 тактов, минимальной для IP-ядра версии vl.0.

Рисунок 11 - Схема программного модуля расчета фазы

Рисунок 12 Структурная схема программы-прошивки ПЛИС

Алгоритм CORDIC. Для выполнения требования точности расчета алгоритму требуется семь итераций, и соответственно требуется хранить в памяти семь значений элементарных углов поворота. Данный алгоритм легко реализуется в целочисленной арифметике, поскольку необходимые операции умножения, деления на степень двойки, сложения и вычитания доступны на ПЛИС.

Из рассмотренных методов, алгоритм CORDIC удовлетворяет всем требуемым критериям. Стоит отметить, что фирма Xilinx в своей библиотеке содержит IP-ядро для расчета арктангенса по алгоритму CORDIC, но данное IP-ядро не подходит для задачи радиолинии по формату вывода (число с фиксированной запятой).

Реализация алгоритма расчета фазы на ПЛИС

Программный модуль расчета фазы

Программный модуль расчета фазы на ПЛИС разрабатывался в среде ISE 8.1 на языке программирования VHDL. Проверка реализации программного блока проводилась на отладочной плате Virtex-2 Evaluation board.

На рисунке 11 представлена схема программного модуля расчета фазы. На входе модуля размещен блок преобразования входных значений квадратур (X, Y) к первой четверти. На выход блок выдает преобразованные значения квадратур, а так же инициализирует начальное значение угла в соответствии с номером четверти. После блока преобразования последовательно располагаются блоки поворота вектора на определенный угол в заданном направлении. На вход каждого блока поворота поступают текущие координаты вектора, направление поворота (G) и накопленный угол (Z). На выход блок выдает координаты вектора после поворота, направление следующего поворота и обновленное значение угла.

Для выполнения условия ошибки расчета в 1° требуется семь итераций поворота вектора. Разработанный программный модуль расчета фазы является параметризированным по количеству итераций поворота вектора и для проверок использовалось 7 итераций.

Для проверки работы модуля расчета фазы была разработана программа-прошивка ПЛИС, содержащая в себе модуль расчета фазы и инфраструктуру, необходимую для проверки модуля. Структурная схема программы представлена на рисунке 12. Программа состоит из блока UART, четырех блоков памяти типа FIFO, блока управления загрузкой данных, модуля расчета фазы и блока подготовки данных к отправке через UART.

Блок UART принимает данные по интерфейсу UART и сохраняет их в две асинхронные буферные памяти FIFO X и FIFO Y.

После наполнения FIFO_X и FIFO_Y блок управления загрузкой вычитывает данные из памяти и подает их на модуль расчета фазы. Модуль расчета фазы рассчитывает значение фазы по входным значениям квадратур и сохраняет результат в буферную память FIFO_PHASE.

Блок подготовки данных к отправке через UART вычитывает данные из FIFO_PHASE, преобразует разрядность, переводит в другой домен синхронизации и сохраняет данные в FIFO_OUT. Блок UART отправляет данные из памяти FIFO_OUT через UART интерфейс.

Тестирующая программа

Для проверки работы программы-прошивки и соответственно модуля расчета фазы была разработана тестирующая программа для персонального компьютера (ПК), которая отправляет значения квадратур по интерфейсу RS232 на отладочную плату, получает рассчитанные значения фазы и строит графики ошибки расчета. Программа разработана с использованием библиотеки Qt в среде Qt Creator на языке программирования С++.

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

На рисунке 14 представлен график зависимости ошибки расчета фазы программным модулем от истинного угла. Из графика видно, что ошибка расчета фазы не превышает 1°, что соответствует теоретическим расчетам для семи итераций.

На рисунках 15 и 16 представлены графики ошибки расчета фазы как зависимость от величины модуля вектора. Из графиков видно, что для угла 30° ошибка превышает 1° и не является константой, это объясняется ошибкой задания квадратур в целочисленном режиме для малого значения радиуса.

Рисунок 14 - График ошибки расчета фазы программным модулем на ПЛИС с семью итерациями поворота вектора

Рисунок 15 - График ошибки расчета фазы при изменении радиуса для угла 45°

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

Рисунок 16 - График ошибки расчета фазы при изменении радиуса для угла 30

Заключение

В ходе работы были исследованы четыре метода расчета фазы сигнала по квадратурам.

Для исследования этих методов была разработана программно-математическая модель. Исследование показало, что алгоритм CORDIC выполняет условие точности расчета и лучше подходит к реализации на ПЛИС, чем остальные методы, так как содержит только операции сложения, умножения и деления на степень двойки.

По алгоритму CORDIC на языке VHDL был синтезирован программный модуль расчета фазы. Для его проверки на отладочной плате была разработана программа-прошивка ПЛИС, а так же разработана тестирующая программа для персонального компьютера. Результаты проверки на тестирующей программе показали, что модуль расчета фазы работает в соответствии с теоретическими расчетами и соответствует требованиям по точности и скорости расчета.

ЛИТЕРАТУРА

1. Ричард Лайнс. «Цифровая обработка сигналов». Второе издание. Пер. с англ. - М.: ООО «Бином-Пресс», 2006 г.

2. Скляр Бернард. «Цифровая связь. Теоретические основы и практическое применение». Изд. 2-е, испр.: Пер. с англ. - М.: Издательский дом «Вильямс», 2003.

3. А. В. Захаров, В. М. Хачумов. «Алгоритмы CORDIC. Современное состояние и перспективы». 2004

г.

4. Л. Д. Кудрявцев. «Краткий курс математического анализа»: В 2-х т.: Т.1. Дифференциальное и интегральное исчисление функции одной переменной. Ряды.: 2-е изд., перераб. и доп. - Висагинас: «Alfa», 1998.

5.Интернет-ресурс: http://portal.tpu.rU/SHARED/k/KONVAL/Sites/Russian sites/Calcl-ru/4/19 el.htm

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