Устройство для вычисления функций синуса и косинуса
Иллюстрации
Показать всеРеферат
ОП ИСАИИЕ
Ь
1 к "„я г., Союз Советских
Социалистических
Республик (11) 53 3 1 - —
ИЗОБРЕТЕН Ия
К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (61) Дополнительное к авт. свид-ву (22) Заявлено 04.11.74 (21) 2072526/24 с присоединением заявки № (23) Приоритет (43) Опублнковано05.10.76.Бюллетень № 37 (45) Дата опубликования описания19.04.77 (51) М. Кл.
G 06 F 15/34
Гасударственный комитет
Совете Министров СССР по делам изооретений и открытий (53) УДК 681.325. .5 (088.81 (72) Авторы изобретения
P. В. Агеев и П. А. Тревогин (71) Заявитель (54) УСТРОЙСТВО ДЛЯ ВЫЧИСЛЕНИЯ ФУНКЦИЙ
СИНУСА И КОСИНУСА
Изобретение относится к области вычис- лительной техники и может быть использовано в устройствах для обработки частотномодулированных сигналов при цифровой фильтрации с применением дискретного преобра- 5 зования Фурье.
Известно устройство для определения Функций синуса и косинуса 111, в состав которого входят триггеры, элементы И, ИЛИ, триггерный регистр, шифратор и элементы 10 задержки, Известно.гакже устройство того же назначения f2), содержащее блоки управления; генератор тактовых импульсов, счетчик аргумента, элементы И, ИЛИ, регистры синуса и косинуса и триггеры.
B известных устройствах при применении итерационного метода вьгчисления функ ций синуса и косинуса при больших интервалах задания значений аргумента требуется значительное число итераций, что, вопервых, существенно снижает скорость вычисления функций и, во-вторых, приводит к накоплению ошибки в пределах интервала за- дания значения аргумента.
Из известных устройств наиболее близким по технической сущности к изобретению является устройство для вычисления синуса и косинуса угла, выраженного в двоичном коде f 3 .
Это устройство содержит блок памяти, блок коммутации функций, дешифратор и регистры синуса и косинуса, В устройстве для вычисления синуса и косинуса угла разряды, представляющие значение угла 8 выводятся с разрешением о & на информационные входы регистра, На выходах этого регистра сначала появляются значения 9 — a &, Кроме того, выходы ре— гистров связаны с помощью инверсной схемы, имеющей два устойчивых состояния, с выходами блока памяти (ПЗУ). В зависимости от состояния инверсной разрядной схемы на выходах ЗУ появляется либо значение синуса 6, либо синус угла, значения разрядов которого инвертированы относительно разрядов со значениями (& — а ), т,е, угла (O 12=8) Устройство может быть использовано для почти одновременного DIIределения синуса и косинуса угла &, зна531161 чения которого выражены в цифровой форме.
Известное устройство, в принципе, решает задачу вычисления функций синуса и косинуса, Однако использование табличного ЗУ са значениями синусоидальной функции от 0 до tt /2 существенно усложняет устройство и не позволяет одновременно определять значения синуса и косинуса пэ заданному значению аргумента.
Пелью изобретения является упрошение устройства и повып.;ение быстрэдействия.
10 первь-.м и вторым входами коммутатора, первый выход которого подключен ко второму входу регистра синуса,второй выход «кэ второму входу регистра косинуса. Выход генератора итераций подключен к третьим входам блока сложения, блока вычитания, регистра синуса, регистра косинуса и ко второму вхо50 ду счетчика остатка, второй вход триггера через элемент задержки соединен с первым входом делителя аргумента, и первым входом устройства. Второй вход делителя аргумента подключен ко второму входу устрой55 ства.
Это позволяет воспроизводить элементарные тригонометрические функции при диск60 ретном задании аргумента при помощи итеПоставленная цель достигается тем, чтэ предложенное устройство содержит делитель аргумента, блок сложения, блок вычи- 15 тания, блок выборки информации, счетчик остатка, элемент задержки, блок формирования знака функции, коммутатор, триггер и генератэр итераций. Первый выход делителя аргумента соединен со входами блока 20 формирования знака функций, блока выборки информации и с первыми входами блэка коммутации функций и коммутатора. Второй выход делителя аргумента подключен к первэму входу счетчика остатка, выход 25 которого через дешифратор соединен с первым входом триггера, BlэсOg которDI э подключен ко входу генератора итераций, Выход блока выборки информатики соединен со входом блока памяти, выход которого пэдклю- З0 чен к первым входам регистра синуса и регистра косинуса, первый выход кэторэгэ соединен с первым входом блэка вь чита— ния и втэрь м входом блока коммутации функций, вторэи — с первым входом блэка слэ35 жения и с третьим входом блока коммутации функций, Первый выход:регистра синуса гэдключен кэ второму входу блока сложения и к четвертому входу блока коммутации функций,второй выход — кэ второму входу блэка вычитания и к пятому входу блэка коммутации функций, Выходы блоков сложения и вычитания соединены соответственно с рационного принципа с использованием блока памяти для опорных значений функций.
На чертеже представлена функциональная схема устройства, где обозначены: делитель
1 аргумента, вход 2 устройства, элемент 3 задержки; вход 4 устройства для ввода делителя, счетчик 5 остатка, регистр 6 синуса, блок 7 сложения, блок 8 вычитания, регистр 9 косинуса, генератор 10 итераций, блок 11 кэммутациифункций, коммутатор 12, блэк 13 выборки информации, блок 14 формирования знака функций, дешифратор 15, триггер 16 и блок 17 памяти, В исходном состоянии по входу 4- на делитель 1 аргумента вводится постоянное число — двоичная часть эт 11 (например, 7Г / 3 2 ) Триггер 16 устанавливается в нулевое состояние, и в блэк 17 вводятся эпэрные значения функций (в даннэм случае для аргументов Я/52, 2ÉIY/52> Ъ 1Т/Ъ2 --, 8Я/52 т.е. восемь значений, так как при аргументе, превьш.;а ощем 8ЯВ2 = 71/4 можно пользоваться формулами приведения.
Значение аргумента в двэичном коде записывается в делитель 1 аргумента, в котором эсушествляется деление на % /32, В результате деления образуется число, в котором остаток (используются только пять разрядов), эпределяюший числэ итераций, в параллельном коде записывается в счетчик
5 остатка, в определенные разряды усеченной целой части (в данном случае шесть младших разрядов) вводятся в блэк 14 формирования знака функций, блок - 3 выборки информации, блок 11 кэммутации функций и в коммутатор 12.
В блэк 13 выбэрки информация поступает с четырех младших разрядов целой части. Согласно значению трех разрядов, эпределяюших микрэинтервал, из блока 17 памяти должны быть считаны и записаны в регистр 6 синуса и регистр 9 косинуса соэтветствуюшие значения функций. При этом значение четвертого разряда показывает, какой восьмэй части круга принадлежит аргумент — (O,TC/4 ) или Е Т /4, R/2 ) .
Значение 0 указывает на промежуток 0,1 / 4 1 и соответственно на считывание из блока 17 значений функций, поставленных в соответствие значению трех младших разрядов целой части. Значение 1 указывает на промежуток (Е/4, П/2 ."1 и соответственно, — на считывание из блока 17 последующих значений функций синуса и косинусаа, чт о с о ответствует "зеркальному" значению аргумента в промежутке Г О, TC/43
В этом случае в коммутаторе 12 осуществляется переключение выходов блока 7 сло
531161 жения и блока 8 вычитания, т,е, производится интегрирование "назад", В блок 14 поступает информация с пятого и шестого разрядов целой части. указывающая номер квадранта и соответственно, знак функций синуса и косинуса. В блоке 11 коммутации функций информация четвертого и пятого разрядов указывает на необходимость реверса функций.
При введении аргумента записи в регист-10 ры 6 и 9 соответствующих значений функций с задержкой, определенной элементом
3 задержки, триггер .16 перебрасывается в единичное состояние, и запускается генератор 10 итераций. 15
В этом случае число, образованное первой половиной разрядов в регистре 9 коси нуса, прибавляется к числу, образованному второй полэвиной разрядов регистра 6 синуса, и следовательно, в регистре 6 си- 20 нуса устанавливается число, превышающее исходное на величину, соответствующую одной итерации.
Число, образованное первой половиной разрядов регистра 6 синуса, вычитается из числа, образованного второй половиной разрядов регистра 9 косинуса и следовательно, в регистре 9 косинуса устанавливается число, меньшее исходного на величину также сээтветствующую эднэй итерации. 30
Описанная процедура накопления в регистрах
6,9 повторяется до тех пор, пока не будет вычтено из счетчика 5 остатка значение остатка.
В этом случае с выхода дешифратора 15 (например, многовходовогэ элемента И) сигналом, фиксирующим нулевое состояние счетчика 5 остатка, триггер 16 устанавливается в единичное состояние и генератор
10 итераций затормаживается. При этом на выходе устрэйства формируются значения 40 функций синуса и косинуса, а также знак функций, указывающий их принадлежность соответствующему номеру эктанта.
Работа устройства основана на использовании двух математических принципов: на вычислении функций синуса и косинуса как решения системы дифференциальных уравнений
|методом Эйлера и на предварительном делении аргумента на постоянное число — двоичную долю от 1 — с целью определения зна- 55 ков синуса и косинуса, а также определения начальных условий.
Для этого выбираются две xoBGTGHTbI шаг решения и шаг, с помощью которого за- 60 даются начальрые условия. В качестве первого шага выбирается целая отрицательная степень двойки и в качестве второго — число + /4, умноженное на целую отрицательную степень двойки.
Предположим, например, что выбраны, соответственно, 1/256 = 0,00000001(4» и tT/4:8 =0,00001t@»< Это означает, чтд система решается со значением итерации
1/256 и с исходными данными, соответствующими аргументу из совокупности значений
0, П/52 2 !Т/Ъ2 ".> f/Ъ2 ..., 8fl/52 ближайших к заданному значению аргумента. Следовательно, при решении системы для любого аргумента необходимо выполнять не более (% / 32: 1/256) 25 итераций.
Йчя вычисления функций синуса и косинуса произвольного аргумента заданнэе значение аргумента делится на
)I: /32 = 0,0001 1 001 001 0001 0(2) причем используются только шесть младших разрядов целой части частного и пять разрядов (с четвертого по восьмой после запятой) эстатка от деления. Разряды частного с седьмого и старше отбрасываются, так как эни лишь указывают, сколько раз в аргументе содержатся 2Th, т,е. период. Шестой и пятый разряды указывают нэмер квадранта, в который попадает аргумент после вычитания из него кратног o 2 1 / О О-I квадрант, 01- I I квадрант, 1 Π— 1И квадрант и 1 1 — 1У квадрант ) . Эти значения эпределяют знаки функций синуса
gl и косинуса (00: ++, 01:+-, 10: —,11 -+).
Четвертый и пятый разряды несут информа цию о наличии или отсутствии необходимости реверса синуса и косинуса согласно фор» мулам приведения: если эти разряды одинаковы, то синус и косинус сохраняют свои наименования, если же разряды различны, то синус и косинус меняются ролями. Четвертый разряд целой части показывает, какой восьмой части круга принадлежит аргумент после вычитания из него кратного
%/2: значение О указывает на промежуток (О, K /4 1, значение 1 — на промежуток
$K/4; It /23.
В первом случае (если четвертый разряд есть О) обе функции находят непосредственно от аргумента, редуцированного по модулю 4>
1/4 равнозначна тогда редукции по модулю K/2, и дальше необходимо лишь использование формул приведения), вэ.втэром случае(если четвертый разряд есть 1) их находят от дополнения аргумента, редуцированного по модулю 1 /4, до Я. /4. Например, 531161 причем
Ь1 И А. = I-OS с ., СОЬ д-„= 6111 д. . далее три младших разряда целой части частного указывают на микрэинтервал интегрирования, а пятиразрядный остаток (с
-1 15 етвертэй цифры по восьмую после запятой)на число итераций, которые необходимо выполнить при интегрировании системы.
Р асс м атриваетс я сначала случай, когда четвертая цифра целой части частного рав- 20 на О, т.е. 6 (, 0,
000 — 10, << /321; 001 — (à /32, 2 K /321;
010 — (2 li /32, 3 tI /32 ;...; 111 (7 32,>
Пятиразрядный остаток означает число итераций, которое необходимо сделать при интегрировании системы "вперед", г1апример, если младшая тройка частного есть
011, а остаток равен 01000, то будет сделано 1002 » =9 шагов от начальных значений Ып 3 /32 и С053 и /32, которые вызывшотся из блока памяти на регистры, Рассмотрим случай, когда четвертая цифра целой части частного равна 1, т.е. о 8
g R / 4, l /23. Тогда соответствие между младшей тройкой и микрэинтервалэм "зеркально" по этно шению к выш еприведенн эму: 000 — 7 7 /32, K /4 3; 001 — (6 Е/3
7 П /323, 110 — (5 tI /32, 6 R /321;....;
111 — (О, 3Т /323.
25 Указанные значения записываются в регистр синуса и в регистр косинуса только дробными частями. Решение системы состоит в том, чтэ при каждой итерации текущее значение косинуса сдвигается на воЗ0 семь разрядэв вправэ, прибавляется к текущему значению синуса и после этого полученное значение синуса, сдвинутое на восемь разрядов вправо, вычитается из текущего значения косинуса. Процесс заканчивается после пятой итерации. Промежуточные вычисления сведены в таблицу.
Истинные значения синуса и косинуса этого угла с точностью до шестнадцатого двоичного знака равны соответственно
40 0,0100, 1111 0001 0101 и 0,1111
0011 0111 1010, т.е, погрешность в данном случае составляет одну или две едини2, цы шестнадцатого двоичного знака после запятой.
7 если исходныи аргумент 3 о равен Г /6 6 (0 /4), т,е. четвертый разряд — О, тэ находятся прямо 5111 d-О и C0s о О . Если же o= Х/3 6 (Tt, /4, Tt /2), т.е. четвертый разряд — 1, то после редукции Ао по модулю TI /4 получается с - = -0 - /4 =
= < /1 2, а дополнение равно с = ° /4 — А =
= 9/6, F/32= 0,00011001 0010 0010 целая часть частного равна 10100011, а остатэк составляет 0,0000 0101 0001 1100.
Две старшие цифры частного (10) не нужны,так как oIIH показывают лишь,чтэ „) 4 Т .
4 Т
Отбрасывая их (r устройстве зтэ делается автоматически), пэлучаем 100011.
От остатка сохраняются лишь цифры с четвертой пэ восьмую (в устройстве зто также вь|полняется автоматически), т.е. 00101.
Принимая вэ внимание сущность описанного алгэритма, видно, что угол принадлежит)лквадранту и после приведении по
Ф /2 — к первой восьмой части. Это значит, что перед обеими функциями нужно взять знак "ми Iyc", Далее интервал интегрирования ГЗЛ/32, 4 Я/32), Число итераций интегрирования равно (при значении остатка 00101) пяти. В зтэм случае из
ЗУ считываются значения 6111 3 /32 и ф 2 равные в двоичной записи
0,0100101001001101 и 0,111101001111101 соответственно.
Пятиразрядный остаток на этот раз представляет уже число итераций пе " вперед ", а "назад" — эт верхнего предела микроин— тервала„
rg
Интегрирование выполняется ПО формулам
+ О,ОООО 000! Ь.
1+1 1 1з
2 = 7„. — О,OO О 0 О О О 1 (.
1+1 1 1+ 4
В качестве примера рассмэтримнахэждение б1 11 с . и Cosd- где cL = 1 0000, 0000
0101 1100 0010. При делении Со на 60
Используя формулы приведения (информация эт хестэгэ, пятого и четвертОго разряд эв це1 0i част ) ПОлу чаем окончательно 111 . -0.0100 1111 0001 0011, -о A.-..;--О„,.1 11 10011 0111 1001.
Таким образом. использование принципа вычисления,.ункций синуса и косинуса как решения системы дифференциальных уравнений, .предварительное деление аргумента на пОстэяннэе число с целью определения зна кэв си:=.уса, косинуса и начальных условий, 8 I QIIIKi=. ICII 0 "Ih3 0BGI=" e не б эльш эг 0 II 0 обьему блока памяти для опорных значений функций позволяет сушественно повысить точность вычисления синуса и косинуса, а зна531161
10 диолокационной информации, особенно при корреляционной обработке частотно-модулированных сигналов с использованием дискретного преобразования Фурье.
СОЬ
Итерация
01 00
0100
1011
1101
1111
0101
OlOO
0011
0001
0011
00001
0001 0
0001 1
00101
Устройство для вычисления функций синуса и косинуса, содержащее блок памяти, блок коммутации функции, дешифратор и ре- 20 гистры синуса и косинуса, о т л и ч а ю— щ е е с я тем, что, с целью упрощения уст ройства и повышения быстродействия, оно содержит делитель аргумента, блок сложения, блок вычитания, блок выборки информа-. 25 ции, счетчик остатка, элемент задержки, блох формирования знака функции, коммутатор, триггер и генератор итераций, причем первый выход делителя аргумента соединен со входами блока формирования знака функций, ЗО блока выборки информации и с первыми входами блока коммутации функций и коммутатора, второй выход делителя аргумента -псгдключен к первому входу счетчика остатка,. выход которого через дешифратор соеди- 35 нен с первым нходом триггера, выход которого подключен ко входу генератора итераций, вь.ход блока выборки информации соединен со входом блока памяти, выход которого подключен к первым входам регист- 4О ра синуса и регистра косинуса, первый выход которого соединен с первым входом блока вычитания и в. орым входом блока коммутации функций, второй выход -с первым входом блока чительное уменьшение числа итераций — повысить быстродействие.
Кроме того, устройство позволяет умень= шить машинное время цифровой обработки раФормула изобретения
1111 0100 1111 1010
1111 0100 101р 1111
11 11 OlOO 0110 OOl1
1111 0100 0001 0110
1111 0011 1100 1000
1111 0011 0111 1001 сложения и с третьим. входом блока коммутации функций, первый выход регистра синуса подключен ко второму входу блока сложения и к четвертому входу блока коммутации функций,второй выход — ко второму входу блока вычитания и к пятому входу блока коммутации функций, выходы блоков сложения и вычитания соединены соответственно с первым и вторым входами коммутатора, первый выход которого подключен ко второму входу регистра синуса, втэрэй выход «кэ второму входу регистра косинуса, выход генератора итераций подключен к третьим входам блока сложения, блока вычитания, регистра синуса, регистра косинуса и ко второму входу счетчика остатка, причем второй вход триггера через элемент задержки соединен с первым входом делителя аргумента и первым входом устройства, второй вход делителя аргумента подключен ке второму входу устройства.
Источники информации, принятые во внимание при экспертизе: Ф
1. Авторское свидетельство СССР № 341045; кл. G 06 7/26, 24.07.70.
2. Авторское свидетельство СССР № 419896, кл. 6 06 f 15/34, 03.05.71.
3. Патент Франции ¹ 2175237, кл.
С 06 8 7/00, опубликован 1 9. 1 О. 73.
Составитель A. Жеренов
Редактор Л. Утехина Техред A. БогданКорректор Н. Ковалева
Заказ 5297/128 Тираж 864 Подписное
11НИИПИ Государственного комитета Совета Министров СССР по делам изобретений и открытий
113035, Москва, K-35, Раушская наб., д. 4/5
Филиал ППП "Патент", r. Ужгород, ул. Проектная, 4