Генерация синусоидального сигнала на микропроцессоре

Цель работы

Генерация синусоидального сигнала на микропроцессоре Texas Instruments с выводом на осциллограф.

Методические указания

В микропроцессорной технике генерация текстовых гармонических сигналов используется постоянно. Применяются два подхода:

1) В первом случае значение полупериода гармонического сигнала предсавляются в виде таблицы. Чем точнее должен быть сгенерирован сигнал, тем больше размер этой таблицы. Этот метод имеет главное достоинство – быстрое получение результата. Недостаток – низкая точность при генерации высоких частот.

2) Второй подход заключается в представлении синуса и косинуса в виде степенного ряда. Этот подход используется в DSPLIB. Достоинство – высокая точность, зависящая от количества составляющих ряда. Недостаток – длительность вычислений.

В задании для генерации синусоидального сигнала используется стандартная библиотека DSPLIB, которая предоставляется Texas Instruments. В этой библиотеке содержится много полезных функция для работы с сигналам, например:

● функция БПФ

● функции синуса, косинуса, тангенса

● функции экспоненты и логарифма

● и т.д.

Каждая из функций оптимизирована для работы с конкретным процессором.

Ход выполнения

Генерация синусоидального сигнала на микропроцессоре

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

В коде генерируются две синусоиды на два разных канала:

left_output = generate_sinewave_1(250, 5000);

right_output = generate_sinewave_2(500, 10000);

Первый параметр – частота генерируемой синусоиды, второй – амплитуда.

Для генерации сигнала используется функция sine(int &count, float &sinusoid, 1). Аргументы этой функции:

● count – адрес памяти, в котором содержится значение частоты

● sinusoid – адрес памяти, в который помещается рассчитанное значение синуса

● третий параметр всегда 1

sine() вычисляет синус угла, для чего на вход функции подается число с фиксированной точкой, которое соответствует значению угла:

● 0 ->

● 16383 ->

● 32767 ->

● 65534 ->

Результат выполнения программы можно наблюдать через осциллограф:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: