PDF de programación - Implementación de un Algoritmo de Filtrado en Microcontroladores dsPICy PIC32

Imágen de pdf Implementación de un Algoritmo de Filtrado en Microcontroladores dsPICy PIC32

Implementación de un Algoritmo de Filtrado en Microcontroladores dsPICy PIC32gráfica de visualizaciones

Publicado el 14 de Enero del 2017
1.252 visualizaciones desde el 14 de Enero del 2017
801,5 KB
13 paginas
Creado hace 8a (14/09/2015)
Implementación de un Algoritmo de Filtrado

en Microcontroladores dsPICy PIC32

Vazquez Raimundo1, Mariguetti Jorgea, Burgos Alejandroa, Canali Luisb.



a GUDA-Grupo Universitario de Automatización

Universidad Tecnológica Nacional - Facultad Regional Resistencia

French 414. 3500 Resistencia-Chaco. República Argentina

Tel: +54 362 4432928. / Fax: +54 362 4432683/

e-mail: [email protected]/[email protected]



b UTN Facultad Regional Córdoba

Maestro M. Lopez esq, Cruz Roja Argentina, Ciudad Universitaria, 5016

Córdoba, Argentina.

e-mail: [email protected]

Resumen: Se implementa un algoritmo para la Trasformada Rápida de Fourier (FFT) en
microcontroladores dsPIC y PIC32 mediante la reutilización software, lo cual permite
disminuir el esfuerzo y el tiempo en programación. Los conocimientos necesarios para su
implementación son mínimos por parte del programador, utilizándose librerías de funciones
matemáticas y números complejos. Se busca generalizar el uso de los algoritmos de filtrado con
los dispositivos genéricos utilizados. Se observa que la implementación de Filtros Lineales de
Respuesta Finita (FIR) requiere menos cálculo computacional que la FFT. También se observa
que existe una limitación en la longitud del vector donde se alojan los valores digitales
provenientes de la operación de conversión analógica a digital. Para el caso de los PIC 32 esta
longitud es de 512 y para los dsPIC es de 128. Es posible aumentar este número cambiando las
condiciones de compilación y linkeo del simulador MPLAB. Los resultados obtenidos del
hardware se pueden extender a otros desarrollos genéricos que utilicen dsPIC y PIC32.

Palabra clave: Transformada Rápida de Fourier, Filtros Lineales, PIC32 y dsPIC

1. Introducción

La teoría del control automático y la tecnología de los robots, posibilita combinar
diversas disciplinas como por ejemplo mecánica, informática y electrónica con la
finalidad de diseñar y construir aplicaciones que facilitan la experimentación. La
integración de la arquitectura de control con las funciones de un sistema de medida
permite evaluar tareas de fusión sensorial [1]. En el siguiente trabajo se implementan
procedimientos que permiten mejorar la toma de datos analógicos mediante la
implementación de Transformada Rápida de Fourier [2] y filtros respuesta finita [3].
Los mismos se esquematizan en un algoritmo genérico fácilmente codificable en un
lenguaje de programación de alto nivel para implementarlos en dispositivos genéricos

SII 2015, 4º Simposio Argentino de Informática Industrial.44 JAIIO - SII 2015 - ISSN: 2451-7542181 denominados microcontroladores [4] del tipo dsPIC y PIC32. Se parte de la premisa
que afirma que es posible implementar en forma sencilla un algoritmo de filtrado FFT
y FIR utilizando un lenguaje de alto nivel como por ejemplo el C. La mayoría del
hardware implementa el cálculo de FFT en un lenguaje de bajo nivel, requiriendo
elevados conocimientos de
teoría de números complejos y dominio de la
programación [5][6][7].

2. Algoritmos utilizados

2.1. Transformada Rápida de Fourier

La transformada rápida de Fourier (FFT) es un algoritmo eficiente que permite
calcular la Transformada de Fourier Discreta (DFT) y su Transformada Inversa. La
FFT es de gran importancia para una amplia variedad de aplicaciones, especialmente
para el procesamiento digital de señales y el filtrado digital como lo desarrolla Di
Jasio [8][9]. El algoritmo impone algunas limitaciones en la señal y en el espectro
resultante, como por ejemplo las muestras que se transforman deben consistir en un
número igual a una potencia de dos. Hay que tener en cuenta que el rango de
frecuencias cubierto por el análisis de la señal depende de la cantidad de muestras
recogidas.

2.2. Filtros lineales de Respuesta Finita (FIR)

Un filtro lineal es aquel filtro electrónico que aplica un operador lineal a una señal
variable en el tiempo. Una de sus aplicaciones más frecuentes es la eliminación de
frecuencias no deseadas de una determinada señal de entrada o, al contrario,
discriminar una determinada frecuencia de las demás.
Los filtros lineales pueden dividirse en dos clases: filtros de respuesta infinita (IIR,
infinite impulse response) y filtros de respuesta finita (FIR, finite impulse response):

 Los filtros FIR (que sólo puede ser implementados en tiempo discreto)
pueden ser descritos como una suma ponderada de entradas con un
determinado retardo. Para estos filtros, si la entrada en un determinado
instante es cero, la salida será cero a partir de un instante posterior a los
retardos inducidos por el filtro. De este modo, solo existirá respuesta por un
tiempo finito.

 Los filtros IIR, por el contrario, pueden presentar salida aún cuando la
entrada sea cero, si las condiciones iniciales son distintas de cero. La energía
del filtro decaerá con el tiempo, pero no llegará a ser nula. Por tanto, la
respuesta al impulso se extiende infinitamente.

Hay una clase muy importante de filtros FIR que son los que poseen fase lineal, esto
es, la respuesta en fase del sistema es una recta en la banda pasante. Este caso de

SII 2015, 4º Simposio Argentino de Informática Industrial.44 JAIIO - SII 2015 - ISSN: 2451-7542182 filtros FIR se da cuando los coeficientes son simétricos o antisimétricos, a su vez, el
orden del filtro puede ser par o impar. De esta manera los filtros FIR se pueden
clasificar en cuatro tipos según Naguil [10], simétricos par, simétricos impar,
antisimétricos par y antisimétricos impar.


3. Algoritmo FFT

El algoritmo FFT desarrollado en esta sección está basado en el método conocido
como doblado sucesivo descripto por Gonzales [11]. Se parte de la ecuación (1) de la
forma:



Donde W(u,x) es



(1)

(2)

El resultado de la transformada se representa en un vector denominado F de subíndice
u. El valor N es la cantidad de elemento de la muestra, M es la mitad de N. Los
valores de la muestra se cargan en el vector denominado ax y x representa el
subíndice. La fórmula (3) y (4) se obtiene a partir de (1).



(3)

(4)



Todos los subíndices pares de x perteneciente ax se agrupan en el vector Fpar y los
impares en el vector Fimpar.



Donde W1(u,x) es:

(5)

SII 2015, 4º Simposio Argentino de Informática Industrial.Wux()ej2ux2MFu12M0N1xaxWux()W1ux()ej2uxN2Fparu1M0M1xa2xW1ux()Fimparu1M0M1xa2x1W1ux()44 JAIIO - SII 2015 - ISSN: 2451-7542183 Para implementar el FFT en el microcontrolador es necesario disponer de dos
vectores denominados p1 y p2. El algoritmo de la figura 1 separa los subíndices pares
e impares de ax en dos columnas de la matriz p. La primera columna tiene posiciones
pares que se agrupan en la primera mitad de p1 y los impares en la segunda mitad. Se
repite la misma operación para la segunda columna en p2.



Fig. 1. Algoritmo para ordenar los elementos del vector a.

Luego de obtener los vectores p1 y p2 se aplican las ecuaciones (6) y (7).



(6)

(7)

Los vectores denominado Fpu(par) y Fiu(impar) contienen los valores de la
transformada Rápida de Fourier. Su longitud es la cuarta parte del vector ax, de esta
manera se disminuye tiempo de procesamiento, ya que se recorre la cuarta parte del
vector. Las funciones denominadas W1(u,x) y W2(u) quedan expresadas como:



(8)

SII 2015, 4º Simposio Argentino de Informática Industrial.Fpu0N41xp1xW1ux()p1xN4W1ux()W2u()Fiu0N41xp2xW1ux()p2xN4W1ux()W2u()W1ux()ej2uxN4W2u()ej2uN244 JAIIO - SII 2015 - ISSN: 2451-7542184 El procedimiento desarrollado por González finaliza aplicando las ecuaciones (9) y
(10).

(9)



Donde W3(u) es

(10)

(11)

El vector S contiene los elementos de la transformada de Fourier utilizando la FFT.
Su cálculo requiere variar el subíndice u de cero al valor N/2. La segunda mitad se
obtiene aplicando la ecuación (10), donde Fp y Fi fueron previamente calculados en
(9). De esta manera en una sola corrida se obtienen todos los valores de FFT. La
figura 2 muestra una señal digital tipo TTL y su representación espectral.



Fig. 2. Representación espectral y en tiempo de una señal digital tipo TTL.

El algoritmo FFT permite obtener los elementos del vector S. Luego se calcula el
módulo de sus componentes complejos en otro vector denominado SP.

SII 2015, 4º Simposio Argentino de Informática Industrial.Su1NFpuFiuW3u()SN2u1NFpuFiuW3u()W3u()ej2uN44 JAIIO - SII 2015 - ISSN: 2451-7542185 4. Filtro digital aplicando algoritmo FFT

En la figura 3 se muestra una señal digital tipo escalón TTL afectada por un ruido de
alta frecuencia.



Fig. 3. Representación de la señal digital ruidosa (a) y la filtrada (b).



Al resultado de la señal filtrada se le debe aplicar la transformada rápida inversa de
Fourier, que solo consiste en aplicar las ecuaciones (9) y (10) cambiando el signo de
las exponentes de las ecuaciones (8) y (11). El algoritmo se muestra en la figura 4.



SII 201
  • Links de descarga
http://lwp-l.com/pdf1668

Comentarios de: Implementación de un Algoritmo de Filtrado en Microcontroladores dsPICy PIC32 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad