Decodificador de tono DTMF Touch utilizando microprocesadores PIC de Microchip (2 / 9 paso)

Paso 2: Descripción del algoritmo de procesamiento de señal

Microprocesadores de 12F683 PIC la construida en A/D convertidor se utiliza para una entrada audio forma de onda de la muestra. Las muestras son analizadas utilizando el algoritmo de Goertzel para detectar si alguno de los 8 tonos están presente.

El algoritmo de Goertzel es una algoritmo que se utiliza para detectar una sola frecuencia de procesamiento de señal. Actúa como un filtro bandpass muy estrecho.  Produce una respuesta muy fuerte a las frecuencias dentro de la banda de paso y una respuesta mucho más baja para las frecuencias fuera de la banda de paso.

En mi implementación del algoritmo, las muestras se toman a un ritmo de 4 veces la frecuencia para ser detectado. Utilizando una frecuencia de muestreo de frecuencia de 4 veces el destino hace coeficientes utilizados en el algoritmo de ser igual a 1 o 0. Esto elimina la necesidad de realizar multiplicación complicado y desperdiciador de tiempo en un micro de 8 bits.  Yo no he incluido todos los detalles matemáticos del algoritmo aquí, pero una búsqueda en Google produce artículos sobre el tema si estás interesado en aprender más sobre el algoritmo sí mismo.

Debido a la restricción que la frecuencia de muestreo debe ser 4 veces el destino frecuencia, la frecuencia de muestreo necesaria será diferente para cada uno de los 8 tonos que se utilizan para DTMF. Por lo tanto, el algoritmo se debe ejecutar una vez para cada una de las 8 frecuencias. Esto significa que un conjunto separado de las muestras debe tomarse para cada frecuencia de interés, como cada frecuencia se probarán a una velocidad de muestreo diferente.

La agudeza de la respuesta del filtro versus frecuencia es proporcional al número de muestras tomadas. La respuesta del algoritmo debe ser aguda que responde a la frecuencia de objetivo, pero no responde a ninguna de las otras 7 frecuencias. Se encontró un valor de 120 muestras para producir una respuesta razonablemente estrecha en experimentación. Por supuesto hay un equilibrio entre el número de muestras y el tiempo de ejecución. Para detectar tonos cortos, el tiempo de ejecución debe ser tan corto como sea posible. Pero hacer una respuesta estrecha el número de muestras debe ser mayor, dando por resultado un tiempo de ejecución. El número de muestras se convierte la limitación de factor en cómo falta un tono puede ser detectado.

Una vez que el algoritmo ha procesado 120 muestras, salidas un valor. La magnitud de este valor es proporcional a la amplitud de la frecuencia de interés. Este valor resultante se compara contra un umbral para determinar si la frecuencia de la blanco está presente.
Una vez que el algoritmo ha sido dirigido para todas las frecuencias de 8, el microprocesador ejecuta lógica en los resultados para determinar si un par DTMF válido está presente. Un par DTMF válido se considera presente sólo si 1 fila freq y 1 col freq se detecta. Otras combinaciones son considerados como no válidos.

El gráfico muestra la respuesta real medida mediante este algoritmo en un PIC 12F683.  El gráfico muestra que la respuesta en frecuencia de todo 8 veces el algoritmo se ejecuta.  El eje x es la frecuencia en Hz.  El eje vertical es la salida de valor por el algoritmo.  La entrada es una onda sinusoidal de 1V, barrida de 600Hz a 1800Hz.  Tenga en cuenta que el ancho de la respuesta es más amplio para los filtros de frecuencia más alta.  Esto es debido a que el ancho de la respuesta es proporcional a la frecuencia de muestreo, dividida por el número de muestras tomadas.  En esta implementación del algoritmo, la frecuencia de muestreo es siempre cuatro veces la frecuencia de la blanco, a simplemente y acelerar los cálculos.  Sin embargo, el mismo número de muestras se utiliza para cada una de las frecuencias 8 objetivo.  El hacer el ancho de la respuesta de la misma para cada uno requeriría utilizando la misma frecuencia de muestreo para cada uno, que implicaría más matemáticas mucho tiempo, o sería necesario que el número de muestras tomadas en las frecuencias más altas sea mayor, que alarga el tiempo de ejecución.  Si estaba usando un microprocesador con una verdadera funcionalidad DSP, las matemáticas adicionales podrían ser realizadas muy rápidamente y entonces sería algo que usted probablemente incluiría.

A pesar de las diferencias en el ancho de la respuesta, la operación ha sido muy robusta en la detección de tonos, incluso en presencia de ruido significativo.

Artículos Relacionados

Permite programar un microprocesador PIC

Permite programar un microprocesador PIC

OK ¿cómo difícil programar un microprocesador PIC se puede?Bueno depende, algunos son más difíciles que otras por varias razones, el lenguaje de programación, el tipo de microprocesador, la facilidad de uso de lo software de edición y lo más importan
Robot controlado por Skype con smartphone y tonos DTMF

Robot controlado por Skype con smartphone y tonos DTMF

Presente informe se describe es una plataforma de movimiento simple que es accionado por control remoto en red WLAN Internet o teléfono móvil a través de Skype mediante tonos DTMF. Control de tonos de audio es un método mucho más simple que el Blueto
En Tin utilizando lápices de colores-técnica de la aguafuerte

En Tin utilizando lápices de colores-técnica de la aguafuerte

esto es una gran técnica para grabar obras de arte de tus hijos directamente sobre metal!  No transferir o seguimiento de sus obras de arte!  Es una divertida técnica usando fáciles de encontrar y barato, suministros.Fuentes: Alambre de lápiz, cobre,
Nuevo DIY a la tela del futuro impresión utilizando lápices de colores!

Nuevo DIY a la tela del futuro impresión utilizando lápices de colores!

Regreso al futuro, trilogía de una comedia de ciencia ficción impresionante. Muchos visto y pronto se convirtieron en sus seguidores, y era uno de ellos! Los fans seguramente gustaría sus ropas y cosas así, pero estos no están disponibles en todas pa
Utilizando microcontroladores PIC de gestores de arranque

Utilizando microcontroladores PIC de gestores de arranque

En este primer video tenemos a ver la conexión de hardware así como alguna información breve sobre cómo funcionan los gestores de arranque.El enlace para el gestor de arranque pequeña se enumera a continuación:http://www.etc.UGAL.ro/cchiculita/softwa
Biblioteca PIC de microchip para el Control de un 20 por 4 LCD sobre I2C

Biblioteca PIC de microchip para el Control de un 20 por 4 LCD sobre I2C

Este Instructable presenta una biblioteca de 'C' para el control de un solo 20 por 4 LCD basado en el controlador HD44780 LCD sobre I2C usando 8 bits IO expansor PCF8574 NXP remoto. La pantalla LCD está configurada para la interfaz de 4 bits y puede
8 canales temporizador programable

8 canales temporizador programable

IntroducciónHan estado utilizando gama PIC de Microchip de microcontrolador para mis proyectos desde 1993 y han hecho toda mi programación en lenguaje ensamblador, usando el IDE de MPLab de Microchip. Mis proyectos osciló entre el semáforo simple e i
Detector de frecuencia usando PIC 12F683 procesador

Detector de frecuencia usando PIC 12F683 procesador

este proyecto describe el hardware y el software que he desarrollado y que permite a un microprocesador de 8 bits pequeño PIC funcionar como un detector de frecuencia única o decodificador de tono.Tal circuito puede utilizarse para detectar la presen
ROBOT de DTMF (sin microcontrolador)

ROBOT de DTMF (sin microcontrolador)

HOLA AMIGOS!!!En este instructable voy a compartir mi proyecto con ustedes...!Intro:-Este proyecto se realiza para el concurso de la expo de proyecto en nuestro colegio (JNTUCEA)...Este ROBOT de DTMF se puede controlar desde cualquier lugar mediante
DIY Altoid DTMF codificador/generador!

DIY Altoid DTMF codificador/generador!

Lo damos por sentado en la edad moderna, pero sólo un par de décadas atrás (!), recuerdo aún vívidamente usando mi teléfono rotatorio para marcar. En algún momento en la escuela secundaria, con el advenimiento de la llamada de tres vías, nuestra fami
Un dados de LED con un PIC 16F84 (o 16F88)

Un dados de LED con un PIC 16F84 (o 16F88)

Se trata de una reedición de un proyecto que hice un número de años - fue pesca de arrastre de la web y descubrió que otros habían estado haciendo, así que decidí poner el detalle aquí en instructables.com - para que otros puedan beneficiarse.Muchos
Usando el MT8870 DTMF Decoder con Arduino

Usando el MT8870 DTMF Decoder con Arduino

decodificadores DTMF se utilizan para detectar tonos DTMF Genrated por móvil teclado DTMF.En este proyecto vamos a decodificar los tonos DTMF en 4 bits de salida y esta salida se da a la arduino que detecta la pulsación de tecla y se muestra en la pa
Cómo interpretar el sentido de giro de un conmutador digital con un PIC

Cómo interpretar el sentido de giro de un conmutador digital con un PIC

el objetivo de este Instructable es ilustrar cómo a interfaz digital (cuadratura codificado) interruptor rotatorio con un microcontrolador. No te preocupes, voy a explicar qué cuadratura codificado significa para nosotros. Esta interfaz y el software
Torre tanque RC PIC Servo regulador de vapor

Torre tanque RC PIC Servo regulador de vapor

Un PIC de Microchip basado en controlador de servo que ofrece muchas de las funcionalidades de servos digitales para menores $9!Los controladores de capturan la salida del receptor r/c, opcionalmente manipulan las muestras y regeneran nuevas señales