Prctica #2. Filtro FIR
Nmero de prctica: 2
Ttulo de la Prctica: Filtro FIR en la tarjeta de desarrollo DSK6713 Presentan:Betanzos Salvador Carlos Alfredo
Figueroa Chvez Vctor HugoJurez Reyes GerardoMndez Beristan Jorge
Objetivos:
Objetivo general.
El alumno implementar y comprobar experimentalmente la funcin de transferencia de un filtro FIR en la tarjeta de desarrollo C6713 DSK.
Objetivos particulares.
Disear filtros de respuesta finita al impulso (FIR) en Matlab.
Implementar filtros digitales FIR en el DSK de TI TMS320C6713.
Caracterizar con un generador de funciones y un osciloscopio la respuesta en frecuencia del filtro diseado.
Realizar el filtrado digital de una seal de sonido.
Planteamiento del problema
Se desea disear e implementar cuatro filtros digitales del tipo FIR en un solo programa que cumpla con los requisitos de frecuencia especificados a continuacin:
El diseo de los filtros debe realizarse utilizando cualquier funcin de diseo de filtros FIR de Matlab.
La frecuencia de muestreo para todos los casos ser de 44.1KHz.
El filtro debe funcionar para ambos canales.
Los interruptores dip0 y dip1 seleccionarn cada uno de los siguientes filtros:
1) Filtro pasa-bajas: dip1=0,dip0=0
a. Fpass= 3.2 kHz
b. Fstop= 4.8 kHz
c. Rizo en la banda de paso menor o igual a 1dB.
d. Atenuacin mnima en la banda de rechazo de 60dB.
2) Filtro pasa-altas: dip1=0,dip0=1
a. Fstop1= 4.8 kHz
b. Fpass1= 6.4 kHz
c. Rizo en la banda de paso menor o igual a 3dB.
d. Atenuacin mnima en la banda de rechazo de 60dB.
3) Filtro pasa-banda: dip1=1,dip0=0
a. Fstop1= 1.6 kHz
b. Fpass1= 3.2 kHz
c. Fpass2= 6.4 kHz
d. Fstop2= 8 kHz
e. Rizo en la banda de paso menor o igual a 1dB.
f. Atenuacin mnima en las bandas de rechazo de 60dB.
4) Filtro pasa-banda: dip1=1,dip0=1
a. Fpass1= 1.6 kHz
b. Fstop1= 3.2 kHz
c. Fstop2= 6.4 kHz
d. Fpass2= 8 kHz
e. Rizo en las bandas de paso menor o igual a 3dB.
f. Atenuacin mnima en la banda de rechazo de 60dB.
Marco Terico.
FILTROS:
Son circuitos caracterizados por una entrada y una salida de forma que en la salida solo aparecen parte de las componentes de frecuencia de la seal de entrada. Son por tanto son circuitos que se pueden caracterizar por su funcin de transferencia H(),cumplindose que:
La funcin de transferencia tomar el valor 1 para una frecuencia i si se desea que la seal pase a esa frecuencia, mientras que tomar el valor 0 si no debe pasar, dicindose que se rechaza la seal.
Los filtros se pueden poner en cascada hasta obtener la funcin que se necesite.
TIPOS DE FILTROS:
Filtros pasa-bajas
La funcin bsica de un filtro pasa-bajas (LP) es pasar las frecuencias bajas con muy pocas prdidas y atenuar las altas frecuencias. La Fig. 1 muestra un esquema tpico de especificaciones de un filtro pasa-bajas. El filtro LP debe pasar las seales entre DC y la frecuencia de corte, con una atenuacin mxima de Ap dB. La banda de frecuencias entre DC y Wp se conoce como banda de paso. Las frecuencias por encima de Ws deben tener al menos As dB de atenuacin. La banda de frecuencias entre Ws y se denomina banda de rechazo y se denomina frecuencia lmite de la banda de rechazo. La banda de frecuencias entre Ws y Wp se denomina banda de transicin. Los parmetros Ws, Wp, Ap y As describen completamente las especificaciones del filtro LP.
Fig. 1) Especificaciones del filtro pasa-bajas
Una funcin de transferencia de segundo orden que implementa una caracterstica paso de baja es:
Filtros pasa-altas
Un filtro pasa-altas (HP) pasa las frecuencias por encima de una frecuencia dada denominada frecuencia de corte. Tal como se muestra en la Fig. 2 la banda de paso se extiende desde Wp a y la banda de rechazo desde 0 hasta Ws. Los parmetros Ws, Wp, Ap y As caracterizan completamente las especificaciones del filtro HP.
Fig. 2) Especificaciones del filtro pasa-altas
Una funcin de transferencia de segundo orden con caracterstica paso de alta es
Filtros pasa-banda
Un filtro pasa-banda (BP) pasa las seales en una banda de frecuencias con atenuacin muy baja mientras que rechaza las frecuencias a ambos lados de esta banda, como se muestra en la Fig. 3. La banda de paso de Wp1 a Wp2 tiene una atenuacin mxima de Ap dB y las bandas de rechazo, de DC a y de a Ws1 y de Ws2 a tienen una atenuacin mnima de As dB.
Fig. 3) Especificaciones del filtro pasa-banda
Una funcin de transferencia de segundo orden con caracterstica pasa-banda es
Filtros rechaza-banda
Los filtros rechaza-banda (BR) se usan para rechazar una banda de frecuencias de una seal, como se muestra en la Fig. 4. La banda de frecuencias a rechazar es la banda de rechazo entre Ws1 y Ws2. La banda de paso se extiende por debajo de Wp1 y por encima de Wp2.
Fig. 4) Especificaciones del filtro rechaza-banda
Una funcin de segundo orden con caracterstica rechaza-banda es
Estructuras de unin en C.
Las estructuras nos permiten agrupar varios datos, que mantengan algn tipo de relacin, aunque sean distinto tipo, permitiendo manipularlos todos juntos, usando un mismo identificador, o cada uno por separado.
struc
;
;
...
}
Ejemplo:
struct Persona
{ char Nombre[65];
char Direccin[65];
int Ao_de_Nacimiento; } Juanito;
///// Para acceder a un objeto de la estructura se usa: Juanito.Nombre
Las uniones son un tipo especial de estructuras que permiten almacenar elementos de diferentes tipos en las mismas posiciones de memoria, aunque evidentemente no simultneamente.
union []
{ ;
;
},
Ejemplo:
union un Ejemplo { int A; char B; double C; }
Union Ejemplo;,;
Supongamos que en nuestra computadora, int ocupa cuatro bytes, char un byte y double ocho bytes. La forma en que se almacena la informacin en la unin del ejemplo sera la siguiente:
Desarrollo de la prctica
Disear los filtros con las especificaciones sealadas utilizando la herramienta fdatool (o con las funciones fir1, fir2, firls, etc.) de Matlab.
Crear los archivos cabecera de los coeficientes de los filtros.
Crear el programa en CCS.
Compile, depure, cargue el programa a la tarjeta y ejectelo.
Introducir la pista de audio (correspondiente a cada uno de los filtros) proporcionada y compruebe el funcionamiento. Las pistas de audio que se proporcionan contienen tonos (a manera de ruido) fuera de la banda de paso.
Graficar la respuesta en frecuencia (magnitud) utilizando un osciloscopio y un generador de funciones.
Anlisis de resultados
Caracterizacin de los filtros
Vpp= 2vVrms= 652mV
Pasa-bajas
f(Hz)
Vrmsin (mV)
Vrmsout (mV)
500
696
693
1000
691
739
1500
672
682
2000
699
665
2500
693
710
3000
668
687
3500
695
514
4000
684
191
4500
682
59
5000
680
58
5500
680
18.6
6000
673
18.2
Pasa-altas
f(Hz)
Vrmsin (mV)
Vrmsout (mV)
500
686
32
1000
687
34.4
1500
687
37.6
2000
686
38.2
2500
685
39
3000
683
44.2
3500
682
48.1
4000
682
47
4500
678
50.2
5000
679
58
5500
685
143
6000
675
417
6500
683
674
7000
691
708
7500
671
654
8000
701
711
8500
677
680
9000
669
670
9500
702
705
Pasa-banda
Vrmsin (mV)
Vrmsout (mV)
500
688
26.9
1000
684
36.6
1500
687
40.8
2000
683
64
2500
693
229
3000
678
499
3500
674
728
4000
703
730
4500
683
733
5000
665
735
5500
694
735
6000
686
739
6500
672
537
7000
688
309
7500
687
88.4
8000
688
56.2
8500
685
52.5
9000
685
50.3
9500
685
69.5
10000
683
58.7
Rechaza-banda
Vrmsin (mV)
Vrmsout (mV)
500
691
689
1000
703
785
1500
677
647
2000
682
354
2500
690
127
3000
686
44.5
3500
685
43.5
4000
684
45
4500
683
40.3
5000
680
40.7
5500
680
39.6
6000
678
39.1
6500
646
38.2
7000
661
73.6
7500
686
342
8000
723
730
8500
667
733
9000
678
653
9500
707
665
Conclusiones
La implementacin de los filtros en la tarjeta DSK se probaron con distintas seales de audio que tenan ruido, comprobando as que cumplan su funcin del filtrado obteniendo el audio sin la seal que lo contaminaba(ruido), puesta para probar los mismo, sin embargo tambin se observ que en los filtros pasa-altas atenu ms la voz que el sonido de la guitarra, y de igual forma, en el filtro pasa-banda se atenu ms el ruido y el sonido de la guitarra que la voz, cumpliendo con esto el objetivo general de la implementacin de los filtros y su correspondientes pruebas.
Referencias
[1] Rulph Chassaing, Digital Signal Processing and Applications with the C6713 and C6417 DSK, Ed. John Wiley & Sons.
[2] Vinay K. Ingle, John G. Proakis, Digital Signal Processing Using MATLAB, Ed. Bookware Companion Series.
[3] Ricardo A. Losada, Digital Filters with MATLAB, The MAthWork Inc.
[4] John G. Proakis, Dimitris G. Manolakis, Tratamiento Digital de Seales, Principios y Algoritmos, Ed. Prentice Hall, 3 Edicin.
[5] http://es.scribd.com/doc/82462033/34/Codec-AIC23.
[6] Steven A. Tretter, Communication System Design Using DSP Algorithms: with laboratory experiments for the TMS320C6713 DSK.
Apndice
Programa entregado al profesor.
#include // Soporte del chip
#include // Soporte de los DIPs
#include "DSK6713_AIC23.h" // Archivo de soporte del codec-DSK
Uint32 fs=DSK6713_AIC23_FREQ_44KHZ; // Frecuencia de muestreo
#include "pasabajas1PDS2.h" // Libreras Generadas con Matlab
#include "pasaaltas2PDS2.h" // segn las especificaciones de los
#include "pasabandas2PDS2.h" // filtros
#include "rechazabanda4PDS2.h"
#define M 61 // Numero de coeficientes que nos
#define M1 61 // entrega Matlab
#define M2 55
#define M3 51
short D2,D3; // Definimos D2, D3 para los switch
union {short canal[2]; Uint32 estereo;} entrada, salida; // Juntamos los 2 canales
short x_I[M]={0}, x_D[M]={0}; // Asignamos un registro a los valores de entrada
short n=0; // Apuntador para inicializar
float y_I, y_D; // Registros de ayuda para las salidas
interrupt void c_int11() // Rutina de servicio de interrupcin
{
register short m,k; // Registro de memoria
entrada.estereo=input_sample(); // Por ambos canales recibimos informacin
x_I[n]=entrada.canal[0]; // Asignamos X_D a el canal 0
x_D[n]=entrada.canal[1]; // Asignamos X_I a el canal 1
y_I=0; m=n; y_D=0; // Inicializamos todo
D2=DSK6713_DIP_get(2); // Definimos D2, D3 porque es ms fcil
D3=DSK6713_DIP_get(3); // revisar la memoria que el perifrico
if(D2==1 && D3==1) // Filtro rechaza-banda D2=1 ^ D3=1
{
for (k=0; k