Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DTMF EN MATLAB
UNIVERSIDAD POLITECNICA SALESIANA JUAN DIEGO BERNAL, JAIME SANCHEZ R, CHRISTIAN
ROMERO, MARCO SANCHEZ ESTUDIANTES DE LA CARRERA DE INGENIERÍA ELECTRÓNICA Abstract
Dentro de la telefonía, el sistema DTMF es muy usado para detectar las teclas que
se están pulsando y según eso realizar la marcación. Para esto se hace un análisis
en frecuencia de los tonos y se va viendo el rango en el que estos están. Esto se
puede implementar d manera física o usando un software, que ese es nuestro caso. A
continuación se detalla el proceso y conceptos básicos que se debe saber sobre este
tema. Palabras clave: DTMF, rango de frecuencias, FFT
1. DTMF Es un método utilizado por el sistema telefónico para reconocer las teclas
pulsadas durante la marcación. Al pulsar una tecla en el teclado del teléfono se
generan dos tonos simultáneos, que son descodificados por la centralita para
determinar la tecla pulsada. Este método se aplica tanto para celulares como para
teléfonos convencionales para poder enlazar una comunicación. Para poder realizar
la práctica, primero se tuvo que revisar el rango de frecuencias en las que se
encontraban cada uno de los números, para esto se reviso la siguiente tabla:
Con las sentencias anteriormente descritas, podemos detectar las frecuencias. Ahora
una PRACTICA DTMF Página 1
DSP
vez hecho este pasó, procedemos a analizar el sonido adquirido, ya que el mismo si
no esta dentro el rango especificado, no servirá de nada. Para esto Nos valemos de
la siguiente función:
function num=detection(f,modulo) num='4'; elseif indice== [2 6] num='5'; elseif
indice== [2 7] num='6'; elseif indice== [3 5] num='7'; elseif indice== [3 6]
num='8'; elseif indice== [3 7]1 num='9'; elseif indice== [4 5] num='asterisco';
elseif indice== [4 6] num='0'; elseif indice== [4 7] num='numeral'; else
num='error'; end end for j=1:length(base_f)
a(j)=find(f>(base_f(j)rango),1,'first'); % indice b(j)=find(f>(base_f(j)+
rango),1,'first'); % umbral(j)=max(modulo(a(j):b(j))); % end
u_umbral=max(umbral)/3; % for i=1:length(base_f) if (umbral(i)>u_umbral)
f_base(i)=base_f(i); else f_base(i)=0; end end indice=find(f_base); if
(length(indice)>2) || (length(indice)==0) num='error'; else if indice==[1 5]
num='1'; elseif indice==[1 6] num='2'; elseif indice== [1 7] num='3'; elseif
indice== [2 5]
PRACTICA DTMF
Página 2
DSP
relacionada a la tecla pulsada o un mensaje de error
nome_img_display=strcat(num,'.bmp '); display=imread(nome_img_display); % leer la
imagen imshow(display)
los tonos. Nos resulto de gran ayuda ya que las mismas ayudaron a determinar el
rango de análisis de los mismos. Cabe recalcar que la realización de la presenta
practica nos ayudara a futuro en donde tengamos que implementar algoritmos
computacionales más complejos, sin embargo los mismos no nos resultaran difíciles
si aplicamos los conceptos adquiridos en la presente práctica. Estas serian
nuestras conclusiones al término de la presente práctica. 3. REFERENCIAS
[1]http://www.mediacollege.com/audio/ton e/dtmf.html
[2]http://www.scribd.com/doc/39576022/In terface-DTMF
[3]http://www.mathworks.com/products/sig nal/demos.html?file=/products/demos/shipp
ing/signal/dtmfdemo.html
PRACTICA DTMF
Página 3