Научная статья на тему 'Функциональный преобразователь Уолша'

Функциональный преобразователь Уолша Текст научной статьи по специальности «Математика»

CC BY
73
14
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Ю. П. Забашта, В. М. Разин

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Функциональный преобразователь Уолша»

ИЗВЕСТИЯ

ТОМСКОГО ОРДЕНА ОКТЯБРЬСКОЙ РЕВОЛЮЦИИ И ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ ПОЛИТЕХНИЧЕСКОГО ИНСТИТУТА им. С. М. КИРОВА

Том 202 1973

ФУНКЦИОНАЛЬНЫЙ ПРЕОБРАЗОВАТЕЛЬ УОЛША

Ю. П. ЗАБАШТА, В. М. РАЗИН

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

В системах, работающих в реальном масштабе времени, к которым относятся и системы распознавания, актуален вопрос о скорости вычисления различного рода функциональных зависимостей. При этом в первую очередь видна целесообразность всемерного повышения скорости вычисления основных элементарных функций, таких как Sin.r, Cosa, tqx, arcsinx, ln„v, ex а.также других функциональных зависимостей. сопровождающих процесс распознавания.

Как известно из теории рядов, функция f(t), удовлетворяющая условиям Дирихле, может быть представлена рядом.

= (1)

где {'f«(i)j — любая полная ортогональная система функций.

Помимо требований ортогональности и полноты, к системе могут быть" предъявлены требования наиболее быстрой сходимости, а в ряде случаев решающим при выборе системы {vK{t)\ является их простота физического осуществления.

Наиболее часто в качестве системы {?«(£)} выступают общеизвестные системы, как, например, полиномы Эрмита, Лежандра, Чебы-шева, 5Ткоби, Бесселя, тригонометрическая система функций и др.

В вычислительной технике принят в основном метод приближения алгебраическими полиномами вида

к^-0

В теории сигналов и цепей наиболее употребительна тригонометрическая система

оо

f{t) [о-к Sin H^t + Ьк cos Kiat].

к ■()

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

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

2. Вычисление значения функции требует, как это видно из формулы

f(t) = a0 + a1t + a2t+.-- + ant\

п сложений и п умножений.

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

1) исключила операцию умножения при вычислении значения исследуемой функции в точке 11\

2) была удобна с точки зрения технической реализации с учетом требований современной дискретной техники (интегральных схем и т. п.);

3) позволяла вычислять значения аппроксимирующего полинома в той же точке с минимальными трудностями;

4) допускала единый алгоритм вычислений для широкого класса исследуемых функциональных зависимостей.

Наиболее полно этим требованиям отвечает система ортогональных функций Уолша [1]. Поскольку функции Уолша принимают только два значения + 1 и — 1, то:

1) отсутствует операция умножения при вычислении ряда

/ (t) - а0 + а1?1 (t) + (*)+•■■; ъ (()= ±1,

а значение / (t) определяется суммированием постоянных коэффициентов, взятых с соответствующим знаком;

2) значение функции срл (/) легко определяется по двоичному разложению числа /;

3) то обстоятельство, что функции Уолша принимают только два дискретных значения гЬ 1, выгодно отличает их от других ортогональны-; систем и удобно для физической реализации на элементах дискретной техники, 'поскольку последние также имеют только два дискретных состояния («О» и «1»).

Для вычисления значений функций Уолша в любой точке введено следующее обозначение [1]. Определим функцию от аргументов а и t О, если количество разрядов, где имеют едини-ja; t) = J ЦЫ, четно а и t\

1 в в противном случае. Функция {a, t} определена для всех конечных двоичных дробей а и вещественных t.

Имеет место тождество

= (2) ИЛИ ^b-t-

Wa (t) = (—1)^=0 (3)

7U

где a,-; tj\ j — разряд двоичного разложения соответственно ant. Последнее тождество является хорошим методом вычисления значения wa(t).

Определим число к членов ряда (1), которое необходимо иметь в разложении Фурье-Уолша, чтобы обеспечить представление некоторой функции f(t) с заданной точностью

В качестве входного алфавита приняты пять элементарных функ-

ций: sincos-ty tg—et и ln(l + t) при Расчет велся

4

на ЭВМ по алгоритму, позволяющему построить ряд Уолша с минимальным числом членов, обеспечивающих заданную погрешность

Обозначим А, (/с) таблицу погрешностей, получаемую при приближении функции f(t), рядом, состоящим из / + 1 члена, причем члены этого ряда соответствуют наибольшим по абсолютной величине коэффициентам

А/ (к) = f{t) - - ^ а (х) w (х, t).

{*)

Если коэффициенты Уолша расположены в порядке убывания, то по таблице А/ (к) можно построить таблицу А/ (к) следующим образом:

А/ (к) = А/ - 1 (к) - asw (5, i),

где as — (/ -г 1) — коэффициент по порядку убывания. Если теперь при каждом вычислении таблицы М(к) для / = 0; 1; 2; ... m производить сравнение всех табличных значений с то первая таблица А 1{к), в которой ни одно значение не будет превышать будет гарантировать наименьшее число членов ряда Уолша. Результаты расчетов для исследуемых функций сведены в табл. 1. Здесь же для сравнения приведено необходимое число членов степенного ряда для аппроксимации с той же точностью.

Таблица I

\ Точность

вычисле-

ния 7 сч со 1 т in 1 1 t- 1 X 1

1 о 1 О о I о 1 О 1 о 1 о 1 О

f(t) —1

Число V/ V V V V V V V

членов ш OJ и> ц> и) U) ш со

разложения

ряда \

Sin izt Уолша 2 3 10 22 37 50 55 63

степенного 3 3 5 6 7 8 9 10

COS 7it Уолша 2 3 10 22 37 50 55 63

степенного 2 3 5 6 7 8 9 10

т. tg — t ь d Уолша 3 8 25 10 101 117

степенного 3 5 6 7 8 9

J Уолша 3 11 22 44 86 lot 117

e степенного 3 4 5 6 7 9 10

ln(l+ /) Уолша 3 7 32 6) 84 115 122

степенного 3 5 6 7 8 9 10

Согласно табл. 1, поскольку ряд Уолша слабосходящийся, наиболее целесообразно использовать полиномы Уолша при точности аппроксимации 10 4 -т- 10 "Л Такая точность вполне приемлема при всех инженерных расчетах.

При этом число членов 'ряда Уолша (¡постоянных коэффициентов) составит 25—30 констант. При увеличении точности вычисления до \0~~7 ~ [0~8 число хранимых констант увеличивается до 100120, однако объем оборудования при этом увеличивается незначительно.

Задача преобразователя состоит в определении значения заданной из набора м функции /(/) в некоторой точке ее аргумента

В качестве алгоритма, осуществляющего вычисления, принят алгоритм, приближающий данную функцию на всем интервале изменения ее аргумента [0,1 ] с помощью полиномов Уолша (полиномальнал аппроксимация)

/(0 = 1

о

Как следует из основного свойства функции Уолша, вычисление значения функции в точке сводится к определению знака функций Уолша в точке и суммированию постоянных коэффициентов ак со знаком соответствующей функции Уолша жи(^). Вычисление знака функции Уолша производится согласно

где суммирование в показателе производится по модулю 2. и К] представлены в их двоичном разложении.

Блок-схема устройства представлена на рис. 1.

а Ь

ГГ ■ I

Рис. 1

1. Дешифратор фш^) представляет значение в двоичном разложении.

2. Опорный генератор (ОГ) служит в качестве задающего генератора синхросерии.

3. Счетчик (Сч«/») и дешифратор (Ош«/») служат для создания последовательности / = 0,12 р.

4. Счетчик (Сч«/с») предназначен для выработки последовательности «К» от 1 до п задания номера функции Уолша в двоичном разложении.

5. Коммутатор («К») распределяет сигнал считывания формирователя Ф последовательно по каждому из п каналов считывания.

6. Постоянное запоминающее устройство (ПЗУ) служит для хранения постоянных коэффициентов Ск.

7. Регистр числа ргч.

8. Сумматор накапливающего типа

6. Заказ 2835.

81

9. Дешифратор результата (Бш/?) служит для преобразования двоично-десятичного кода сумматора в десятичный код.

10. Схема вычисления знака функции Уолша.

11. Схема выбора функции.

Работа преобразователя происходит следующим образом. На входе дешифратора (Эш I,) в цифровой форме с решающего устройства автомата в виде двоично-десятичного кода задается значение аргумента функции на выходе дешифратора (Dшt¿ ) это значение будет представлено уже в виде двоичного кода. Вид вычисляемой функции определяется положением ключей схемы выбора функции, которое задает необходимый набор постоянных коэффициентов в ПЗУ.

Знак, с которым необходимо эти коэффициенты суммировать, т. е. знак функции Уолша, определяется схемой вычисления знака функции Уолша. Работа ее заключается в следующем. Для функции Уолша по двоичному разложению к и / необходимо вычислить число совпадающих единиц в одноименных разрядах разложения 11 и к. При четном числе единиц совпадения знак функции Уолша положителен, при нечетном — отрицателен. Процедура вычисления намного упрощается, если в качестве суммирующего устройства использовать триггер со счетным входом, осуществляющим суммирование по модулю 2, а на вход его подавать поочередно через схемы совпадения одноименные разряды и к.

Начало вычисления происходит по сигналу «пуск». Передним фронтом этого сигнала устанавливаются в исходное состояние счетчик последовательности «/» (Сч«/»), счетчик последовательности «к» (Сч«/о>) и триггер знака функции (ТрЗ). Задним фронтом этого сигнала запускается опорный генератор синхросерии. Частота генератора определяет быстродействие функционального блока и выбирается исходя из быстродействия принятого комплекса элементов для схемной реализации проектируемого блока.

Серия импульсов опорного генератора (ОГ) подается на вход счетчика серии <ф>, осуществляющего деление на Р, где Р — максимальный порядок функции Уолша. Дешифратор «/» (Ош/) обеспечивает последовательный анализ состояний разрядов и к. При наличии единиц в одноименных разрядах I; и к через соответствующую схему совпадения и сборку на триггер (ТрЗ) поступает импульс, изменяющий его положение на обратное. Так последовательно анализируются все разряды и к от первого до р-го.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Конечное состояние (ТрЗ) эквивалентно знаку соответствующего коэффициента С к в разложении.

По окончании анализа всех Р разрядов и установлении знака ТрЗ на коммутатор «К» с формирователя (Ф) выдается сигнал считывания. Коммутатором выбирается шина коэффициента Ск и с приходом сигнала считывания значение С к заносится в регистр числа Рг4. С регистра числа РгА значение Ск может быть послано в сумматор Е в прямом или обратном коде, в зависимости от знака функции Уолша 1^(0-Группа вентилей, управляемых триггером (ТрЗ), обеспечивает выполнение указанной операции. На этом заканчивается цикл выборки коэффициента С к. Далее счетчик к автоматически устанавливается в положение К+ 1, триггер (ТрЗ) в исходное положение, и цикл повторяется.

Таким образом, в сумматоре заносятся все коэффициенты разложения С к. По окончании 'вычисления последнего коэффициента на опорный генератор выдается сигнал «стоп», счетчики и ТрЗ устанавливаются в нуль, результат вычисления из сумматора через дешифратор результата Дш р выдается на блок индикации.

Схема выбора функции определяет в ПЗУ только коэффициенты Ск, относящиеся к вычисляемой функции.

Проведем сравнение рассмотренного варианта функционального преобразователя с аналогичным по функциональным возможностям блоком вычисления функций специализированной вычислительной машины «Орбита» (находится в стадии внедрения на курском заводе «Счетмаш»).

Алгоритм вычисления функции ВМ «Орбита» — полиноминальная аппроксимация степенным рядом. Способ вычисления — программное управление арифметическим устройством машины в зависимости от вида аппроксимируемой функции.

Быстродействие (время вычисления одной функции) «Орбиты» составляет 1,5 1,7 сек, для преобразователя Уолша — 0,7 1 тсек.

Объем оборудования соответственно составляет 290 и 200 интегральных элементов серии ТС. Точность вычисления 10 ~8 -г- 10~9 и Ю"4 -г- 105 соответственно.

ЛИТЕРАТУРА

1. Б. Г. Поляк, Ю. А. Ш р е й д е р. Применение полиномов Уолша в приближенных вычислениях.— Вопросы теории математических машин, вып. 2, 1962.

i Надоели баннеры? Вы всегда можете отключить рекламу.