[an error occurred while processing this directive]
Ответ: (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено SM 23 ноября 2002 г. 13:10
В ответ на: Посоветуйте, pls , как контроллером анализировать DTMF. Заранее спасибо. отправлено lego 23 ноября 2002 г. 03:14

Вариант №1.

Если в МК нет умножителя:

Имеем входной сигнал X. Дальше он проходит через компаратор:

| -1 при Х<0
x = {
| +1 при X>=0

ну или в более правильном виде - x=sign(X)

Далее основная обработка:

N-1
---
Y = \ x[n]*sign(cos(2*pi*n*Fx/Fs))
/
---
n=0


N-1
---
Z = \ x[n]*sign(sin(2*pi*n*Fx/Fs))
/
---
n=0

В этих формулах N - размер выбранного окна в выборках. Желательно подобрать как можно ближе к тому, чтобы все частоты в этом окне имели целое количество периодов. Fx - анализируемая частота, Fs - частота дискретизации.
Умножение сводится тут к операции XOR, если лог. 1 принять за +1, а лог.0 - за -1. Да, а все синусы и косинусы - держать заранее рассчитанными в таблице, достаточно 1 бита на одну выборку.

Далее:
____________
/ 2 2
E = \/ Y + Z

Получаем число, пропорциональное энергии сигнала на частоте Fx. Корень естественно можно не считать, так как квадрат энергии нас тоже устроит. Возведение в квадрат - по таблице.

2
то есть ,берем E


Ну и последнее:
2
| 0, если E < Thr
T = { 2
| 1, если E >= Thr


Thr - выбранный порог срабатывания детектора. T - выходной сигнал, 1 означает что требуемая частота присутствует в спектре входного сигнала и обладает достаточной энергией.

Этот метод полностью аналогичен преобразованию Фурье для одной частоты Fx.

Вариант №2:

А если в МК есть нормальный умножитель (16 бит х 16 бит) - то используется фильтр Герцеля, который в общем-то тоже аналогичен преобразованию Фурье в 1 точке. Про это я расписывать не буду, в гугле можно тучу информации найти спросив про "Goertzel filter"

ЗЫ
Если где ошибся - подправьте....

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru