Цифровой генератор функций

Иллюстрации

Показать все

Реферат

 

Союз Советских

Социалистических

Республик

К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (61) Дополнительное к авт. свид-ву— (22) Заявлено 06. 11. 80 (21) 3002691/18-24 с присоединением заявки М (51)М. Кл.

G 06 F 1/02

ВкуааротмкныБ комитат

СССР ао делам иаооретенкЯ к открытиЯ (23) Приоритет—

Опубликовано 07. 12. 82. бюллетень М 45 (53) УДК 681. 325 (088.8) Дата опубликования описания 07.12.82.. ° (72) Автор изобретения

E. И. Филатов

Новосибирский электротехнический институт =(71) Заявитель (54) ЦИФРОВОЙ ГЕНЕРАТОР ФУНКЦИЙ

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

Функциональных зависимостей, в том числе степенных, логарифмических, тригонометрических и пр.

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

5 да, а изменение крутизны воспроизводимой функции осуществляется за счет изменения коэффициента деления управляемого делителя частоты, формирующего приращения выходной функции (1 1. го

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

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

3 9800 коэффициентом деления. Блок памяти, при поступлении каждого импульса входного кода подает на сумматор постоянные числа, соответствующие коэффициенту наклона на данном участке аппроксимации. Переход на следующий отрезок ломаной осуществляется по сиг.налу с выхода делителя частоты, при этом изменяется адрес в блоке памяти и на его выходах устанавливаетсяновое10 значение коэффициента наклона(2).

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

Во-первых, из-за того, что интер- 15 валы между узлами кусочно-линейной аппроксимации сохраняются постоянными независимо от кривизны воспроизводимой функции, методическая погрешность формирования функции на некоторых щ участках может быть значительной. В принципе можно выбрать интервал аппроксимации по условию обеспечения требуемой методической погрешности на самом неудобном участке воспроиз- 2$ водимой функции с максимальной кри-. визной. Но в таком случае, особенно при малых значениях требуемой методической погрешности, резко возраста"ет общее число участков аппроксимации ЗО а следовательно, и объем блока памяти коэффициентов наклона.

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

Цель изобретения - повышение точности воспроизведения функций.

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

На чертеже представлена блок-схема генератора.

Цифровой генератор функций содержит счетчик 1, блок 2 памяти, сумматор 3 и вход 4 генератора.

Алгрритм работы генератора рассмотрим на примере формирования функции

У = 1/х.

Целочисленные значения аргумента х = 6 и х r, при которых имеют место целочисленные значения функции у = i (i = 1, 2, 3...), различаются на величину что дает ряд чисел 1, 7, 19, 37, 61, 91, 127,, Если при очередных целочисленных значениях x = k, заключенных в интервале между значениями и Г (г k К), задявфть функции у приращения равные (2 .K.„ 3)+1) то будет формироваться кусочно-линейное приближение функции.. Уравнение отрезков ломаной íà i-ых интервалах аппроксимации может быть записано в виде 9; -(И) К-г х- -II

i-(S) p-г ъ (,; ) (2) откуда -(,„3)З

3(1-<) +3()+1 (") (3)

Методическая погрешность кусочно-линейной аппроксимации вида (2) равна

З Х- И-1)

Ъ

Ь =1 „- 1/Х = . ) . -(1 j) / ()

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

- а/ ъ(и) + s(i- )ч

980083

Как показывают, расчеты по формуле (7), модули максимальной методической погрешности на всех интервалах кусочно-линейной аппроксимации вида (2) при выборе вышеуказанных разрядностей аргумента и функции значительно превышают погрешность дискретности рав- . ную 2

Методическая погрешность может быть существенно уменьшена, если использовать увеличенное количество узлов аппроксимации. Для практической реализации наиболее удобно увеличение числа узлов, кратное двум, а именно в 2, 4, 8 и т.д. раз. В частности, при удвоенном и учетверенном числе узлов аппроксимации коэффициент наклона изменяется не только на грани -. цах i-ых интервалов с.целочисленными значениями х = r. и х = Р, но и в ъ 1 ближайших внутренних точках x = k „, при которых становятся справедливыми неравенства у pi i + 0,5 (для удво" енного числа узлов), либо y >i 1 + 0,25 уЪ i + 0,5;y7g i + 0,75 (для, учетверенного числа узлов) . В качестве примера в нижеследующей таблице приведены границы поддиапазонов аргумента и значения коэффициентов наклона для первых семи интервалов целочисленных з ,значений функции у = x при удвоенном и учетверенном количестве узлов ап проксимации. х =((-1) +(-1)+- ) Тб)

Я до ах „. 3

При подстановке (6) в (4) получается пах

0-1) +LE(1-1)+ 6-1) ) подач «It(» <> 4. (<>, (7) юо

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

В практике вычисления или формирования функций наиболее типична ".ситуация, при которой приведенную погрешность результата необходимо иметь равной или близкой к приведенной погрешности задания аргумента. Число значающих разрядов, функции принимают при этом равным числу значащих разрядов аргумента. В частности,при изменении корня третьей степени из аргумента, имеющего диапазон х х щах =

= 2 -1 необходимо иметь m - =flog

«я

3 х „ разрядов для представлейия целой части (здесь,— ближайшее боль. шее или равное целое число). и р = n-m разрядов для представления дробной зв части результата. При и = 8, 12, 16 значения m и р равны соответственно

m = 3, 4, б; p = 5, 8, 10.

При удвоенном числе узлов аппроксимации (для n = 8) При, учетверенном числе узлов аппроксимации (для и = 12; 16) Номер Диапазон интер аргумен вала та

Поддиапазон аргумента

Значение коэффициента наПоддиапазон аргумента клона

1,0

1,2(1...3) 0,2599210 (0,2211248)

0,1637400(0,14515155) 2...4(3,4) 4...8 0,1031497

О,1148598

0,0814397

4...6

6...8

8.....12 0,0723571

3 8...27 8..;16 0,0649803

16...27 0,0436507

0,0516034

0,0478164

0,0401793

12...16

16 ..;21

21 ..;27

5 приравнять нулю. Отсюда

1. .0...1 - 1 0

2 1...8 . 1...4 0,1958004

Значение коэффициента наклона

980083

Продолжение таблицы

При учетверенном числе узлов аппроксимации (для n = 12;.16) Номер интервала

Диапазон аргумента

При удвоенном числе узлов аппроксимации (для n = 8) Значение коэффициента наЗначение коэффициента наклона

Поддиапазон аргумента

Поддиапазон аргумента клона

4 27...64 27...43 0,0314624 27...35

43...64 0,0236477 35 ..43

43. ° ° 53

53...64

5 64...125 64.- 92 0,0183699 64...77 0,0195631

92...125 0,0147164 77-92

0,0173358

92...108 0,0154904

108...125 0,0139880

6 125...216 125...167 0,0120685 125...145

167...216 0,0100637 145...167

167...191

191...216

7 216...343 216...275 0,0085247 216...245

245...275

275...308

308...343 гумента и функции становится по модулю меньше погрешности дискретности, начиная со второго поддиапазона первого интервала (со значения аргуменКак показывают расчеты, при удвоенном числе узлов аппроксимации максимальная методическая погрешность для случая восьмиразрядных кодов ар0,0338833

0,0290415

0,0252888

0,0221558

0,0126794

0,0115132

0,0105036

0,0096414

0,0081733

0,0081877

0,0075866 0,0070482

9 9800 та равного четырем), т. е. на 6И64 диапазона аргумента ее влиянием на точность устройства можно пренебречь.

Для случая двенадцати- и шестнадцатиразрядных кодов аргумента и функции 5 значение максимальной методической погрешности на всех интервалах аппроксимации с удвоенным числом узлов не уходит за пределы разрядной сетки и необходим переход к большему числу узлов. В частности, при учетверенном числе узлов модуль максимальной методической по -решности становится меньше погрешности дискретности для двенадцатиразрядных входных и выходных кодов, начиная со второго поддиапазона третьего интервала (со значения аргумента равного 43), т. е. на 6Ъ Мдиапазона аргумента, а для шестнадцатиразрядных входных и выходных кодов — начиная с пятнадцатого интервала (со значения аргумента равного 3375), т. е. на19/2одиапазона аргумента. Если в последнем случае необходимо обеспечить методическую погрешность аппроксимации пренебрежимо малой на большем участке значений аргумента, то необходимо осуществлять дальнейшее увеличение числа узлов. 30

При практической реализации вышеизложенного способа кусочно-линейной аппроксимации приращения функции, задающие коэффициенты наклона на каждом участке, могут быть записаны в блок памяти, управляемый по адресным входам кодом целой. части результата, совместно по старшими разрядами дробной части, формируемым в накапливающем сумматоре прира- gy щений функции, выход переполнения которого соединен со счетным входом счетчика. Для удвоенного числа узлов аппроксимации используется выход только старшего разряда сумматора, сигнализирующий о переходе кода результата через значение 1 + 0,5, а для учетверенного числа узлов старшего и предыдущего по старшенст- . ву разрядов сумматора, сигнализирующие о переходе кода результата через значения i + 0,25; i + 0,5;

+ О, 75.

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

83 10 число разрядов, выбранное из условия равенства приведенной погрешности задания аргумента и функции, то инструментальная составляющая погрешности не должна превышать единицы младшего разряда, а именно 2 . Число разрядов V сумматора, обеспечивающее данное значение инструментальной погрешности, определяется из следующих соображений. Как извест но, при многократном суммировании равноточных чисел абсолютная погрешность возрастает в ц раз, где q-число суммирований. Если после сформирования очередного переполнения сумматора, т. е. попучения приращения целой части, в сумматоре каждый раз устанавливать определенное, неизменяемое в процессе вычислений значение начального кода, то накопленная на интервале аппроксимации инструментальная погрешность будет периодически устраняться. При этом условии максимальное число суммирований с накоплением погрешности в заданном диапазоне аргумента будет иметь место на последнем полном интервале кусочно-линейного приближения функции с. целочисленными узлами.

В частности, при n = 8, 12, 16 с1„„ду равно соответственно 91 721, 4681, .а сумматор должен иметь не менее

w =. j1од ц „„„1 дополнительных разрядов. Для указанных значений n w =

7, 10, 13, а общее число разрядов сумматора V = w + p будет равно 12, 18, 23 соответственно.

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

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

3 12

11 98008 разряда к кодам коЭффициентов наклона, определенным по способу обычного усечения неучитываемых разрядов, Что же касается начального кода, устанавливаемого в сумматоре после сформирования очередного приращения целой части, то он выбирается из следующих соображений. Так как за счет округления коды коэффициентов наклона на первых половинах интервалов в самом 1в неблагоприятном случае могут задавать| ся с отрицательной погрешностью, близко" по модулю к половине погрешности дискретности, а именно х 2 Ф то после самого большого числа сумми- IS . рований, имеющего место на первой .половине старшего, полного интервала, и равного приблизительно 0,5 ц„„с„ мак . абсолютная погрешность недобора к середине интервала может достигать 20 значения 2 "" . 0 5 qп,оу < 2 " . х х 2 ">= 2" + . Если значение у, соответствующее узлу аппроксимации в середине 1-го интервала очень близко к i + 0,5, то вследствие накопившейся погрешности недобора переход на новый поддиапазон аппроксимации может осуществляться не в расчетной точке x -= k,,а в следующей

x = k +, что приведет к потере одно- ЭО го шага аргумента и появлению дополнительной погрешности. Чтобы этого не происходило, в качестве начального кода сумматора следует брать число, равное 2 " " 1 = 2, В частности, д при V = 12 и w = 7 S = 7; при V = 18 и w = 10 S = 10; при V = 23 и И = 13

S =15

Так как максимальный коэффициент наклона, подаваемый на сумматор на

40 первом интервале аппроксимации, равен единице, то число разрядов t выходных слов блока памяти должно быть равно разрядности накапливающего сумматора; при этом в ячейке с нулевым адресом должен быть записан. код, содержащий во всех разрядах единич ные значения. Но число t может быть уменьшено, если допустить некоторое увеличение погрешности аппроксимации ®О на начальных интервалах. В частности, если в исходном состоянии во всех разрядах сумматора установить не нулевые, а единичные значения, то переход на второй интервал аппроксимации И при поступлении первого входного импульса осуществится при любом не равном нулю содержимом ячейки с нулевым адресом. Начиная со второго интервала, максимальный коэффициент наклона, подаваемый на сумматор при с( одинарном или удвоенном числе узлов, не превышает 0 25, т. е. имеет в двоичном представлении старшую значащую цифру только во втором разряде после занятой. При учетверенном числе узлов он несколько превышает 0,25, но с помощью изменения коэффициента узлов аппроксимации на первых поддиапазонах второго интервала все коэффициенты наклона можно сделать меньшими 0,25 (рекомендуемые коррекции отражены в таблице в. круглых скобках). Если учесть данные соображения, то число значащих разрядов выходных слов блока памяти достаточно иметь равным t = V2, т.е. 10, 16 и 21 соответственно.

Устройство согласно предлагаемому изобретению работает следующим образом.

В исходном положении все разряды счетчика 1 устанавливаются в нулевое, а сумматора 3 - в единичное состояние.

На выходах блока 2 памяти присутствует любой яе равный нулю код. Аргумент подается в- число-импульсном коде на вход 4 устройства. После поступления первого импульса на тактирующий вход суммирования накапливающий сумматор

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

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

83

Формула изобретения

13 9800 танавливается. значение кода коэффициента наклона на первом поддиапазоне третьего интервала. В дальнейшем работа устройства осуществляется аналогично; при этом a m-разрядном счет- З чике 1 будет формироваться код целой части, а в р старших разрядах накапливающего сумматора 3 — достоверные значащие цифры кода дробной части результата вычислений. î

Цифровой генератор функций может быть использован не только для формирования функции у = x, но и других монотонных функций, прежде всего степенных и логарифмических. Более того, если счетчик и накапливающий сумматор выполнить реверсивными, причем управление реверсом осуществлять по условию достижения кодом в счетчике каких-либо заранее заданных 20 значений, то предлагаемое устройство может формировать и немонотонные (в том числе периодические, например тригонометрические) функции. При этом каждый раз исходя из .диапазона аргу- И мента и требуемой приведенной погрешности воспроизведения функции необходимо предварительно расчетным путем определить интервалы аппроксимации, количество поддиапазонов, коэф- 30 фициенты наклона на всех участках аппроксимации, числа разрядов операционных устройств и т.д.

При формировании некоторых функций

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

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

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

Источники информации, принятые во внимание при экспертизе

1. Авторское свидетельство СССР

II 514285, кл. G 06 F 1/02, 1976.

2. Клебанский P.Á., Симаев C.Ø. и

Барбакадзе Б.Ш. Разработка дискретных функциональных преобразователей на микроэлектронной базе.,Материалы III

Всесоюзного симпозиума "Проблемы создания преобразователей формы информации", "Наукова думка", 1976, с. 157160 (прототип).

ВНИИПИ Заказ 9360/38

Тираж 731 Подписное филиал ППП Патент

r.Óæãîðoä,óë.nðîåêòHàÿ,4