19.7. ЦИФРОВЫЕ ФУНКЦИОНАЛЬНЫЕ ПРЕОБРАЗОВАТЕЛИ
Некоторая функция заданная в табличной форме, может быть непосредственно реализована с помощью ПЗУ. Для обеспечения высокой разрешающей способности требуется применение многоразрядных чисел, т.е. ПЗУ с большой емкостью. Емкость ПЗУ можно значительно уменьшить, если запоминать только какую-либо часть таблицы, с помощью которой затем рассчитываются любые значения функции путем простых вычислительных операций. Для этого с успехом можно использовать некоторые специальные свойства заданной функции.
19.7.1. ФУНКЦИЯ СИНУСА
Удобство функции синуса состоит в ее периодичности. Поэтому необходимо запомнить значения функции только для аргумента . В качестве входной величины будем использовать двоичную дробь равную
полагая при этом
При длине входного слова 9 бит (что дает точность 0,2%) и длине выходного слова 8 бит можно использовать программируемое маскированием ПЗУ типа с маской выпускаемое фирмой National. Расширение длины выходного слова до 16 разрядов возможно с помощью второго ПЗУ типа запрограммированного маской
Если требуется большая длина входного слова, то необходимая для этого емкость ПЗУ очень быстро достигает нереализуемых значений. Например, уже для 16 разрядов на входе и выходе она достигает 1 Мбит.
Уменьшение требуемой емкости памяти достигается путем деления входной величины X на грубую (М) и точную (L) части и использования теоремы о функции суммы углов. Положив
получим
Рис. 19.39. Формирование функции синуса с 16-разрядной точностью.
Точная часть выбирается столь малой, что с требуемой точностью можно записать
При этом также
и выражение (19.12) можно упростить следующим образом:
Для вычисления этого выражения также требуются функции но уже с меньшей длиной входного слова.
Рассмотрим этот метод с помощью числового примера. Пусть необходимо вычислить синус с разрешающей способностью по входу и выходу в 16 разрядов. Определим прежде всего разрядность величины Ошибка формулы (19.13) будет наибольшей при максимальных значениях Исходя из требования
получим, согласно выражению (19.13).
т. е.
Чтобы это ограничение было выполнено, следует использовать для максимум 7 последних разрядов, а именно разряды Поэтому для остаются старшие 9 бит двоичной дроби, а именно разряды Это разделение показано на рис. 19.39. Таким образом, для вычисления грубого значения здесь требуется одно ПЗУ синуса на 29 слов по 16 разрядов.
Вычисление интерполяционной поправки К по формуле (19.15) производится с помощью умножителя. На его выходе, правда, не требуется слово полной длины 16 бит. Здесь достаточно 8 бит (двоичные разряды 2 9 так как наибольшая величина интерполяционной поправки составляет
Рис. 19.40. Упрощенная схема формирования функции синуса. Длина входного слова - 12 разрядов, точность представления результата-14 разрядов.