Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методическиое пособие_10.docx
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
4 Мб
Скачать
☆

5.4.Генерация dtmf сигнала

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

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

Таблица 5.1

1209 Гц

1336 Гц

1447 Гц

697 Гц

1

2

3

770 Гц

4

5

6

852 Гц

7

8

9

941 Гц

*

0

#

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

Чтобы получить закодированный сигнал, требуется сложить два синусоидальных сигнала с частотами из строки и столбца. Например, рассмотрим кодирование символа «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.).

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

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

5.5.Реализация фильтра с конечной импульсной характеристикой

Фильтр с конечной импульсной характеристикой (нерекурсивный фильтр, КИХ-фильтр) или FIR-фильтр (Finite Impulse Response) - один из видов линейных цифровых фильтров, характерной особенностью которого является ограниченность по времени его импульсной характеристики (с какого-то момента времени она становится точно равной нулю). Такой фильтр называют ещё нерекурсивным из-за отсутствия обратной связи в схеме его реализации. Знаменатель передаточной функции такого фильтра — некая константа. Поведение и эффективность работы фильтра определяется его коэффициентами.

В данной работе (Chapter 6 Teaching ROM) мы рассмотрим фильтр низких частот с частотой среза 800 Гц, при различных значениях коэффициентов. Коэффициенты фильтра в проекте хранятся в файле Hamming.h.

Для начала нужно создать синусоидальный сигнал, который будет содержать несколько гармоник (т.е. сигналов кратных частот, например 500 Гц, 1000 Гц, 1500 Гц) (Рисунок 5.18). Видно, что форма сигнала довольно сложна. Воспользуемся программой Cool Edit. И для подачи этого сигнала на ЦСП, подключим STEREO IN платы к линейному выходу компьютера. Для того чтобы наблюдать результат фильтрации сигнала подключим STEREO OUT платы к линейному входу компьютера. Будем записывать сигнал с помощью программы Cool Edit или наблюдать его на экране осциллографа.

Рис. 5.18. Форма входного сигнала

Для вычисления коэффициентов воспользуемся утилитой FDA Tool из пакета приложений MatLab. После запуска этой утилиты, откроется окно (Рис. 5.19.), в котором можно выбрать необходимые параметры требуемого фильтра.

Рис. 5.19. Окно настройки фильтра

После выполнения основных настроек, можно менять порядок (количество коэффициентов) фильтра, выставляя нужное нам значение в поле Specify order. Далее выбрав Targets - Generate C header откроется окно, в котором можно выбрать в каком формате коэффициенты фильтра будут представлены в заголовочном файле нашего проекта. И по нажатию кнопки Generate будет создан заголовочный файл, данные из которого мы можем скопировать в файл, в котором хранятся коэффициенты для фильтра из нашего проекта.

Таким способом сгенерированы 2 набора коэффициентов, которые приведены в приложении (Приложение I) для задания и показаны АЧХ для каждого из наборов (Рис. 5.20., Рис. 5.21.):

Рис. 5.20. АЧХ КИХ-фильтра 100-ого порядка

Рис. 5.21. АЧХ КИХ-фильтра 200-ого порядка

Из приведённых АЧХ видно, что с ростом порядка увеличивается крутизна на заданной частоте и в полосе пропускания характеристика становится более плоской.

Важно не забыть поменять в проекте значение N (количество коэффициентов у фильтра) в модуле FIR_filters_asm.asm.

Рис. 5.22. Отфильтрованный сигнал при наборе из 101 коэффициента (сверху - исходный сигнал, снизу - отфильтрованный сигнал)

Рис. 5.23 Отфильтрованный сигнал при наборе из 201 коэффициента (сверху - исходный сигнал, снизу - отфильтрованный сигнал)

Результаты работы фильтров приведены на Рис. 5.22. и Рис. 5.23. Наглядно видно, что с ростом порядка фильтра улучшается степень фильтрации и можно наблюдать гармонический сигнал 500Гц практически идеальным.

БИБЛИОГРАФИЯ

1.А.Оппенгейм, Р.Шафер Цифровая обработка сигналов – Техносфера, 2007. – 855с.

2.А.Б.Сергиенко Цифровая обработка сигналов - Питер, 2006. - 750с.

3.www.ti.com, Technical Reference Manual TMS320C5535 DSP (Техническое справочное руководство файл spruh87c.pdf), 2012. – 545с.

4.www.ti.com, Assembly Language Tools User’s Guide (файл spru280h.pdf), 2004. – 523с.

5.www.ti.com, TMS320C5535, 'C5534, 'C5533, 'C5532 Fixed-Point Digital Signal Processors (файл sprs737b.pdf), 2012, - 156с.

6.Г.Олссон, Д.Пиани Цифровые системы автоматизации и управления – Невский Диалект, 2001. – 506с.

ПРИЛОЖЕНИЯ

Первый набор коэффициентов FIR фильтра из 101 коэффициента:

{ -15, -16, -17, -19, -21, -24, -27, -29, -32, -35, -38, -40, -42, -43, -42, -40, -37, -31, -23, -13, 0, 16, 35, 58, 84, 113, 146, 182, 222, 264, 309, 357, 407, 459, 512, 566, 620, 674, 727, 778, 827, 874, 918, 957, 993, 1024, 1050, 1070, 1085, 1094, 1097, 1094, 1085, 1070, 1050, 1024, 993, 957, 918, 874, 827, 778, 727, 674, 620, 566, 512, 459, 407, 357, 309, 264, 222, 182, 146, 113, 84, 58, 35, 16, 0, -13, -23, -31, -37, -40, -42, -43, -42, -40, -38, -35, -32, -29, -27, -24, -21, -19, -17, -16, -15}

Второй набор коэффициентов FIR фильтра из 201 коэффициента:

{ -7, -7, -6, -6, -5, -5, -4, -3, -2, -1, 0, 1, 3, 4, 6, 8, 10, 12, 14, 17, 19, 21, 24, 26, 28, 30, 32, 33, 34, 35, 35, 34, 33, 32, 30, 27, 23, 18, 13, 7, 0, -8, -16, -25, -34, -44, -55, -65, -76, -87, -97, -108, -117, -127, -135, -142, -148, -152, -154, -155, -154, -150, -145, -136, -125, -112, -95, -76, -53, -28, 0, 31, 64, 101, 139, 180, 223, 268, 315, 363, 412, 461, 511, 561, 611, 660, 708, 755, 799, 842, 882, 920, 954, 985, 1013, 1036, 1056, 1071, 1083, 1089, 1092, 1089, 1083, 1071, 1056, 1036, 1013, 985, 954, 920, 882, 842, 799, 755, 708, 660, 611, 561, 511, 461, 412, 363, 315, 268, 223, 180, 139, 101, 64, 31, 0, -28, -53, -76, -95, -112, -125, -136, -145, -150, -154, -155, -154, -152, -148, -142, -135, -127, -117, -108, -97, -87, -76, -65, -55, -44, -34, -25, -16, -8, 0, 7, 13, 18, 23, 27, 30, 32, 33, 34, 35, 35, 34, 33 32, 30, 28, 26, 24, 21, 19, 17, 14, 12, 10, 8, 6, 4, 3, 1, 0, -1, -2, -3, -4, -5, -5, -6, -6, -7, -7}

53