280 likes | 408 Views
Instituto Politécnico Nacional Centro de Investigación en Computación Maestría en Ciencias de Ingeniería de Cómputo Procesamiento Digital de Señales. Implementación de cóclea humana en el dsk 6713 Profesor: Dr. José Luis Oropeza Rodríguez Diego Alberto Flores Carrillo 18 de diciembre 2012.
E N D
Instituto Politécnico Nacional • Centro de Investigación en Computación • Maestría en Ciencias de Ingeniería de Cómputo • Procesamiento Digital de Señales. • Implementación de cóclea humana en el dsk 6713 • Profesor: Dr. José Luis Oropeza Rodríguez • Diego Alberto Flores Carrillo • 18 de diciembre 2012
Contenido • Aspectos generales • Introducción • Planteamiento del problema • Objetivo General • Objetivos específicos • Diagrama de bloque • Implantes cocleares • Diseño del sistema • Diseño de los bancos de filtros • Implementación de los filtros en el dsk6713 • Pruebas y resultados • Conclusiones • Propuestas para trabajos futuros • Referencias • Apéndice
Planteamiento • Se pretende simular el diseño de un implante coclear tomando una señal de audio filtrándola y descomponiéndola en señales de audio acotadas por sus componentes de frecuencia, en diferentes bandas de paso.
Objetivo General y específicos • Diseñar e implementar bancos de filtros digitales con la finalidad de descomponer una señal de audio como lo hace un implante coclear. • Diseñar dos bancos de filtros, uno tipo FIR y otro tipo IIR, con las características que el procesamiento de la señal necesita. • Utilizar el dsk6713para realizar el procesamiento de la señal. • Leer una señal de audio en tiempo real, utilizando el dispositivo mencionado. • Implementar, en el dsk6713, los filtros diseñados para procesar la señal leída. • Escribir el valor obtenido del procesamiento de la señal en la salida del dsk6713.
Diseño del sistema (Filtros) • dspcochlear.mdl
Diseño del sistema (Filtros) • FDA Tool
Diseño del sistema (Filtros) • Banco IIR
Diseño del sistema (Filtros) • Banco FIR
Diseño del sistema (Implementación) • Inclusión de todas las librería y archivos necesarios • DSK6713_AIC23_CodecHandle hCodec; • // Inicializaciòn de la librerìa de soporte de la tarjeta, debe de • //llamarse primero a BSL • DSK6713_init(); • // Inicializar los mòdulos de DIP switch y del los LEDS • DSK6713_LED_init(); • DSK6713_DIP_init(); • //inicializar el Codec • hCodec = DSK6713_AIC23_openCodec (0,&config);
Diseño del sistema (Implementación) • Selección de canal • if(contador<200000) • {boton =0;} • elseif (contador>=200000 && contador <400000) • {boton=1;} • elseif(contador>=400000 && contador <600000) • {boton=2;} • elseif(contador>=600000 && contador <800000) • {boton=3;} • elseif(contador>=800000 && contador <1000000) • {boton=4;} • elseif(contador>=1000000 && contador <1200000) • {boton=5;} • elseif(contador>=1200000 && contador <1400000) • {boton=6;} • elseif(contador>=1400000 && contador <1600000) • {boton=7;} • else • { • boton=0; • contador=0; • }
Diseño del sistema (Implementación) float DPA[33] = { 0.002168195089,-0.002915485064,-0.005587780848, 0.004214930814, 0.000872704084,
Diseño del sistema (Implementación) floatFIRn(floatcoef[33], float Dato, short etapa) { short k; floatvactual=0,vsal=0; vactual=Dato; yn[etapa][0]=vactual; for(k=0;k<33;k++)//numcoef { vsal+= (coef[k]*yn[etapa][k]); } for(k=32; k>0;k--) {yn[etapa][k]=yn[etapa][k-1];} returnvsal; }
Diseño del sistema (Implementación) • float IIR (float N[7][3], float D[7][3], float Dato) • { • short k; • floatvactual=0, vsal=0; • float u=0; • vactual= Dato; //input to 1st stage • for (k = 0; k < 7; k++) //repeatforeachstage • { u=vactual-(D[k][1]*un[k][0])-(D[k][2]*un[k][1]); • vsal=(N[k][0]*u)+(N[k][1]*un[k][0])+(N[k][2]*un[k][1]); • un[k][1] = un[k][0]; //updatedelays • un[k][0] = u; //updatedelays • vactual = vsal; //intermedout->in tonextstage • } • returnvsal; • }
Diseño del sistema (Implementación) • float Canal(Uint32 Muestra, short can) • { float s=0,Dato=0; • Dato=(float)Muestra; • if(cant==can) • {Inicializa();} • switch(can) • { • case 7: • s=FIRn(DPA,Dato,0); • s=IIR(NIPA,DIPA,s); • break;
Pruebas y resultados Filtros FIR
Pruebas y resultados Filtros IIR
Pruebas y resultados • Simulación del implante coclear
Pruebas y resultados Descomposición de la señal utilizando los filtros diseñados
Pruebas y resultados • Resultados de la prueba en tiempo real canal • Canal 0, Canal 7
Pruebas y resultados Resultados de la prueba (256 muestras) Canal 7, Canal 4, Canal 0
Pruebas y resultados • Resultados de la prueba (512 muestras) Canal 7 Canal 4 Canal 0
Conclusiones • El diseño de los filtros es vital para poder descomponer correctamente la señal. • Basta con saber implementar un filtro para poder implementar un banco de filtros. • La diferencia entre los filtros FIR e IIR radica en la complejidad de la implementación. • Una señal de audio en tiempo real contiene gran cantidad de ruido, por lo cual es necesaria una etapa de filtrado para erradicarlo. • Entre mayor sea el número de muestras leídas de un archivo de audio, las modificaciones realizadas a dicha señal por la etapa de filtrado son más fácilmente apreciadas.
Propuestas para trabajas futuros • Inclusión de una etapa para eliminar el ruido. • Adición de los electrodos a la salida del dsk. • Diseño de una interfaz gráfica que permita visualizar eficazmente los efectos del filtrado sobre la señal de audio