Синусно-косинусный преобразователь
Иллюстрации
Показать всеРеферат
СИНУСНО-КОСИНУСНЫЙ ПРЕОБРАЗОВАТЕЛЬ , содержащий регистр прямого кода, сумма:тор |1ополнительного кода, коммутатор, блок памяти на П входов (где и +1 - разрядность входного кода) и блок синхронизации, первый выход которого соединен с управляющим входом коммутатора, п старших разрядных выходов которого соединены с-входом блока памяти, первая группа п +1 информационных входов коммутатора соединена с прямыми выходами ц +1 разрядов регистра прямого кода, вход которого соединен с (tl+l) ям разрядным входом аргумента преобразователя, выходы сумматора .дополнительного кода соединены с второй группой п +1 информационных входов коммутатора, о т л и ч а ющ и и с я тем, что, с целью повышения точности за счет уменьшения диеткретности изме{1ения аргумента и функцни без увеличения объема памяти, в него введены регистр нулевого кода, триггер, элемент ИЛИ, выходной сумматор , промежуточный сумматор, промежуточный .регистр и группа элементов. И, первые входы которых соединены с выходом старшего разряда коммута-.тора , гп выходов блока пг1мятй (гдегН разрядность представления функции sin X в блоке памяти; | п) соединены с первыми входами соответствующих разрядов выходного сумиатора, вторые входы Ц старших разрядов выходного сумматора соединены с выходом регистра нуля и первьми входами И старших разрядов сумматора дополнительного кода, первый вход (rt+l)-ro разряда которого соединен с выходом триггера, вторые входы разрядов сумматора дополнительного кода соединены с инверсными выходами разрядов регистра прямого кода, вход блока синхронизации соединен с входом задания режима работы преобразователя, второй выход блока синхронизации соединен с входом разрешения записи промежуточного регистра,ГП входов старших разрядов которого соединены с кодовыми выходами проме (Л жуточного сумматора, выход переполнения которого соединен с входом старшего разряда промежуточного регистра , выходы всех разрядов которого соединены с вторыми входгми соответствующих элементов И группы, выходы которых с первого по (т-(|)-й ) соединены с вторьми входами Младших разрядов выходного сумматора соответственно с первого по (т-гЛ)-й, :выход j -гр старшего разряда блока памяти (где J 1,2,. .. ,m-n-2) соединен с первым ВХОДОМ) -го и вторшл входом (J+1)-го .разрядов промежуточного сумматора, выход (m-n-l)-ro старшего разряда блока памяти со.единен с первым входом (m-n-l)-ro разт ряда промежуточного сумматора, второй вход первого разряда которого соединен с выходом элемента ИЛИ, входы которого соединены с выходами + 1)-го поп-и коммутатора, выходы старших разрядов с первого по (П+1) -и выходного сумматора соединены с выходом преобразователя.
СОЮЗ СОВЕТСКИХ
СОЦИАЛИСТИЧЕСНИХ
РЕСПУБЛИК (19) (11) 9(51) G 06 Р 7/548
ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР
ПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТНРЫТИЙ
ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Н АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (21) 3314638/18-24 (22) 06.07.81 (46) 15.09 83. Бюл. Р 34 (72) Л.С. Бельцер и В.С. Маркус (53) 681.325(088.8) (56) 1. Описание микросхемы 505 РЕЗ
Прошивка 0068-0071."
2. Карат-М. Техническое описание.
Приложение 2, система стандартных программ, 1972. (54) (57) СИНУСНО-КОСИНУСНЫЙ ПРЕОБРАЗОВАТЕЛЬ,,сор(ержащий регистр прямого кода, сумматор дополнительного кода, коммутатор, блок памяти на и
ВХОДОВ (ГДЕ )1 +1 - разрядность вход-: ного кода) и блок синхронизации, первый выход которого соединен с управляющим входом коммутатора, )) старших разрядных выходов которого соединены с- входом блока памяти, первая группа и +1 информационных входов коммутатора соединена с прямыми выходами )1 +1 разрядов регистра прямо;го кода, вход которого соединен с (11+1) м разрядным входом аргумента преобразователя, выходы сумматора .дополнительного кода соединены с второй группой )1 +1 информационных входов коммутатора, о т л и ч .а ю-. шийся тем, что, с целью повыше-. ния точности за счет уменьшения дис- -. кретности изменения аргумента и функ" ции беэ увеличения объема памяти, в . него введены регистр нулевого кода, триггер, элемент ИЛИ, выходной сум- матор, промежуточный сумматор, промежуточный,регистр и группа элементов
И, первые входы которых соединены с выходом старшего разряда коммута-, тора, П) выходов блока памяти (гдето разрядность представления функции
sin .)(в блоке памяти)Ф n) соедине-. " ны с первыми входами соответствую- . щих разрядов выходного сумматора, вторые входы )1 старших разрядов выходного сумматора соединены с выходом регистра нуля и первыми входами
11 старших разрядов сумматора дополнительного кода, первый вход ()1+1)-ro разряда которого соединен с выходом триггера, вторые входы разрядов сумматора дополнительного кода соединены с инверсными выходами разрядов регистра прямого кода, вход блока синхронизации соединен с входом задания режима работы преобразователя, второй выход блока синхронизации соединен с входом разрешения записи промежуточного регистра,N -Yf-1 входов старших разрядов которого соединены с кодовыми выходами промежуточного сумматора, выход переполнения которого соединен с входом старшего разряда промежуточного ре- С гистра, выходы всех разрядов которого соединены с вторыми входами соответствующих. элементов И группы, выходы которых с первого по (N-n) -й соединены с вторыми входами младших . разрядов выходного сумматора соответственно с первого по (9«.1)) -й, выход -го старшего разряда блока памяти (где ) = 1,2,...,N-n-2) соединен с первым входом 1 -ro и втораам входом (1+1)-го .разрядов промежуточного сумматора, выход (N-t)-1 )-го старшего разряда блока памяти соединен с первым входом (m-и-1)-го раз-.. ряда промежуточного сумматора, второй вход первого разряда которого соединен с выходом элемента ИЛИ, входы которого соединены с выходами (2 + 1)-ro no )) -й коммутатора ходы старших разрядов с первого по (n+1)-й выходного сумматора соеди- . нены с выходом преобразователя.
1042013
Изобретение относится к вычислйтельной технике и может быть использовано в цифро-аналоговых вычислитель ных устройствах (ВУ), например в навигационных ВУ, работающих с датчиками и потребителями, в которых углы выдаются и принимаются с помощью синусно-косинусных вращающихся трансформаторов или сельсинов.
Одной из наиболее частых операций в таких цифро-аналоговых ВУ является преобразование двоичных кодов обрабатываемых углов в двоичные коды синусов и косинусов этих углов, в том числе для последующего преобразования кодов синусов и косинусов углов в напряжения. Такое преобразование кода угла в код синуса (косинуса) этого угла может выполнять ся с помощью постоянных запоминающих устройств (ПЗУ), в которых записана таблица двоичных кодов значений функций sin х в пределах квадранта— при изменении угла-аргумента (О-9Ф) (1-2 ), где n - число разрядов адреса ПЗУ вЂ” разрядов кода, подаваемого в ПЗУ угла. При этом в первом квадранте код функции з1п х получают в ПЗУ при подаче в него прямого кода угла, а код функции cos х — при подаче в ПЗУ sin .х дополнительного кода угла. В других квадрантах коды функций sin х и cos х (в том числе знаки величин) получают по Известным из тригонометрии соотношениям, связывающим эти функции с функциями
sin x cos х угла х, расположенного в первом квадранте.
Известен преобразователь, сконструированный на базе стандартного
/ постоянного запоминающего устройства.
Коды значений функции sin х, записанные в ПЗУ имеют число двоичных разрядов, большее чем число разрядов адреса ПЗУ (число разрядов двоичного кода аргумента, подаваемого в
ПЗУ). При использовании ПЗУ это позволяет интерполировать значения функции sin х (cos х) в промежутках между значениями, записанными в ПЗУ, и тем самым уменьшить дискретность изменения аргумента. В указанном преобразователе число разрядов адреса — 10, так что дискретность из-, менения угла, подаваемого в ПЗУ, рав на 5, 3 (90 j Z O),. Значения же функции sin x записаны в виде 16-ти разрядных кодов, так что при интерполяции можно уменьшить дискретность изменения угла от 2 до 64 раз (1) .
Цель изобретения — повышение точности эа счет уменьшения дискретности изменения аргумента и функции
40 без увеличения объема памяти.
Поставленная цель достигается тем, что в синусно-косинусный преобразо,ватель, содержащий регистр прямого
"кода, сумматор дополнительного кода, 45 коммутатор, блок памяти на п входов, (где n + 1 — разрядность входного кода) и блок синхронизации, первый выход которого соединен с управляющим входом коммутатора, и старщих разрядных выходов которого соединены с входом. блока памяти, первая группа п + 1 информационных входов коммутатора соединена с прямыми выходами и + 1 разрядов регистра прямого кода, вход которого соединен с (n + 1)-м разрядным входом аргумен та преобразователя, выходы сумматора дополнительного кода соединены с второй группой n + 1.информационных входов коммутатора, дополнительно
Известное усгройство имеет следующие недостатки: во-первых, при необходимости уменьшения дискретности изменения аргумента для них требуется ЦВМ или заменяющее ее ВУ, осуществляющее интерполяцию; во-вторых, при интерполяции для уменьшения дис60 введены регистр нулевого кода, триггер, элемент ИЛИ, выходной сумматор, промежуточный сумматор, промежуточный регистр и группа элементов И, первые входы которых соединены с вы. ходом старшего разряда коммутатора, 65 кретности изменения аргумента даже только в 2 раза требуется по два обра щения ПЗУ при выработке каждой иэ функций sin х и cos х (для получения двух соседних значений функции) и вычисления разностей соседних значений.
Наиболее близким по технической сущности к изобретению является преобразователь двоичного кода угла в l0 двоичный код синуса (косинуса) этого угла, содержащий датчик прямого . и дополнительного кодов угла, блок памяти с записанной в нем таблицей двоичных кодов значений функции sin x
15 при изменении угла в пределах квадранта, коммутатор и блок синхронизации, адресные входы блока памяти имеют и разрядов и через коммутатор подключены к выходам датчиков прямого и дополнительного кодов углов, управляющий вход коммутатора подключен к выходу блока синхронизации, а датчики прямого и дополнительного кода выполняют функции регистра и
25 сумм атора 2 .
Недостатком данного преобразователя является то, что без ВУ-интерполятора он позволяет вырабатывать коды значений функций sin х (соз х) при изменении аргумента с дискретностью 90 /2", определяемой числом разрядов адреса блока памяти, а при необходимости уменьшить вдвое эту дискретность позволяет выполнить это только путем удвоенйя объема блока
35 памяти.
1042013
m выходов блока памяти (где m - разрядность представления функции sin x в блоке памяти, m > п ) соединены с первыми входами соответствующих разрядов выходного сумматора, вторые входы п старших разрядов выходного сумматора соединены с выходом ре-, гистра нуля и первыми входами и старших разрядов сумматора дополнительного кода, первый вход (n + 1)-ro разряда которого соединен с выходом триггера, вторые входы разрядов сумматора дополнительного кода соединены с инверсными выходами разрядов регистра прямого кода, вход блока синхронизации соединен с входом за- 15 дания режима работы преобразователя, второй выход блока синхронизации соединен, с входом разрешения записи промежуточного регистра, m-и-1 вхо- дов старших разрядов которого соединены с кодовыми выходами промежуточного сувааатора, выход переполнения которого соединен с входом старшего разряда промежуточного регистра,, выходы всех разрядов которого соединены25 с вторыми входами соответствующих -: элементов И группы, выходы которых с первого по (m-n)-й соединены с вто+ рыми входами младших разрядов выходного сумматора соответственно с первого по (m-n)-й, выход j-го старше:- . ЗО го разряда. блока памяти (где j = Х, 2,..., m-n-2) соединен с первым входом j-го и вторым входом (j+1)-го разрядов промежуточного сумматора, выход (m-n-1)-го старшего разряда З5 блока памяти соединен с первым вхо-, дом (m-n-1)-го разряда промежуточ-. ного сумматора, второй .вход первого разряда которого соединен с выходом элемента ИЛИ входы которого соеди- 4р
У
) иены с выходами с (- + 1)-го по п-.й . L коммутатора, выходы старших разрядов с первого по (n + l)-й выходного сумматора соединены с выходом преобразователя. 45
На чертеже представлена блоксхема предлагаемого преобразователя.
Синусно-косинусный преобразова— тель содержит регистр 1 прямого кода сумматор 2 дополнительного кода, регистр 3 нуля, триггер 4, коммутатор 5, блок 6 синхронизации, .блок 7 памяти, элемент 8 ИЛИ, сумматор 9 промежуточный, сумматор 10 выходной, регистр 11 и группу 12 элементов К °
Применение предложенного преобразователя позволяет уменьшить вдвое дискретность изменения аргумента функции без удвоения объема блока памяти, причем это осуществляется введением нескольких простых.микро 60 схем-сумматоров и элементов И.
При этом. элементы и используются для учета нуля или единицы (и+1)-Го . по старшинству разряда кода угла, и этих схем вводится не менее двух, 65 так как одна требуется для собственного учета (и+1)-го разряда кода угла, вторая — для последующего округления тем или иным способом полученного кода синуса (косинуса) угла по значению (и+2)-го по старшинству разряда кода синуса (косинуса) угла.
Поскольку выпускаемые микросхемы блоков памяти выпускаются с .числом разрядов кодов функции sin x на несколько разрядов превышающим число п разрядов адреса (разрядов кода аргумента), то при использовании только n+1 разрядов кодов функции sin x отбрасывание разрядов, начиная с (n+2)-ro разряда, приводит к ошибке до единицы оставляемого (n+1)-го разряда (в случае, когда отбрасывается код 111...1).
Для повышения точности выработки (и+1)-разрядных кодов синуса (косинуса) угла используется элемент
ИЛИ 8.
Указанная единица вводится в (n+2)-й разряд вырабатываемого кода синуса (косинуса) угла, и благодарй этому выполняется округление этого кода по первому отбрасываемому
{и+2)-му разряду,, вследствие чего ошибка уменьшается вдвое.
Однако при кодах функции sin x состоящих только из единиц от первого до (n+2)-го по старшинству двоичных разрядов, добавление к выданному из блока 7 памяти коду синуса (косинуса) угла единицы (n+2)-го разряда приводит к переполнению. При использовании данного преобразователя в составе ВУ, содержащего устройст-, ва, которые могут обнаружить переполнение,и устранить его тем или. иным способом, например в ВУ на основе микропроцессоров, такой недостаток отсутствует.
В ВУ, в которых выработанные преобразователем коды синуса (косинуса) аргумента используются бее анализа и исправления переполнения, переполнение не должно возникать.
Для повышения точности выработки (n+1)-разрядных кодов синуса (коси" нуса) угла и устранения случаев переполнения выдаваемых кодов испольвуется элемент ИЛИ 1, вырабатывающий нуль при коде угла на . выхо е коммутатора, меньшем угла
2 2 (" рад, и единицу при кодах углов, больших этого угла.
Триггер 4 обеспечивает преобразование прямого кода аргумента в дополнительный путем подключения единичного выхода ко входу младшего разряда сумматора 2 °
Преобразователь работает следующим образом.
В блок б синхронизации поступает сигнал выработки кода функции sin x
1042013
30 илк cos х, а в регистр 1 - (и+1)-разрядный код угла И ) (индексом п+1 внизу обозначена разрядность кода (ИН1)
Если, например, поступил сигнал выработки кода функции з1п х по коду
N(nt,<) угла х, то блок 6 синхронизации выдает в коммутатор 5 сигнал подключения адресных входов блока 7 памяти к выходам сумматора 2, вырабатывающего дополнительный код Ngz,<).
Старшие и разрядов дополнительного кода угла в виде кода N „ поступают на адресные входы блока 7 памяти, и по ним выдается код функции sin И я (конкретные значения функций, получаемые по соответствующим кодам, в дальнейшем обозначаются как функции этих кодов) °
Старшие щ-и-1 разрядов этого кода (в рассматриваемом примере - четыре) поступают на входы сумматора 9 как 4-х разрядный код, причем он поступает на первые входы соответствующих разрядов сумматора 9, и сдвинутый монтажно на один разряд, — на вторые входы сумматора 9. Таким образом, в сумматоре 9 этот код склад-1 дывается с кодом, умноженным на 2 т.е. происходит умножение этого кода на 1,5. Этот код поступает иэ сум.матора 9 на входы регистра 11 и записывается там по сигналу записи кода, поступающему в регистр 11 из блока б синхронизации с эадержкрй от укаэанного выше сигнала в коммутатор 5 о передаче в блок 7 кода Н м 35 на время прохождения кода через коммутатор 5, выработки кода sin И я по коду Ng и суммирования кодов в сумматоре 9.
Из регистра 11 код поступает на 4р входы двухвходовых элементов И 12, затем блок 6 синхронизации выдает в коммутатор 5 сигнал передачи на адресные входы блока прямого кода N
yr a из датчика 1, При этом иэ бло 45 ка 7 на входы сумматора 10 выдается код функции sin Nn, на другие входы и старших- разрядов поступают нули, а (n+1)-ro и следующих по старшин ству разрядов сумматора 10 поступает код с выходов элементов H. На первые входы элементов И 12 подается (и+1)-й разряд кода угла с выхода коммутатора 5. Если значение этого разряда равно 0, код из регистра
11 через элементы И 12. не проходит, . 55 если оно равно 1, то код с ре.гистра ll проходит на сумматор 10.
Таким образом, элементы И 12 осуществляют умножение одноразрядного числа - значения (n+1)-го разряда кода Q) угла - на 4-х разрядный код функции
sin Ж „, умноженный иа 1,5. Если код на выходе элементов И 12 обозначить как p„, (n+1)-й разряд кода Н(„ 4) как
8N то получим
И„= 1,5 sin N „Q Ы
Но, так как N + N 9Q, то о з1п Ng„-cos NN
Следовательно
Nq=1,5 cos N> 6N = соэ й„. 1,5 8 N.
Но двоичные коды, поступающие в блок 7 представляют собой правиль1
О ные двоичные дроби от угла 90, в которых опущены О единиц и запятая перед воробью. Если любой иэ этих кодов умножить на Я/2 1,5, то получатся коды, представляющие собой двоичные дроби от радиана, так что
1, 5 $ N — это угол в радианах. Но тогда код N представляет собой .приращение функции sin N< при изменении угла на S N.
cos И„.SN (рад)
A сумма значения функции sin N< и приращения S sin Nn представляет собой значение функции в1п(И,+bN)
sin (N>+6N) =sin N„ tcos Mn S N (p )
Таким образом, сумматор 10 осуществляет выработку функции sin(N +
+6N)=sin N„«, т.е. значение синуса угла, заданного (n+1)-разрядным кодом, что и требуется для уменьшения вдвое дискретности изменения угла по сравнению с углом, заданным и-разрядным кодом, поступающим в блок 7 памяти.
При этом необходимо учитыватызначения функции" sin х,записанные в бло ке 7 памяти, всегда меньше единицы и представляют собой правильные д™воичные дроби, в которых опущены 0 единиц и запятая перед дробышу единица первого по старшинству разряда этой дроби .обозначает 2, второго разряда — 2 и т.д.; первый по старшинству разряд кода sin NgÄ=cos N подается на блок 7 памяти на вход первого по старшинству разряда сумматора 9, так что на выходе этого разряда сумматора 9 единица означает ту же величину, что и единица старшего разряда кода sin Ngz, т.е. 2 ; единицы на выходах следующих по старшинству разрядов сумматора 9 означают соответственно 2, 2 и т.д! единица на выходе переноса из старшего разряда сумматора 9 означает 1; регистр 11 повторяет код на выходах сумматора 9, так что на его выходах единицы кода означают соответственно 1, 2, 2, 2, 24; значение угла, выражаемое единицей (и+1)го разряда, поступающего с (n+1)-го разряда выхода коммутатора 5 .на вторые входы элементов И 12, равно 90 2 .("+" ; элементы И 12 умножают угол
90 2(" )на величину 1,5 cos Nя, поступающую из регистра ll в зиде кода
1042013 со значениями еднницг 1 2, 2 " и т.д., поэтому на выходах элементов
И 12 единицы кода означают соответственно (учитывая перевод в радианы за счет коэффициента и /2 Ф 1,5):
-(n б <) -(natl
-(-(nI () -(612)
2-2. -(h l) 24бЗ)
-3 ° -(H4 3) -(И Ф4) 30
При монтажном сдвиге кода с выходов старших разрядов блока 7 памяти при подаче его в сумматор 9 ос- 5 тается свободным второй вход старшего разряда, который соответствует после прохождения через элементы И 12 (п+2)-му разряду кода в1п Нн.
Для округления по этому разряду кода функция sin Nn на этот вход сумматора 9 подается единица с элемента ИЛИ 8.
Для устранения случаев переполнения эта единица подается, когда код синуса угла не содержит единицы во всех старших разрядах до (n+2)-го включительно, т.е. при углах, которые не превышают угла (90 -C), где
+1) 3 Ф О(.=42 2 (рад 90 2 Но тогда дополнительный код должен быть не меньшею(,.
Такая проверка дополнительного кода Ngz производится элементом
ИЛИ 8.
Выработка кода функции сов N(<+<) осуществляется аналогично, но прн этом сначала передается прямой код
Нд, по нему вырабатывается н запоминается поправка к косинусу и-разрядного кода угла, а потом подается до- ° полнитеЛьный код Ngz, в блоке 7 памяти вырабатывается значение cos N которое в сумматоре 9 суммируется со своей поправкой, включающей единицу (n+2)-го разряда для округления.
Применение предлагаемого преобразователя позволяет уменьшить вдвое ошибки из-за дискретности изменения аргумента функции sin x (соя х) без увеличения объема блока памяти с помощью несложной схемы.
1042013
Составитель A. Зорин
Техред T.Ìàòî÷êà
Корректор О. Тигор
Редактор М. Келемеш
Заказ 7129/49
Йм
suan
Тираж 706 Подписное
ВНИИПИ Государственного комитета СССР по делам изобретений и открытий
113035, Москва, Ж-35, Раушская наб., д. 4/5
Филиал ППП Патент, r. Ужгород, ул. Проектная, 4