ЭУМК по дисциплине "Программирование проблемно-ориентированных вычислительных средств реального времени" › Практика › Практическое занятие "Программирование синусоидальных сигналов с использованием интерполяционного табличного метода"

# Электронный учебно-методический
комплекс по дисциплине
"Программирование проблемно-ориентированных вычислительных средств реального времени"

для специальности

1-40 02 02 «Электронные вычислительные средства»

Оглавление | Программа | Теория | Практика | Контроль знаний | Об авторах

2. Программирование синусоидальных сигналов с использованием интерполяционного табличного метода.
1) Табличный метод с интерполяцией для программирования синусоиды с дробным шагом

Данный метод является модификацией предыдущего и в его основе лежит точно такая же таблица синуса и обычная линейная интерполяция функции между двумя точками.
Данный метод описывается выражением
sin(2Π(i+d)/N) ≈ sin(2Πi/N) + d·[sin(2Π(i+1)/N) – sin(2Πi/N)] = S(i) + d·[S(i+1) – S(i)]
где i – целая часть аргумента (индекс в таблице синуса), а d – дробная часть (коэффициент пропорциональности).
Данный метод может быть проиллюстрирован рисунком 2.1:

###

### Рисунок 2.1 – Синусоида с дробным шагом аргумента и интерполяцией

2) Рекомендации по программированию
Для удобства вычислений аргумент рекомендуется хранить в аккумуляторе В таким образом, что бы целая часть аргумента располагалась в аккумуляторе начиная с 15-го разряда. В этом случае дробная часть будет занимать младшую часть аккумулятора
Поскольку в знаковом (15-м) разряде находится младший бит целой части, то для выделения дробной части необходимо использовать маску 0х7FFF.
Формулу вычисления синуса лучше преобразовать к следующему виду
sin(2Π(i+d)/N) ≈ S(i) + d·S(i+1) – d·S(i)
что позволит применить автоинкрементную и автодекрементную косвенную адресацию. Для контроля выхода адреса за пределы таблицы синуса можно использовать соответствующую маску, расположив саму таблицу с адреса кратного степени двойки большей длины таблицы. В этом случае вместо аргумента можно использовать аргумент увеличенный на адрес таблицы, т.е. фактически работать с адресами памяти.

Оглавление | Программа | Теория | Практика | Контроль знаний | Об авторах
© БГУИР , 2012