
книги из ГПНТБ / Смолов, В. Б. Аналого-цифровые и цифро-аналоговые нелинейные вычислительные устройства
.pdfнимают в каждой точке значение + |
Г или |
— 1 в зависимости от |
||||||
значения i-го разряда |
кода хс: |
|
|
|
|
|||
|
|
ц>Цх)=\ + 1’ есЛ и^ = 0’ |
|
|
||||
|
|
|
‘ |
[— 1, если xt = |
1. |
|
|
|
|
В соответствии |
с |
этим определением |
функция |
Радемахера |
|||
Ф* (х) для |
i =f=0 может быть записана с помощью арифметической |
|||||||
операции вычитания так: |
|
|
|
|
||||
|
|
|
|
Ф*(л?) = хг— х{. |
|
|
(4-12) |
|
|
Условимся в дальнейшем использовать вместо номера разряда |
|||||||
в |
качестве |
индекса |
|
функции Радемахера |
двоичный |
набор |
а = |
|
= |
(а*, а 2, |
. . . , а„), |
в котором а,- = |
1, если i = / и |
а г = 0, |
если |
i = /. Система функций Радемахера является неполной системой. Естественным ее дополнением является система функций Уолша, которая может быть определена следующим образом. Пусть в дво
ичном наборе Р = (Pi, Р2, . . . , Р„) Р/ = Р/ = Рг = 1, а остальные компоненты равны 0. Тогда набор р может быть представлен как
дизъюнкция нескольких наборов а , |
каждый из которых имеет |
только один отличный от нуля компонент: |
|
Р = “ г У ® у V |
“ /• |
Функция Уолша, соответствующая этому набору, определяется как произведение функций Радемахера, индексы которых состав
ляют набор Р:
<РЙМ = Ф- (*)Ф- М ф - (*)•
Из определения следует, что для наборов р с одной единицей функции Уолша совпадают с функциями Радемахера.
Покажем, что любая функция системы Ф может быть получена с помощью линейной переключательной функции и ее инверсии.
Рассмотрим функции ф- (ж), у которых определяющий набор со-
держит только две единицы. В этом случае
Фй (*) = Ф -М Ф -(*). |
||
р |
ai |
aj |
откуда, используя (4-12), |
получаем |
|
Фр- (x)=(xi—Xt)(Xi—Xj)
или
фр W = (XtXj + X^j) — (XiXj -f xtxj).
В скобках последнего выражения заключены конъюнкции, со единенные знаком арифметического сложения. Такая сумма согласно
90
выражениям, приведенным в § 2-1, может соответствовать либо сложению по модулю два, либо дизъюнкции, поскольку произве дение слагаемых равно нулю. Независимо от выбора логической операции после несложных преобразований получаем
Фр (х) = (х, ® |
® xj) |
|
или |
|
|
Фр (*) = Ф^ W -Ф р (*)■ |
(4-13) |
Предположим теперь, что формула (4-13) справедлива для функ ций, определяющие наборы которых содержат I—1 единицу, и покажем, что она справедлива для функций с определяющими на борами, имеющими I единиц. Из определения функций Уолша сле
дует, что функция ф_ (х), у которой набор р имеет / единиц, может
Э
быть получена умножением ф_ (х) с набором, содержащим I— 1 Э'
единицу, на функцию Радемахера с индексом, равным номеру 1-го компонента набора (3, который равен нулю в наборе р':
ф _ (х) = ф „ ( х) Ф;.(х).
Подставляя (4-12) и (4-13) в последнее выражение, получаем
Фр W = ( Ф р ,« - Ф р , (*)) ( х ,-х ,) ,
откуда после преобразований находим
Фр- (х) =(фр-, W ®*/) “ (Чу (х) 0 Xj)
или |
|
|
|
Ф„- (X) = фR W — ф'- (х). |
(4-14) |
||
0 |
0 |
0 |
|
Система функций Уолша является полной ортонормированной системой на отрезке [0, 1 ], поэтому любую функцию F (X), для которой существует интеграл от квадрата этой функции на отрезке [О, 11, можно разложить в ряд Фурье по функциям Уолша:
0
где сумма берется по всем наборам р. |
|
|
Вводя другие обозначения |
для индексов s = s (р), |
получаем |
ряд |
|
|
|
2п—1 |
|
F(x)= |
2 ф s(x)as, |
(4-15) |
|
s=0 |
|
который в дальнейшем будем называть рядом Уолша.
91
Для всякой функции F (X) с интегрируемым квадратом ряд Уолша (4-15) сходится к ней в среднем, причем коэффициенты ряда
убывают с увеличением числа единиц в наборе (J [33].
Пользуясь свойством ортогональности системы функций Уолша, нетрудно получить формулу для определения коэффициентов ряда
as = ^ r l!i Vs(x)F(o), |
(4‘16) |
где сумма берется по всем наборам а.
Заменяя в (4-15) функции Уолша переключательными функ циями, получаем
2Л—1 |
|
р(х)= 2 № w - % м ) as- |
(4-17) |
s= О |
|
Коэффициенты ряда (4-17) могут иметь разные знаки, поэтому для моделирования этого ряда РП-схемами нужно так его преобра зовать, чтобы все коэффициенты были положительными.
Пусть в разложении (4-17) из 2" коэффициентов s' коэффициен тов положительны, a s" — отрицательны. При этом
F (х) = ± fl0 + ^ |
a s («Й ( * ) — Ч>; W ) — 2 a s f t W “ % (*)) • |
s' |
s" |
Раскрывая скобки и объединяя слагаемые с одинаковыми зна ками, получаем
f {x) = ±а0+ 2 asV’ м + 2 °»ф*М“ (2 asVs $ + 2 |
^ • |
|||
s’ |
s" |
\ s' |
s" |
J |
Если представить |
переключательные функции, |
заключенные |
в скобки, в виде разности единицы и отрицания функции, то после преобразований получаем
|
F (x )= ± a 0— 2 |
fls + 2 2 |
W + |
2 2 |
asVs (*)• |
|
|
s=0 |
|
s' |
|
s" |
|
Это |
выражение может быть |
реализовано |
с помощью РП-схем |
|||
только |
при условиях а 0> 0 |
и |
а0 |
2п —1 |
Если |
же эти условия |
2 as• |
||||||
|
|
|
|
s=0 |
|
|
не выполняются, то непосредственное моделирование ряда Уолша РП-схемами невозможно. Однако можно построить схему для функ
ции Q (х) = F (х) + С, отличающейся от F (х) на постоянную ве личину С. При этом значение С должно быть таким, чтобы выпол-
нялось условие С |
2п—1 |
«о— 2 as |
|
|
s= О |
В отличие от' РП-схем, возможность построения пассивного делителя напряжения не зависит от соотношения между коэффи-
92
циентами ряда Уолша. Такой делитель может представлять собой, например, параллельную РП-схему с двухпозиционными переклю чателями, которые подключают резисторы либо к + UBX, либо
К
Из определения системы функций Уолша следует, что при фик сированном п существует 2” различных функций Уолша. Это оз начает, что в разложении (4-17) не может быть больше 2Л членов и что соответствующее число резисторов в схеме не будет превышать
2П. Так как одна из функций Уолша является константой, то число переключателей, необходимое для построения схемы, оказывается на 1 меньше числа сопротивлений. Для того чтобы получить оценки сложности цифровой части преобразователя, рассмотрим способ
построения схемы для системы переключательных функций Ф„ = = {q/ (х)}, с помощью которых могут быть получены все функции Уолша. При п = 1 система <1>1 состоит из двух функций, ср' (х) = О
и |
(х) = x v При п = 2 в систему Фг входят четыре |
функции, |
две |
из которых получаются из функций системы Ф[ с |
помощью |
операции суммы по модулю два следующим образом: |
|
ср0 (х ) = 0 ,
Ф| (x) = x v
ФзМ = *1® * 2>
ф;( х) = * 2.
Аналогично при п = 3 систему Фз образуют восемь функций,
половина из которых является функциями системы Фг, а другая половина образуется из первой с помощью операции суммы по мо дулю два:
ф;( х) = о,
%(x) = xv
%{х) = х1@х2,
Ф2(х) = *2,
Фз(*) = *2®*з-
Фу W = ^ 0 ^ 2Ф *з>
<P5 W = * 1 ® * 3 -
ф; м = * 3-
93
Действуя описанным способом, построим систему функций Ф„,
которая включает в себя все функции системы Ф„_i и 2"-1 функ ций, получающихся путем сложения по модулю два функций си
стемы Фл_1 с переменной хп.
Рассмотренная процедура является основой для построения схемы, реализующей все функции системы Ф^. Такая схема строится итеративным способом путем последовательного увеличения числа
уровней: если уже построена схема Р для системы Фп- ь то, при соединяя к каждому выходу этой схемы элемент, реализующий сумму по модулю два соответствующей функции и переменной хп, получаем схему для всех функций
|
системы Ф„. Иллюстрация способа |
||||||
|
построения такой схемы приведена |
||||||
|
на рис. 4-5. |
|
|
число |
логических |
||
|
Подсчитаем |
||||||
|
элементов, |
необходимое |
для |
по |
|||
|
строения цифровой части |
преоб |
|||||
|
разователя, |
|
моделирующего |
ряд |
|||
|
Уолша. Вначале найдем число |
||||||
|
сумматоров по модулю два V (п), |
||||||
|
необходимое |
|
для реализации всех |
||||
|
функций системы Ф„. |
Из |
схемы |
||||
|
на рис. 4-5 следует, что это число |
||||||
|
L (л) = 2п-1 — 1 + L |
(п— 1), |
|||||
|
откуда получаем |
|
|
|
|
||
|
L (л) = 2"-1 — 1 + 2"-2 — 1 + . . . |
||||||
Рис. 4-5. Способ построения схе |
• • • + 2 + |
L |
(2) = 2"— ( я -f- 1). |
||||
мы, реализующей все функции |
Учитывая, |
что для |
построения |
||||
системы Фп |
|||||||
|
сумматора |
по ' |
модулю два |
тре |
буется две схемы конъюнкции и одна схема дизъюнкции с двумя входами, находим оценку сложности схемы для системы функ
ций Фп'
L (п) = 3 (2П— (n + 1)).
Для получения всех функций Уолша в схеме преобразователя из функций системы Ф„ необходимо к уже построенной схеме до бавить 2" инверторов. Таким образом, окончательная оценка слож ности цифровой части преобразователя, моделирующего ряд Уолша, имеет вид:
L(rt) = 2n+2— 3 (л + 1 ).
Полученные оценки сложности справедливы для схем, исполь- • зующих все члены ряда Уолша, что обеспечивает 'точное воспроиз
94
ведение таблицы заданной функции F (X ). Если же задана точность воспроизведения функции, то, поскольку ряд Уолша сходится к F (X), часть членов ряда, как правило, можно отбросить. В этом случае сложность аналоговой части схемы будет определяться чис лом коэффициентов, оставленных в разложении (4-15). Сложность цифровой части схемы будет зависеть не только от этого числа ко эффициентов, но и от вида функций Уолша, соответствующих этим коэффициентам. Члены ряда, которые необходимо оставить в раз ложении (4-15), а также число членов ряда, необходимое для полу чения требуемой точности, зависит в первую очередь от характера аппроксимируемой функции F (X). Поскольку ряд Уолша схо дится к аппроксимируемой функции в среднем и коэффициенты его убывают, то для отыскания членов ряда, обеспечивающих тре буемую погрешность аппроксимации в, необходимо производить многократный перебор всех коэффициентов с целью отыскания ко эффициентов, наибольших по абсолютной величине. Расчет коэф фициентов и построение ряда Уолша для воспроизведения заданной функции F (X) связан с большим объемом вычислительной работы. Существенно, что объем вычислительной работы сильно возрастает с увеличением числа разрядов кода. В связи с этим ниже описы вается способ построения ряда Уолша с помощью универсальной ЦВМ.
Прежде чем перейти к описанию алгоритма определения коэффи циентов и числа членов ряда Уолша, рассмотрим в качестве при
мера |
построение схемы, моделирующей этот ряд |
для |
функции |
||
F (X) |
= sin X, заданной на отрезке [0, |
я/2], для аргумента, пред |
|||
ставленного в виде четырехразрядного |
двоичного |
кода |
х = (хь |
||
х2, |
х3, х4). Требуемая точность воспроизведения заданной функции |
||||
е < |
0,06. |
|
|
|
|
|
Для аппроксимации заданной функции с требуемой точностью |
необходимо использовать ряд Уолша, состоящий из семи членов: sin (hx) = а0— а8Ф8 (х) —а4<р4 (х)— а'2ц>2 (х) —
— 1а[2%2(х)—а[ч[ (х) — а шфш(х),
где коэффициенты ряда а'. = | а. |.
Заменяя в последнем выражении функции Уолша переключа тельными функциями согласно соотношению (4-13) и представляя
инверсии переключательных функций в виде ф5 (х) = 1 — <ps (х), после приведения подобных членов получаем:
sin (hx) = a'Q— (flg+ о; + а'2 + а\2+ а\ + а ш) + 2я8ф; (х) +
+ 2а;ф4 (х) + 2a2q>’ (х) + 2 a ^ ; 2 (х) + 2а'{у\ (х) + 2ашФш (х) .
Это выражение может быть реализовано в виде параллельной РП-схемы, поскольку разность а'0 и суммы остальных коэффициен тов "ряда положительна.
95
>-ч
а
VO
Q
Е-
Параметры резисторов в схеме, моделирующей ряд Уолша ( т у = 103 о м
СО
00 .« О
ооо Н —< со
2 |
§ |
£ |
© |
ао |
5 |
|
• |
- |
.И |
00 |
00 |
|
о |
о |
* |
— |
|
|
|
|
|
о" |
|
|
^ |
GO |
|
О ^ |
|
|
О ) |
СО |
|
||
О CN |
Ю |
|
|
о |
|
—• |
О |
о |
|
00 2 |
|
|
|
|
|
со |
|
|
|
|
|
I |
|
|
|
00 |
|
О |
|
|
|
СО |
|
—н О |
|
|
|
Ю |
|
00 2 |
|
|
|
ю |
|
||
|
|
|
|
00 |
—. |
|
|
|
|
ю |
|
|
|
|
|
ю |
|
|
|
|
|
со |
|
|
|
00 |
|
I |
|
|
|
|
О |
|
|
|
|
со |
|
—100 |
|
|
|
со |
|
СО |
^ |
|
|
CN |
|
||
|
|
|
|
S |
|
|
|
|
|
см |
|
|
о |
о |
|
|
|
|
СО |
СМ |
|
|
|
|
СО |
СО |
|
|
|
|
о |
—< |
|
|
|
^ |
СО |
СО |
|
2 |
00 |
|
. |
о |
|||
|
|
|
|
8 Е |
|
|
|
|
|
со |
|
|
ю |
о |
|
|
|
|
Г- |
Р- |
|
2 |
со |
|
см |
см |
|
||
|
СО |
О |
|
~Г О |
|
|
|
&5Й |
|||
|
|
|
|
||
|
- VJ t и |
J ^ |
|
|
|
|
Q а |
|
|
|
Выбирая масштабный коэффициент для проводимостей РП-схемы ту =
= F m d Y m a x = Ю 3 0 М > Н а Й Д в М П р О -
водимости |
резисторов, |
входящих |
в схему. Эти значения, а |
также пере |
ключательные функции, необходимые
для построения |
ряда Уолша, |
приве |
|
дены в табл. 4-1. Схемы |
функцио |
||
нальных преобразователей |
кода |
||
в проводимость |
и кода в |
напряже |
ние, построенные по этой таблице, изображены на рис. 4-6.
Исходными данными для про граммы построения ряда Уолша яв ляются число разрядов кода п, по грешность аппроксимации е и таб лица значений функции F (X ). Если для функции F (X) имеется стан дартная подпрограмма, то таблица значений функции может быть полу чена в памяти машины.
Результатом решения задачи яв ляются коэффициенты ряда Уолша, обеспечивающие аппроксимацию F (X) с заданной погрешностью, и их ин дексы. Аналитическая запись функ ций Уолша однозначно восстанавли вается по индексу функции, поэтому такой набор выходных данных позво ляет построить требуемый ряд Уолша и соответствующую ему схему преоб разователя.
Рассмотрим способ определения коэффициентов ряда Уолша, обеспе чивающий получение погрешности, не превышающей заданную макси мальную погрешность аппроксима ции е.
Обозначим ег (х) таблицу погреш ностей, получаемую при аппрокси мации функции F (X) рядом Уолша, состоящим из i + 1 членов, причем члены этого ряда соответствуют на ибольшим по абсолютной величине коэффициентам:
*i.(x) = F W — З о д Д * )-
96
Если коэффициенты Уолша расположены в порядке убывания абсолютных величин, то по таблице 6i_i (х) можно построить таб лицу ег- (х) следующим образом:
si(x) = si-i(x) — asq>s(x),
где |
as — (t + 1)-й по порядку коэффициент в |
упорядоченном |
списке. |
(х) для i = О, |
|
|
Если теперь при каждом вычислении таблицы |
|
1, |
2...........т производить сравнение всех значений |
таблицы с е, |
то первая таблица ег- (х), в которой ни одно значение не будет пре вышать е, будет гарантировать наименьшее число членов ряда Уолша.
Рис. 4-6. Схемы преобразователей кода в проводимость |
(а) и кода |
в напряжение (б), моделирующие ряд Уолша |
|
Остановимся на вычислении значений функций Уолша в машине. Значение функции Уолша с индексом (3 (s) на наборе а находится
в три этапа. Вначале над векторами р и а производится операция
•поразрядного логического умножения:
Р Д а = и.
Эта операция выявляет значения разрядов набора о, от которых функция ср» (х) зависит существенно. На втором этапе подсчиты
вается число единиц вектора к, который был получен в результате логического умножения. Последний этап состоит в определении
четности числа единиц вектора к. Если число единиц в к четно, то значение функции Уолша принимается + 1, если же нечетно, то
— 1'.
4 Заказ № 1218 |
97 |
Т а б л и ц а 4-2
Функции и коэффициенты ряда Уолша, аппроксимирующего sin X ; X £ [0; я/2]
Номер |
М * ) |
S |
|
0 |
1 |
128 |
*1 |
64 |
%2 |
32 |
X3 |
192 |
*1 0 * 2 |
16 |
*4 |
160 |
*10*3 |
8 |
*5- |
144 |
*10*4 |
96 |
*20*3 |
4 |
х» |
136 |
*10*5 |
' 80 |
*2®*4 |
224 |
*10*20*3 |
2 |
*7 |
132 |
*10 * 6 |
72 |
*20*5 |
48 |
*30*4 |
208 |
*10*20*4 |
1 |
*« |
130 |
*10*7 |
68 |
*2 0 * 6 |
40 |
*30*5 |
200 |
*10*20*5 |
176 |
*10*30*4 |
129 |
*10 * 8 |
66 |
*20*7 |
36 |
*30*6 |
24 |
*40*5 |
196 |
*1 0 *20 *6 |
168 |
*10*30*5 |
1 1 2 |
*20*30*4 |
65 |
*20 *8 |
34 |
*30*7 |
20 |
*10 * 6 |
194 |
*10*20*7 |
164 |
‘ *10*30*6 |
152 |
*10*40*5 |
104 |
*20*30*5 |
“б |
Погреш |
ность, |
|
|
/О |
+0,63608 |
64 |
—0,26462 |
37 |
—0,12703 |
24 |
—0,06290 |
18 |
—0,05285 |
13 |
—0,03137 |
9,7 |
—0,02617 |
7,1 |
—0,01568 |
6 ,0 |
—0,01305 |
4,6 |
—0,01256 |
4,0 |
—0,00784 |
4,1 |
—0,00652 |
3,4 |
—0,00627 |
2 ,8 |
4-0,00523 |
2,3 |
—0,00392 |
2,7 |
—0,00326 |
2,4 |
—0,00313 |
2 ,0 |
—0,00310 |
1,7 |
+0,00261 |
1,5 |
—0,00196 |
1,7 |
—0,00163 |
1,5 |
—0,00157 |
1,4 |
—0,00155 |
1 , 2 |
+0,00130 |
1 , 1 |
+0,00129 |
0,93 |
—0,00082 |
0,85 |
—0,00078 |
0,77 |
—0,00077 |
0,70 |
—0,00077 |
0,62 |
+0,00065 |
0,55 |
+0,00064 |
0,49 |
+0,00062 |
0,43 |
—0,00039 |
0,39 |
—0,00039 |
0,35 |
—0,00039 |
0,31 |
+0,00033 |
0,28 |
+0,00032 |
0,24 |
+0,00032 |
0 ,2 1 |
+0,00031 |
0 ,2 1 |
|
|
|
|
|
|
|
|
|
П родолж ение |
т абл . |
4-2 |
|
|
|
|
Номер |
|
|
|
|
|
|
Погреш |
|
|||
|
|
|
М |
* ) |
|
|
as |
ность, |
|
|
|||
|
|
|
S |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
% |
|
|
|
|
|
240 |
|
2 0 # 3 |
©xi |
-] 0,00026 |
0 ,2 1 |
|
|
|||
|
|
|
33 |
|
0 X |
|
—0,00019 |
0,19 |
|
|
|||
|
|
|
|
* 3 ® * * |
|
|
|
||||||
|
|
|
18 |
|
#4® X? |
■ —0,00019 |
0,18 |
|
|
||||
|
|
|
12 |
|
*5Ф*6 |
—0,00019 |
0,19 |
|
|
||||
|
|
|
193 |
|
* 1 ® * 2 © * 3 |
+0,00016 |
0,17 |
|
|
||||
|
|
|
162 |
|
* 1 0 * 3 0 * 7 |
+ 0,00016 |
0,16 |
|
|
||||
|
|
|
148 |
|
|
|
|
|
0,00016 |
0,14 |
|
|
|
|
|
|
100 |
|
* 2 Ф * 3 0 * 6 |
-Г 0,00015 |
0,13 |
|
|
||||
|
|
|
88 |
|
* 2 0 * 4 ® * 5 |
-г 0,00015 |
0 ,1 1 |
|
|
||||
|
|
|
232 |
* 1 0 * 2 0 * 3 0 * 5 |
+ 0,00013 |
0 ,10 |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 4-3. |
|
Число модулей, |
необходимое для реализации функций Уолша |
|
|||||||||||
|
|
F( X) |
- |
|
|
|
|
Погрешность аппроксимации, % |
|
||||
|
|
|
|
|
5 |
2 |
1 |
0,5 |
0,2 | |
0,1 |
|||
|
|
|
|
|
|
|
|
||||||
|
sin X; |
|
|
|
|
3 |
7 |
13 |
18 |
27 |
35 |
||
Л® [0 ; зт/2] |
|
|
|
|
|
|
|
|
|||||
|
In X; |
|
|
|
|
4 |
10 |
17 |
27 |
■ 47 |
66 |
||
|
|
[1 ; |
Ю] |
|
|
|
|
|
|
|
|
|
|
arccos X; |
|
|
58 |
87 |
141 |
177 |
203 |
2 12 |
|||||
* 6 |
|
[0; |
1] |
|
|
|
|
|
|
|
|
|
|
Л® |
а ® |
|
|
|
|
6 |
13 |
19 |
29 |
44 |
56 |
||
[0; |
2,3026] |
|
|
|
|
|
|
|
|
||||
Х £ |
t |
|
g |
x |
; |
|
69 |
ПО |
146 |
177 |
2 1 1 |
229 |
|
[0; |
1,4835] |
|
|
|
|
|
|
|
|
||||
|
l |
|
3Vf |
T |
|
|
|
19 |
42 |
65 |
92 |
127 |
156 |
Х £ |
[l; |
10] |
|
|
|
|
|
|
|
|
|||
0 ,5 (X — l)3 (Х .+ 2)2; |
47 |
76 |
97 |
118 |
144 |
160 |
|||||||
X 0 |
[ — 2 ; 2 ] |
|
|
|
|
|
|
|
|
||||
41,5(1 — cos 0,235Х) + |
23 |
61 |
83 |
100 |
153 |
171 |
|||||||
+23(1 — cos X); |
|
|
|
|
|
|
|
|
|||||
Х £ |
[0; |
20] |
|
|
|
|
|
|
|
|
|||
sin Х/Х; |
|
|
|
13 |
31 |
46 |
62 |
87 |
11 2 |
||||
. Х £ [0 , Ы 0 ~ 5 ; Зя] |
|
|
|
|
|
|
|
|
|||||
4* |
|
|
|
|
|
|
|
|
|
|
|
|
99 |