Устройство для вычисления функций синуса и косинуса — SU 531161 (original) (raw)
)ОП ИКАНИЕ Союз Советских Социалистических Республик(22) Заявлено 04,11.7 с присоединением зая 20725 26/24 51) М. исудврственныи номит свете Министров ССС по делам изооретенийи открытий 3) Приоритет3) Опубликован(72) Авторы изобретени В. Аг П. А. Тревоги 71) Заявитель ТРОИСТВО ДЛЯ ВЫЧИСЛЕНИЯ ф СИНУСА И КОСИНУСАойств наибо шности к и Из известных уст ким по технической нию является устрой ее бли обрете во для вычислени а, выраженного в ржит блок ий, дешифр мяти то инус яющи на решение тра, На оявляют о, выход версной остояни В зависим ядной схе либо значе 20 н либо синус угла, знаого инвертированы отнзначениями (9 - д В )Устройство может бытпочти одновременногоа и косинуса угла 6. ени а я ситель, т,е,ь исопт дов с разпяла (1 т о для пользовределени сину знаИзобретение относится к области вычис-лительной техники и может быть использовано в устройствах для обработки частотномодулированных сигналов при цифровой фильтрации с применением дискретного преобразования фурье.Известно устройство для определения Функций синуса и косинуса Г 11, в состав которого входят триггеры, элементы И, ИЛИ,триггерный регистр, шифратор и элементызадержки,Известно.гакже устройство того же назначения 1 2 1, содержащее блоки управления;генератор тактовых импульсов, счетчик аргумента, элементы И, ИЛИ, регистры синуса и косинуса и триггеры,В известных устройствах при применении итерационного метода вычисления функьций синуса и косинуса при больших интервалах задания значений аргумента требуется значительное число итераций, что, вопервых, существенно снижает скорость вычисления функций и, во-вторых, приводит кнакоплению ошибки в пределах интервала задания значения аргумента. синуса и косинуса угл) ичном коде 13 . Это устройство соде блок коммутации функцгистры синуса и косинуса,В устройстве для вычислени косинуса угла разряды, предста чение угла 9 выводятся с раз на информационные входы регис ходах этого регистра сначала п значения 9 - д Э , Кроме тог гистров связаны с помощью ин мы, имеющей два устойчивых с )выходами блока памяти (ПЗУ). ти от состояния инверсной разр мы на выходах ЗУ появляетсячения которого выражены в цифровой форме,Известное устройство, в принципе, решаетзадачу вычисления функций синуса и косинуса, Однако использование табличного ЗУ сэзначениями синусоидальной функции от Одо Г/2 существенно усложняет устройствои не позвэляет одновременно определятьзначения синуса и косинуса по заданномузначению аргумента,Целью изобретения является упрощениеустройства и повышение быстрэдействия. 10 первым и вторым входами коммутатора, первый выход которого подключен ко второму входу регистра синуса,втэрэй выхэд -кэ второмуу входу регистра косинуса. Выход генератора итераций подключен к третьим входам блока сложения, блока вычитания, регистра синуса, регистра косинуса и ко второму вхо 50 ду счетчика остатка, второй вход триггера через элемент задержки соединен с первым входом делителя аргумента, и первым входом устройства. Второй вход делителя аргумента подключен ко второму входу устрой 55 ства,Это позволяет воспроизводить элементарные тригонометрические функции при диск 60 ретном задании аргумента при помощи итеПоставленная цель достигается тем, что предложенное устройство содержит делитель аргумента, блок сложения, блок вычи тания, блок выборки информации, счетчик остатка, элемент задержки, блок формирования знака функции, коммутатор, триггер и генератэр итераций, Первь 1 й выход делителя аргумента соединен со входами блока 20 формирования знака функций, блока выборки информации и с первыми входами блэка коммутации функций и коммутатора, Второй выход делителя аргумента подключен к первэму входу счетчика эстатка, выход 25 кэторого через дешифратор соединен с первым входом триггера, выход которого подключен ко входу генератора итераций, Выход блэка выборки информатпп 1 соединен со входом блока памяти, выход которого пэдклю- З 0 чен к первым входам регистра синуса и регистра косинуса, первый выход кэторэгэ сэединен с первым входом блэка вьчита - ния и втэрьм входом блока коммутации функций, вторэи - с первым входом блэка слон 35 жения и с третьим входом блока коммутации функций, Первый выход: регистра синуса подключен кэ второму входу блока сложения и к четвертому входу блока коммутации функций,второй выход - кэ второму входу блэка вычитания и к пятому входу блэка коммутации функций, Выходы блоков сложения и вычитания соединены соответственно с рационного принципа с использованием блока памяти для опорных значений функций,На чертеже представлена функциональнаясхема устройства, где обозначены: делитель1 аргумента, вход 2 устройства, элемент 3задержки; вход 4 устройства для ввода делителя, счетчик 5 остатка, регистр 6 синуса,блэк 7 сложения, блок 8 вычитания, регистр 9косинуса, генератэр 10 итераций, блок 11 кэммутациифункций, кэммутатэр 12, блэк 13 выборки информации, блок 14 формирования знака функций, дешифратор 15, триггер 16 иблок 17 памяти,В исходном состоянии по входу 4 наделитель 1 аргумента вводится постоянноечисло - двоичная часть эт 11 (например,% / 2 ) Триггер 16 устанавливается в нулевое сэстэяние, и в блок 17 вводятся эпорные значения функций (в данном случае дляаргументов Й/Ь 2 21/Ъ 2 ЪЯЪ 2 " 8 П/52т,е. восемь значений, так как при аргументе, превьш.,а ошем 8 ЯВ 2 = %4 мэжнэ пэльзэваться фэрмулами приведения,Значение аргумента в двэичном коде записывается в делитель 1 аргумента, в котором осуществляется деление на % /32, Врезультате деления образуется число, в котором остаток (используются только пятьразрядов), эпределяющий число итераций, впараллельном коде записывается в счетчик5 остатка, в определенные разряды усеченной целой части (в данном случае шестьмладших разрядов) вводятся в блэк 14 формирования знака функций, блок 13 выборкиинформации, блок 11 кэммутации функцийи в коммутатор 12,В блок 13 выбэрки информация поступает с четырех младших разрядов целой части. Согласно значению трех разрядов, определяющих микрэинтервал, из блока 17 памяти должны быть считаны и записаны врегистр 6 синуса и регистр 9 косинуса соответствующие значения функций, При этомзначение четвертого разряда показывает,какой восьмэй части круга принадлежит аргумент - О,Е/41 или 1 Я 4, Е 23,Значение О указывает на промежутокО,Г/4 1 и соответственно на считывание из блока 17 значений функций, поставленных в соответствие значению трех младших разрядов целой части, Значение 1 указывает на промежуток 1",П/4, П 12 3 и соответственно, - на считывание из блока 17 последующих значений функций синуса и косинуса, что соответствует "зеркальному" значению аргумента в промежутке 1, 0,3 Г 42 В этом случае в коммутаторе 12 осуществляется переключение выходов блока 7 сложения и блока 8 вычитания, т,е, производится интегрирование "назад",В блок 14 поступает информация с пятого и шестого разрядов целой части. указывающая номер квадранта и соответствен но, знак функций синуса и косинуса, В блоке 11 коммутации функций информация четвертого и пятого разрядов указывает на необходимость реверса функций.При введении аргумента записи в регист ры 6 и 8 соответствующих значений функций с задержкой, определенной элементом 3 задержки, триггер,16 перебрасывается в единичное состояние, и запускается генератор 10 итераций. 15В этом случае число, образованное первой половиной разрядов в регистре 8 коси нуса, прибавляется к числу, образованному второй половиной разрядов регистра 6 синуса, и следовательно, в регистре 6 си нуса устанавливается число, превышающее исходное на величину, соответствующую одной итерации.Число, образованное первой половиной разрядов регистра 6 синуса, вычитается из числа, образованного второй половиной разрядов регистра 9 косинуса и, следовательно, в регистре 9 косинуса устанавливается число, меньшее исходного на величину также соответствующую одной итерации, 30 Описанная процедура накопления в регистрах 6,9 повторяется до тех пор, пока не будет вычтено из счетчика 5 остатка значение остатка. В этом случае с выхода дешифратора 15 (например многовходового элемента И) сиг- З 5 налом, фиксирующим нулевое состояниесчетчика 5 остатка, триггер 16 устанавливается в единичное состояние и генератор 10 итераций затормаживается, При этом на выходе устройства формируются значения 40 функций синуса и косинуса, а также знак функций, указывающий их принадлежность соответствующему номеру октанта.45Работа устройства основана на использовании двух математических принципов: на вычислении функций синуса и косинуса как решения системы дифференциальных уравнений50методом Эйлера и на предварительном делении аргумента на постоянное число - двоичную долю от 1 - с целью определения зна ков синуса и косинуса, а также определения начальных условий.Для этого выбираются две константы;шаг решения и шаг, с помощью которого задаются начальрые условия. В качестве первого шага выбирается целая отрицжальная степень двойки и в качестве второго - число Х /4, умноженное на целую отрицательную степень двойки.Предположим, например, что выбраны, соответственно, 1/256 = 0,00000001(4) и 17/4:8 =0,00001 Й Это означает, чтд система решается со значением итерации 1/256 и с исходными данными, соответствующими аргументу из совокупности значений О,Л/52 2 Т/Ъ 2".П/Ъ 28 Я/У 2ближайших к заданному значению аргумента. Следовательно, при решении системы для любого аргумента необходимо выполнять не болееО / 32: 1/256) - 25итераций.Ддя вычисления функций синуса и косинуса произвольного аргумента заданное значение аргумента делится на13/32 = 0,0001100100100010, причем используются только шесть младших разрядов целой части частного и пять разрядов (с четвертого по восьмой после запятой) эстатка от деления, Разряды частного с седьмого и старше отбрасываются, так как они лишь указывают,сколько раз в аргументе содержатся 2 П,т,е. период. Шестой и пятый разряды указывают нэмер квадранта, в который попадаетаргумент после вычитания из него кратного 2 1 /00-1 квадрант, 01- 11 квадрант,10 - 1 И квадрант и 11 - 1 У квадрант). Этизначения эпределяют знаки функций синусафи косинуса (00: , 01:+-, 10: - ,11 -+).Четвертый и пятый разряды несут информацию о наличии или отсутствии необходимости реверса синуса и косинуса согласно формулам приведения: если эти разряды одинаковы, то синус и косинус сохраняют своинаименования, если же разряды различны,то синус и косинус меняются ролями, Четвертый разряд целой части показывает, какой восьмой части круга принадлежит аргумент после вычитания из него кратного%/2: значение 0 указывает на промежутокО, Е/41, значение 1 - на промежуток17/4; 1 Т/23,В первом случае (если четвертый разряд есть 0) обе функции находят непосредственно от аргумента, редуцированного по модулю 11/4 (поскольку редукция по модулю /4 равнозначна тогда редукции по модулю Е/2, и дальше необходимо лишь использование формул приведения), во.втэром случае(если четвертый разряд есть Цих находят от дополнения аргумента, редуцированного по модулю 1 Т/4, до 11, /4. Например,причем 51 п с-= Сов с.,СО 5 д О = 51 П д Далее три младших разряда целой части частного указывают на микрэинтервал интегрирования, а пятиразрядный остаток (с15 четвертой цифры по восьмую после запятой)- на число итераций, которые необходимо выполнить при интегрировании системы,Рассматривается сначала случай, когдачетвертая цифра целой части частного равна О, т.е. с с 1 О,/4), где с -аргумент после редукции пэ модулю%/4, Тогда соответствие между младшей тройкойразрядэв целой части частного и микроинтервалом интегрирования будет такое:000 - 10, ц /323; 001 - 1 П /32, 2/321;010 - (, 2 к /32, 3 к /323;,; 1117 1 /32,/41,Пятиразрядный остаток означает числоитераций, которое необходимо сделать приинтегрировании системы фвперед", Например, если младшая тройка частного есть011, а остаток равен 01000, то будетсделано 1001=9 шагов от начальных значений 5 п 33 Т 32 и СОЮЗ и /32, которыевызываются из блока памяти на регистры,Рассмотрим случай, когда четвертая цифра целой части частного равна 1, т,е, о 8Г/4, Г /21, Тогда соответствие междумладшей тройкой и микрэинтервалэм "зеркал ьнэ" по этно шению к выш еприведенн эму: 000 -7 7 /32, 7 /4".; 001 - 6 Е/37 1 Г/323, )10 -5 Г/32, 6 Т/321;,;111 - 0, М/323. 25 Указанные значения записываются в регистр синуса и в регистр косинуса толькодробными частями. Решение системы состсит в том, чтэ при каждой итерации текущее значение косинуса сдвигается на воЗО семь разрядов вправо, прибавляется к текущему значению синуса и после этого полученное значение синуса, сдвинутое на восемь разрядов вправо, вычитается из текушегэ значения косинуса, Процесс заканчивается после пятой итерации. Промежуточные вычисления сведены в таблицу.Истинные значения синуса и косинусаэтого угла с точностью до шестнадцатогодвоичного знака равны соответственно40 О, 01 00, 1111 0001 01 01 и О, 11110011 0111 1010, т.е, погрешность в данном случае составляет одну или две едини 2,цы шестнадцатэгэ двоичного знака послезапятой,7если исходный аргумент З.О равен И /6(О Г/4), т,е, четвертый разряд - О, тэ находятся прямо Ь 1 т 1 с-о и Сов д-о, Если же со= С/3 6 Я /4, 7 Г/2), т,е, четвертый разряд - 1, то после редукции Ао по модулю "7 /4 получается с = а-о - й/4 =тг=1 с/12, а дополнение равно Ы =/4 - А= = 3 Т/6,Г/32= 0,00011001 0010 0010 целая часть частного равна 10100011, а остатэк составляет О, 0000 01 01 0001 11 00, Две старшие цифры частного (10) не нужны,так как эпи показывают лишь,чтэ ) 4 Т .4 Т Отбрасывая их (в устрэйстве этэ делается автэматически), пэлучаем 100011, От эстатка сохраняются лишь цифры с четвертой пэ восьмую ( в устройстве зто также выполняется автоматически), т,е. 00101.Принимая вэ внимание сущность описанного алгэритма, видно, что угол принадлежитИквадранту и пэсле приведении по 3/2 - к первой восьмой части. Это значит, что перед обеими функциями нужно взятьзнак"минус". Далее интервал интегрирования ГЗЛ/32, 4 Г/32, Число итераций интегрирования равно (при значении остатка 00101) пяти. В етом случае из ЗУ считываются значения о 30 /32 и СОВ З 2равные в двоичной записи 0,0100101001001101 и 0,111101001- 111101 соответственно.Пятиразрядный остаток на этот раз представляет уже число итераций не " вперед ", а назад" - эт верхнего предела микроинтервалагИнтегрирование выполняется по фэрмуламУ =У +О,ОООО ООО 11+ 1 ф 1 тЕ =Х -О,ОООО ООО 1.1+ +В качестве примера рассмэтримнахэждение б 1 м с. и Сова- где с 1. = 1 0000, 0000 0101 1100 0010, При делении АО на 60 Используя формулы приведения (информация эт хестогэ, пятОГО и четвертоГО раз- рядов целой част:) получаем окончательноч 1 то.;Ф.0100 1111 0001 0011, Соь д ;.-01. 11 0011 0111 1001,Таким э. разом. использование принципа вычисления аункций синуса и косинуса как решения системы дифференциальных уравнений, .предварительное деление аргумента на постоянное число с целью определения знаков си:=.уса, косинуса и начальных условий, а также использование небольшого пэ обьему блока памяти для опорных значений функций позволяет сушественно повысить точность вычисления синуса и косинуса, а зна531161 10 диолэкационной информации, особенно при корреляционной эбработке частотно-модулированных сигналов с использованием дискретного преобразования Фурье.5 СОЬ Итерация 0100 0100 0100 0100 0100 0100 1010 1011 1100 1101 1110 1111 0101 0100 0011 0010 0010 0001 0000 0100 1000 1100 0000 0011 15 00000 00001 00010 00011 00100 00101 Устройство для вычисления функций синуса и косинуса, содержащее блок памяти, блох коммутации функции, дешифратор и ре гистры синуса и косинуса, о т л и ч а ю - ш е е с я тем, что, с целью упрощения уст ройства и повышения быстродействия, оно содержит делитель аргумента, блок сложения, блок вычитания, блок выборки информа ции, счетчик остатка, элемент задержки, блох формирования знака функции, коммутатор, триггер и генератор итераций, причем первый выход делителя аргумента соединен сэ входами блока формирования знака функций, ЗО блока выборки информации и с первыми входами блока коммутации функций и коммутатора, второй выход делителя аргумента подключен к первому входу счетчика остатка, выход которого через дешифратор соеди нен с первым нходом триггера, выход которого подключен ко входу генератора итераций, выход блока выборки информации соединен со входом блока памяти, выход которого подключен к первым входам регист О ра синуса и регистра косинуса, первый выход которого соединен с первым входом блока вычитания и в. орым входом блока коммутации функций, второй выход -с первым входом блока чительное уменьшение числа итераций - повысить быстродействие,Кроме того, устройство позволяет уменьшить машинное время цифровой обработки раформула изобретения 1111 0100 1111 1010 1111 0100 1010 1111 1111 0100 0110 0011 1111 0100 0001 0110 1111 0011 1100 1000 1111 0011 0111 1001 сложения и с третьим входом блока коммутации функций, первый выход регистра синуса подключен ко второму входу блока сложения и к четвертому входу блока коммутациифункций,втэрэй выхэд - кэ втэрэму входу блокавычитания и к пятому входу блока коммутациифункций выходы блоков сложения и вычитания соединены соответственно с первым ивторым входами коммутатора, первый выход которого подключен ко второму входурегистра синуса, второй выход -кэ втэрэму входу регистра косинуса, выход генератора итераций подключен к третьим входам блокасложения, блока вычитания, регистра синуса, регистра косинуса и ко второму входусчетчика остатка, причем второй вход триггера через элемент задержки соединен спервым входом делителя аргумента и первым входом устройства, второй вход делителя аргумента подключен Х 9 второму входу устройства,Источники информации, принятые во внимание при экспертизе: Ф1, Авторское свидетельство СССР341045; кл, 5 067/26, 24.07.70,2. Авторское свидетельство СССР41 9896, кл, 6 06 1 1 5/34, 03.05, 71,3. Патент франции2175237, кл.С, 06 1 7/00, опубликован 19.10.73.Составитель А, ЖереновРедактор Л. Утехина Техред А, БогданКорректор Н. КовалеваЗаказ 5297/128 Тираж 864 ПодписноеЦНИИПИ Государственного комитета Совета Министров СССРпо делам изобретений и открытий113035, Москва, Ж, Раушская наб., д 4/5Филиал ППП фПатент", г, Ужгород, ул. Проектная, 4