Генератор синусоидального сигнала

В задании для генерации (Chapter 4) синусоидального сигнала используется стандартная библиотека dsplib, которая предоставляется Texas Instruments. В этой библиотеке содержится много полезных функций для работы с ЦСП:

- функция Быстрого Преобразования Фурье

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

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

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

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

Для наблюдения за результатом выполнения программы на ЦСП, подключим STEREO OUT платы (Рис. 5.14.) к линейному входу звуковой карты компьютера и с помощью программы Cool Edit, будем записывать сигнал сгенерированный ЦСП. Зададим различные значения частоты и амплитуды для левого и правого каналов:

· left_output = generate_sinewave_1(250, 5000);

· right_output = generate_sinewave_2(500, 10000);

На левом канале стерео выхода мы увидим синусоидальный сигнал с частотой равной 250 Гц и амплитудой 5000, а для правового канал частота будет равна 500 Гц и амплитуда 10000. Результат генерации мы можем наблюдать в окне программы Cool Edit (Рисунок 5.15). Так же результаты работы программы можно наблюдать на экране осциллографа.

Генератор синусоидального сигнала - student2.ru

Рис. 5.14.Подключенный к STEREO OUT

Генератор синусоидального сигнала - student2.ru

Рис. 5.15.Результат генерации синуса

Для генерации сигнала используется функция sine() (sine ( &count, &sinusoid, 1);). Она принимает три параметра:

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

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

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

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

-0 соответствует 0o

-16383 соответствует 90o

-32767 соответствует 180o

-2 * 32767 соответствует 360o

Генерация DTMF сигнала

Тональный набор (Chapter 14), тональный сигнал (Dual-Tone Multi-Frequency, DTMF) — двух-тональный многочастотный аналоговый сигнал, используемый для набора телефонного номера. Сфера применения тональных сигналов: автоматическая телефонная сигнализация между устройствами, а также ручной ввод абонентом для различных интерактивных систем, например голосового автоответа. По используемой полосе частот сигнал соответствует телефонии.

Для кодирования символа в DTMF сигнал, требуется использовать таблицу (Таблица 5.1).

Таблица 5.1

  1209 Гц 1336 Гц 1447 Гц
697 Гц
770 Гц
852 Гц
941 Гц * #

Частоты подобраны таким образом, чтобы их гармоники не накладывались на соседние основные частоты.

Чтобы получить закодированный сигнал, требуется сложить два синусоидальных сигнала с частотами из строки и столбца. Например, рассмотрим кодирование символа «5». Для этого нам потребуется сложить синусоидальный сигнал с частотой 770 Гц и синусоидальный сигнал с частотой 1336 Гц. Получившейся сигнал будет представлять собой DTMF сигнал для символа «5».

В нашем проекте функция dial_phone_number(&telephone_number[0]) отвечает за кодирование символа в DTMF сигнал. Данная функция принимает в виде параметров адрес первого элемента строки, содержащей символы которые мы хотим закодировать в DTMF. Внутри данной функции строка проверяется на наличие символов, которые можно закодировать, в случае обнаружения такого символа вызывается функция generate_DTMF(button). В эту функцию передается символ, который нужно закодировать. Далее для символа находятся требуемые значения частот и генерируются два синусоидальных сигнала с этими частотами, которые затем складываются. На выходе этой функции мы получаем готовый DTMF сигнал.

Аналогично предыдущим заданиям с выхода STEREO OUT платы, сможем увидеть какой формы, будет DTMF сигнал для символов «1», «5» (Рис. 5.16., Рис. 5.17.).

Генератор синусоидального сигнала - student2.ru

Рис. 5.16. DTMF сигнал, символа «1»

Генератор синусоидального сигнала - student2.ru

Рис. 5.17. DTMF сигнал, символа «5»

Наши рекомендации