You are on page 1of 5

IMPLEMENTACION DE FILTRO FIR EN SISTEMAS

PROGRAMABLES STELLARIS LM4F120H5QR


Launchpad (Texas Instruments)
2014
Armando Jos Carrillo Hernndez
Jorge Andrs Morales Seplveda
Linda Morales
Yovanys Londoo
RESUMEN: Los filtros (analgicos y digitales) se usan para la separacin de seales combinadas y
la restauracin de seales que presentan alguna distorsin. Los filtros digitales alcanzan mejores
resultados, con precisin limitada por errores de redondeo en la aritmtica empleada. El diseo de
un filtro digital con respuesta finita al impulso (FIR) y la cuantizacin de sus coeficientes para
facilitar su implementacin en Stellaris Launchpad LM4F120H5QR es el tema de este trabajo.
Palabras claves: filtrado FIR, cuantizacin, Stellaris Launchpad LM4F120H5QR.

Overview: Filters (analog and digital) are used for the combined signals separation and restoration of signals
that have distortion. Digital filters to achieve best results, accuracy limited by rounding errors in arithmetic used.
The design of a digital filter with finite response to impulse (FIR) and the quantization of their coefficients to
facilitate its implementation in Stellaris Launchdpad LM4F120H5QR is the subject of this work. Key words:
filtered FIR, quantization, Stellaris Launchpad LM4F120H5QR.

INTRODUCCIN
Distintas formas de filtrado se han
implementado en la industria de los
Procesadores Digitales de Seales (DSP).
Sin embargo, varias aplicaciones no
requieren de tan altas tasas de muestreo y
costo computacional, parmetros que
generalmente estn asociados a los DSP.
Una alternativa para la implementacin es el
uso de microprocesadores o micro
controladores sencillos, como los sistemas
programables
(stellaris)
de
Texas
instruments, el cual presenta caractersticas
que vemos en la tabla 1.
Lamentablemente, las seales se presentan
contaminadas con ruidos y artefactos. Se
requiere el uso de filtros para mejorarlas,
dentro de los que se destacan los filtros
digitales de respuesta finita impulsiva (FIR),
que se pueden implementar en los sistemas
programables launchpad stellaris.
Un filtro FIR es no recursivo dado que
comprende una serie de elementos de

retardo conectados en serie, donde la salida


depende solo de la entrada presente y de las
pasadas.
Cada muestra de entrada (x) y sus retardos
respectivos se multiplican por los
coeficientes del filtro (b), necesitndose as
una multiplicacin para cada elemento de
retardo. Un bloque genrico de cmo se
presenta un filtro FIR se muestra en la Para
un sistema lineal invariante en el tiempo, la
respuesta finita al impulso (FIR) puede ser
descrita como se muestra en la ecuacin.
y[n] = b0x[n]+b1x[n-1]++bM-1x[n-N+1]
Donde:
x[n]: Seal de entrada
y[n]: Seal de salida
b[i]: Coeficientes del filtro
A diferencia de los filtros IIR, un filtro FIR
siempre produce una respuesta estable a la
salida. Adems, provee fase lineal, tanto
cuando el filtro es simtrico o no.

Una herramienta de diseo de filtros puede


ser generada con el cdigo de los sistemas
programables en un chip y los coeficientes
del filtro FIR, que han sido obtenidos para la
implementacin utilizando, por ejemplo,
MATLAB.

A/D, el valor se pone en este lugar y el


puntero pasa a la prxima direccin antes de
comenzar la convolucin.
El puntero se localiza nuevamente en la
posicin de la muestra ms antigua. La
convolucin comienza por la multiplicacin
de los retardos y los coeficientes del filtro,
uno por uno. Entonces los coeficientes del
filtro deben de ser organizados en orden
descendente: h[M-1],h[0].

La stellaris ofrece una amplia gama de


convertidores anlogo/digitales (A/D), de
los cuales seleccionar uno depende de los
requisitos de la aplicacin, teniendo en
cuenta: resolucin, porciento de uso de la
CPU, latencia, linealidad, ruido, consumo de
potencia y de otros recursos (bloques
analgicos y digitales, RAM, flash).

Si el puntero en el buffer circular alcanza el


fin de la memoria, este regresa a la posicin
de comienzo. Despus de la convolucin, el
puntero se mueve a la posicin ms antigua
de la memoria y espera la siguiente muestra.
Luego el proceso se repite desde el
principio. Las principales operaciones que se
realizan en la convolucin son la
multiplicacin y la adicin.

MATERIALES Y MTODOS
En la programacin de la stellaris son
utilizados dos bloques analgicos y uno
digital, para el A/D sigma-delta de 12 bits.
Cuando se selecciona el convertidor, se
conecta el Puerto PE2 como entrada.

DISEO DEL FILTRO FIR


El diseo del filtro se realiz por la
herramienta de Matlab FDATOOL, la cual
nos permite realizar diseo de filtro digitales
de cualquier especificacin tan solo con
ingresar los parmetros de diseo
(frecuencia de corte, frecuencia de muestreo,
ventana, etc.).

Los A/D presentan mayor inmunidad al


ruido, adems, las seales de entrada son
muestreadas a una tasa mucho mayor que la
de Nyquist, lo que permite prescindir del
amplificador de muestreo/retencin. Estn
compuestos por una moduladora sigmadelta, un filtro digital y un diezmador.

Para este caso se dise un filtro FIR Pasa


bajos de orden 6 por ventana rectangular,
con una frecuencia de corte de 1KHz y una
frecuencia de Muestreo de 5KHz.

FILTRO FIR EN STELLARIS


La mayora de los filtros FIR se
implementan usando convolucin circular.
Un filtro FIR puede ser visto como la
convolucin entre los coeficientes del filtro,
de longitud N, con la seal de entrada y sus
retardos (ecuacin 1).
Con el objetivo de ver la importancia del
buffering circular se computa la salida en un
tiempo n+1, para encontrar y[n+1].
El camino ms eficiente para manejar estas
muestras guardadas es a travs del buffering
circular. Primeramente, se asigna un puntero
a
las
localizaciones
de
memoria
consecutivas. En un tiempo t el puntero es
ubicado en una localizacin baja de
memoria, usualmente apuntando a la
muestra ms antigua, que ser analizada.
Cuando se obtiene la nueva muestra del
2

ALGORITMO DE CONVOLUCIN

Respuesta al impulso

Con el objetivo de cumplir la explicacin


antes expuesta, El proceso de filtrado
comienza con la inicializacin, donde se
define la fuente de la seal de entrada (SE),
que pueden ser los datos que han sido
previamente guardados en un espacio de la
Memoria Flash Serie del dispositivo
(Filtrado fuera de lnea), o las muestras que
se obtienen desde un conversor A/D (filtrado
en lnea). Es necesario definir tambin el
destino de la seal filtrada (SF).
En dependencia de la frecuencia de corte
escogida, se carga la tabla de coeficientes
(TC) que responde a los parmetros del
filtro previamente diseado. Se definen las
direcciones de los buffers de entrada (BE) y
de salida (BS). El buffer de entrada (BE) se
llena segn el nmero de coeficientes del
filtro, para as garantizar igual nmero de
retardos que de coeficientes.

Respuesta al paso

Luego se procede a realizar la convolucin


entre la tabla de coeficientes y las muestras
que se encuentran en el buffer de entrada.
Cada muestra multiplicada y sumada se
enva al buffer de salida (BS) y luego al
destino de la seal filtrada (SF).
const int BE = 7;
Const
real64_T
B[7]={-0.05840452870869,
0.08760679306304,0.2835015376427,
0.3745923960058,0.2835015376427,
0.08760679306304, -0.05840452870869};

Polos y ceros

Respuesta en magnitud esperada

CONCLUSIONES
En
este
trabajo,
presentamos
la
implementacin de un filtro FIR en
STELLARIS de TEXAS INSTRUMENTS.
Los coeficientes de los filtros que cumple
con las caractersticas de diseo deseadas se
obtienen con la ayuda del MATLAB. Los
coeficientes obtenidos y mostrados pueden
ser usados directamente en proyectos de
muchas aplicaciones.
La implementacin de filtros FIR en
STELLARIS de TEXAS INSTRUMENTS
puede encontrar distintas aplicaciones, como
la deteccin de frecuencias instantneas.
Adems, se pueden usar en el diseo de
equipos porttiles y de bajo costo, como los
equipos electrocardiogrficos de monitoreo
constante (Holter), aprovechando las
potencialidades de la gran gama de
Conversores A/D que posee este dispositivo.

REFERENCIAS
[1] A. Z. B. Varnagiryte, O. Olsen, P.
Koch, O. Wolf, E. Kazanavicius, "A
practical approach to DSP code
optimization
using
compiler/architecture," vol. 2, 2002.
[2] Z. Shen, "Improving FIR Filter
Coefficient Precision," IEEE Signal
Processing Megazine, vol. 27, p. 120,
2010.
[3] Pierson, M.M. and Pierson, B.L.
Beginnings and Endings: Keys to Better
Engineering Technical Writing. IEEE
Trans.
On
Professional
Communication. Vol 40, No. 4,
(December, 1997), pp. 299-304.
[4] Filter
digitals.
http://ocw.uv.es/ingenieria-yarquitectura/filtrosdigitales/tema_3._diseno_de_filtros_fir.
pdf
4

ANEXOS

TABLA 1

You might also like