Está en la página 1de 4

Universidad Tecnolgica de Panam

Facultad de Ingeniera Elctrica


DETECCIN DE NUMEROS DE TELFONO
Katherine Gndola
Universidad
Tecnolgica de
Panam, estudiante

Resumen- En este artculo se presentan resultados en la


aplicacin de la confeccin de un banco de filtros capaces de
identificar el nmero de telfono de un usuario al llamar. Esto,
a partir de los sonidos emitidos por un telfono cuando se
oprime una tecla.
Los resultados se obtendr al ser oprimida una u ocho teclas,
la terminal va emitir la suma de dos sinusoides que estarn
definidas para cada nmero.
Palabras Claves- Sonido, filtro, frecuencias, vector,
programacin.

1. Introduccin y Motivacin

El DTMF significa Dual tone multi frequency signaling y


es utilizado en el rea de telecomunicaciones sobre las lneas
anlogas de telfono. La versin ms tpica del DTMF es la
que utiliza el interruptor pulsador; sea cada tecla tiene su
respectivo interruptor push button. Al presionar este botn se
generan dos funciones senoidales; una de baja frecuencia de
operacin y otra de alta frecuencia. La unin de estas
senoides representa el valor de una tecla nicamente. Los
primeros en introducir este sistema fue la compaa AT&T en
1983, la cual reemplazo al telfono rotativo. En este proyecto
nos enfocamos en analizar las seales originada de cada
tecla; as tambin, la codificacin de estos sonidos en nmeros
telefnicos. Existen diversas tcnicas de anlisis de resultados
conocidos que utilizamos a lo largo del desarrollo de este
proyecto: la representacin temporal de la seal y espectral de
la seal utilizando la transformada Fourier. Esta ltima, me da
una idea clara de la energa de la seal de salida. El programa
Matlab fue la herramienta de software utilizada para armar la
arquitectura de nuestro cdigo e implementar nuestro propio
telfono de norma DTMF.

2. Teora del DTMF


La norma DTMF se basa en una sealizacin multifrecuencial
que utiliza la mezcla de dos tonos puros. Las frecuencia fueron
cuidadosamente seleccionadas de tal forma que sus
armnicos no se relacionaran y que su intermodulacin
produzca deterioro en la sealizacin. El esquema presenta 16
combinaciones posibles. Diez de estos cdigos corresponden

Ernesto Herrera
Universidad
Tecnolgica de
Panam, estudiante
a los nmeros del 0 al 9, y los dems corresponden a *, #, A,
B, C, D; los cuales casi siempre son reservados para
sealizacin especial. Comnmente nos encontramos con
telfono de diez teclas ms el asterisco y el numeral. Los
interruptores se encuentran organizados en forma de matriz,
las columnas representan las altas frecuencias y las bajas son
las filas.
El hecho de que sean una frecuencia baja y alta tiene su razn
de ser, ya que a la hora de descodificar estas seales pueden
ser divididas a travs de un filtro pasa banda.
Como mencionamos en inciso previo, este sistema fue
introducido en los Estados Unidos en los aos 60, y mejoro
notablemente la sealizacin, fiabilidad y velocidad de
marcado. El sistema de seales DTMF son generadas por un
codificador generada por un tono de baja frecuencia y un tono
de alta frecuencia de 2db(respecto al tono de BF) para
compensar las prdidas de informacin en la larga lneas de
transmisin hacia la central telefnica.

2.1. Planteamiento DTMF


El problema con la norma DTMF es codificar las sumatorias
de funciones senoidales en nmeros. Adems el hecho de
establecer una limitante para los caracteres no vlidos y el
nmero permitido de cifras. Para generar las senoides
simplemente sumamos ambas funciones para obtener un tono
resultante de duracin 100 milisegundos. Adems de esto, se
nos pidi agregar un silenci de 50 milisegundos entre cada
tono, para poder escuchar con claridad la diferencia entre cada
uno. El silencio entre cada tono se gener a travs del
comando zeros el cual genera una matriz de ceros de N
muestras. Luego se estableci un bucle principal que
representa los intentos posibles para marca un nmero.
Posteriormente, utilizando el comando Case se evaluaron los
casos para cada uno de los caracteres respetando la norma
DTMF. Importante resaltar que se dividi el proyecto en
nmeros de una cifra y de 8 cifras para nmero telfonico; por

lo tanto, fue importante hacer uso de una vector dgitos la


cual poda tomar cualquier longitud.
Luego, se procedi a analizar la implementacin de un nmero
telefnico de 8 cifras. Para llevar esto a cabo se defini el
vector signal2, el cual es recorrido por un ciclo for,
preguntando qu nmero posee en cada posicin y a que tono
equivales dicho valor.

El segundo punto (aadirle al primer punto, las grficas


temporales y espectral de la tecla oprimida segn el case) se
realiza con el plot (instruccin de matlab que realiza un grfico)
de la variable que contiene el numero marcado. La grafica de
densidad espectral la calculamos mediante la transformada de
Fourier con 2048 puntos. Por ejemplo si marcamos el nmero
2 (figura. 2).

En la segunda parte de nuestro proyecto se intent


implementar un decodificador DTMF. Para llevar esta
operacin a cabo utilizamos el algortimo de Goertzel
representada por una ecuacin en diferencia (1) .
y (n) x(n) 2 cos(2

f
t ) y (n 1) y (n 2)
fs

(1)

Esta funcin de transferencia representa un filtro recursivo IIR.


De esta manera, y comprendiendo que cada valor de k est
fuertemente relacionado con una banda del espectro de
frecuencia x(n), podemos obtener la energa nicamente de la
bandas que nos interesan. La herramienta del Matlab no
brinda la funcin goertzel, la cual tiene como parmetro la
seal de entrada x(n) y k+1 (donde k representa Fo/Fs * N).
Esta funcin de salida nos arrojara el tono que queremos, a
travs de la banda de frecuencias. Realizando un anlisis
espectral de potencia de la seal resultando del algoritmo
podemos saber qu frecuencias poseen la mayor potencia,
para posteriormente relacionarlas con su respectiva tecla y as
conocer qu nmero se marc.

3. Paso a Paso
Cuando estudiamos las instrucciones requeridas para este
proyecto, observamos que la culminacin del mismo, se podra
lograr de diferentes maneras: entre estas con casos (case),
condiciones (if, elseif, else) o funciones.
Se analiza, creyendo conveniente mediante casos (case),
desarrollamos el primer punto (generar un programa capaz de
generar 16 seales de la norma DTMF, figura2) plantendole
al programa que necesitamos que reconozca los nmeros del
0 al 9, a, b, c, d,* y #. Sabiendo que estos caracteres son
producidos por su HF y LF. Se disea con la intencin que
produzca el sonido de cada carcter individual. El tiempo de
cada tecla es 0.1s

Figura 1. Norma DTMF.

Figura 2. Grfica temporal (izq) y densidad espectral (der).


Continuando con el tercer punto, se necesita modificar el
programa de tal manera que se logre introducir 8 caracteres
posibles (los nmeros establecidos en el primer punto). Para
ello, introducimos un nuevo programa dentro del anterior, que
verifique primero la cantidad de caracteres que se introduce
(deben ser ocho), y adems que reconozca si estos son
vlidos.
Cada punto de este proyecto debe producir el sonido del
carcter (un solo valor) o los caracteres (ocho caracteres
consecutivos).
El cuarto requerimiento para este proyecto, en el caso de los
8 caracteres, es establecer el mismo tiempo de tono para las
teclas del primer punto. A diferencia que el tiempo de silencio
entre teclas marcadas deber ser de 5ms. Para ello solo se
procede a cambiar el tiempo de tecla y el tiempo de silencio.
Adems se debe presentar la grfica de temporal de las teclas
consecutivas. Por ejemplo si marcamos el nmero 66506983,
su grfica temporal se representar as (fig.3):

Figura 3.Grfica temporal (66506983)


Figura 5. Grfica de la densidad espectral de una tecla.
El objetivo final con este proyecto es lograr decodificar los
nmeros marcados; segn lo requerido se puede realizar
mediante polos-ceros o mediante el algoritmo de Goertzel.
El proyecto se realiz con el algoritmo de Goertzel, el cual con
la ayuda en help, de Matlab se encuentra una base necesaria
para la descodificacin de nmeros, pero este solo est
diseado para la descodificacin de un solo nmero. Por, ende
se modific su estructura para obtener acceso de
decodificacin para ocho caracteres consecutivos. La
modificacin se hace en base al stem (instruccin que genera
la grfica de potencia), con la ayuda de los rangos de esta
potencia creamos condiciones de acuerdo a los valores del
stem de cada nmero.
Es importante destacar que los ocho caracteres introducidos
pasaran por el filtro de goertzel que a su vez genera su
potencia.
4. Resultados
Los resultados se basarn en los aspectos presentados en el
punto anterior; es decir en orden de instruccin.

Figura 6. Grfico temporal de 8 teclas.

Figura 7. Grfico del espectrograma de 8 teclas.


Figura 4. Grficas temporal nmero 6.

5. Referencias
[1] Matlab, help
[2] http://members.tripod.com/dsp_peru/

[3]http://s229439848.mialojamiento.es/wordpress/2009
/11/25/descodificar-tonos-dtmf-usando-matlab/
[4]http://s229439848.mialojamiento.es/wordpress/2009/01/15/ll
amando-por-telefono-con-matlab/

Figura 8. Grfica de periodograma de ocho teclas.

Figura 9. Grfico de potencia de nmeros descodificados.

Figura 10. Ejemplo de magnitudes del 1 hasta A. Funcin


stem

También podría gustarte