Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Diseñar una aplicación en Matlab capaz de convertir una entrada de audio a texto mediante un proceso de
filtraje y codificación.
Jordan Armas
Nicolas Jácome Dennis Fraga
Cesar Villacres
Resumen—Este documento resume en su totalidad el desarrollo De paso alto (HPF), de paso bajo (LPF), de paso
de un aplicativo propio de Matlab y pretendemos mostrar cómo
banda (BPF), elimina banda (filtros notch o filtros trampa)
con ayuda de herramientas para cálculo numérico podemos
diseñar filtros digitales apropiados para una gran diversidad de o "pasa-todo".
aplicaciones.
I. INTRODUCCION clear all; %elimina todas las variables
en el workspace
[y,fs]=audioread('prueba3.wav'); %se
Matlab es tanto un entorno poderoso para cálculo
computacional como un lenguaje de programación. obtiene la frecuencia de muestreo y la
Matlab cuenta con una completa gama de herramientas para amplitud de cada punto de la onda.
diseño de filtros mediante esta utilidad, considerando como onda=y(:,1); %se toma todas las filas del
regla general, cualquier algoritmo o sistema de tratamiento vector onda
puede interpretarse como un filtro [tam1,tam2]=size(onda); %se obtiene el
tama?o del vector onda
I. OBJETIVOS tam1;
Objetivo General m=tam1/3000; %se divide el numero de
Diseñar una aplicación en Matlab capaz de convertir muestras de la onda para 3000 que es el
una entrada de audio a texto mediante un proceso de numero de muestras por cada pulso.
filtraje y codificación. m=fix(m); %se redondea el valor para el
Objetivos Específicos inmediato inferior
Conocer, saber diseñar e interpretar la respuesta figure;
impulsional que caracteriza un filtro. plot (onda); %Se grafica la onda total
Conocer los parámetros de diseño de un filtro: banda todos los pulsos
de paso y de atenuación, entre otros. sound(onda,fs); %Se reproduce el audio de
los pulsos
Fs = 2614; %Frecuencia de muestreo por
II. MARCO TEÓRICO pulso de la se?al
T = 1/Fs; %Periodo por pulso de la se?al
for n=1:1:m %Se pone un for para que se
Un filtro eléctrico o filtro electrónico es un elemento que repita el proceso para el numero de pulsos
discrimina una determinada frecuencia o gama de frecuencias de la se?al de audio
de una señal eléctrica que pasa a través de él, pudiendo
L=n*2000; %El numero de datos que se
modificar tanto su amplitud como su fase.
toman para analizar la se?al
t =((n1)*2000:L1)*T; %el tiempo de
Los filtros electrónicos pueden ser:
acuerdo al pulso n que se esta analizando
Analógicos o digitales.
yout=onda(3000*(n1)+1000:3000*(n %Este es el c?digo obtenido para la se?
1)+2999); %El tramo de la onda con al de entrada total.
respecto al numero de pulso analizado
for(z=1:2:m) %aqui se decodifican dicho c?
%=====================Filtrado de la se?al digo para producir un mensaje legible.
de audio==================== for(r=0:1:9) %ciclo para
%Esta etapa registra la amplitud m?xima la decodificar letras y numeros
frecuencia baja y frecuencia if(cod(z)==r && cod(z+1)==11)
%alta de la matriz del teclado, se obtiene %ciclo para decodificar numeros
la posici?n y se guarda esta cad(1,z)=int2str(r);
%para posteriormente verificar que tecla end
se ha pulsado. end
if(cod(z)==0&&cod(z+1)==0)
bmax=[]; %vector para almacenar la ampli cad(1,z)=char(' ');
max de las frec bajas end
amax=[]; %vector para almacenar la ampli if(cod(z)==2&&cod(z+1)==1)
max de las frec altas cad(1,z)=char('A');
frec=[697,770,852,941 ; end
1209,1336,1477,1633]; if(cod(z)==2&&cod(z+1)==2)
for i=1:1:4 cad(1,z)=char('B');
[fbajo,falto]=DTMF(frec(1,i) end
10,frec(1,i)+10,frec(2,i)10,frec(2,i) if(cod(z)==2&&cod(z+1)==3)
+10,yout); cad(1,z)=char('C');
bmax(1,i)=max(fbajo); %obtiene la end
amplitud max del filtro de frec bajas if(cod(z)==3&&cod(z+1)==1)
amax(1,i)=max(falto); %obtiene la cad(1,z)=char('D');
amplitus max del filtro de frec altas end
end if(cod(z)==3&&cod(z+1)==2)
[filb,colb]=find(bmax==max(bmax)); % para cad(1,z)=char('E');
obtener la posicion de la ampli max de las end
frec bajas if(cod(z)==3&&cod(z+1)==3)
[fila,cola]=find(amax==max(amax)); % para cad(1,z)=char('F');
obtener la posicion de la ampli max de las end
frec altas if(cod(z)==4&&cod(z+1)==1)
frec_baja=frec(filb,colb); %obtiene la cad(1,z)=char('G');
frecuencia baja de la tecla presionada end
frec_alta=frec(fila+1,cola);%obtiene la if(cod(z)==4&&cod(z+1)==2)
freciencia alta de la tecla presionada cad(1,z)=char('H');
tecla=frec_baja+frec_alta; %se suman ambas end
frecuencias de la matriz para generar un if(cod(z)==4&&cod(z+1)==3)
c?digo para cada tecla. cad(1,z)=char('I');
if (tecla==1906) cod(1,n)= 1;end end
if (tecla==2033) cod(1,n)= 2;end if(cod(z)==5&&cod(z+1)==1)
if (tecla==2174) cod(1,n)= 3;end cad(1,z)=char('J');
if (tecla==1979) cod(1,n)= 4;end end
if (tecla==2106) cod(1,n)= 5;end
if (tecla==2247) cod(1,n)= 6;end end
if (tecla==2061) cod(1,n)= 7;end %Mensaje decodificado obtenido
if (tecla==2188) cod(1,n)= 8;end cad
if (tecla==2329) cod(1,n)= 9;end
if (tecla==2150) cod(1,n)= 10;end
if (tecla==2277) cod(1,n)= 0;end
if (tecla==2418) cod(1,n)= 11;end II. CONCLUSIONES
%la suma de la frecuencia alta y baja
La fase no toma gran importancia en nuestro sistemas electrónicos complejos como pueden ser los
aplicativo (En aplicaciones de audio, donde el oido filtros.
humano no es capaz de discernir pequeñas variaciones
de la fase) el empleo de filtros IIR, de menor coste, es
el apropiado III. REFERENCIAS
Se Comprobo la importancia de disponer de una
herramienta de cálculo potente para el diseño de Madisetti y Williams. Ed. CRC Press. (2014). Digital Signal
Processing Handbook Redalyc, 1-19. Obtenido de
http://www.redalyc.org/pdf/206/20633274004.pdf