Académique Documents
Professionnel Documents
Culture Documents
Integrantes:
Implementar un filtro FIR Rechaza Banda con ventana triangular (o Bartlett) mediante
la utilización de la tarjeta programable Arduino DUE. Se buscará generar la función del
filtro con la tarjeta mediante la programación de la misma en la interfaz Arduino IDE, y
visualizar en un osciloscopio el efecto que tiene el filtro sobre una señal de entrada
aplicada, la cual es proporcionada por el generador, para su comparación con los
resultados obtenidos en el diseño teórico creado y simulado en el paquete
computacional MATLAB.
ANTECEDENTES:
Para motivos del presente trabajo se utilizó un filtro FIR rechazabanda con el método de
ventana triangular para poder observar el efecto que tiene sobre una señal senoidal, su
atenuación en el rango de frecuencias establecido, las diversas respuestas, la
observación de dichos efectos en la teoría contrastada con la práctica.
PROCEDIMIENTO (DESARROLLO Y RESULTADOS EXPERIMENTALES
OBTENIDOS):
1.- Diseño: el primer paso fue el diseño del filtro con las especificaciones dadas las
cuáles fueron: un Filtro FIR ventana triangular rechaza banda con frecuencia de corte
baja (fcl) = 500 hz y frecuencia de corte alta (fcH) = 1khz , frecuencia de muestreo (fs)
= 4khz y 10 tabs (originalmente 9, cambiado a 10 por razones prácticas). Para ello se
utilizó la herramienta “filter designer ” del programa MATLAB a la cual se accede al
escribir “filterDesigner” en la ventana de comandos:
Le agregamos los parámetros como frecuencias, tipo de filtro y orden en las pestañas
correspondientes (nótese como la imagen de pre-visualización cambia):
% MATLAB Code
% Generated by MATLAB(R) 8.5 and the Signal Processing Toolbox 7.0.
% Generated on: 25-May-2019 00:10:16
N = 10; % Order
Fc1 = 500; % First Cutoff Frequency
Fc2 = 1000; % Second Cutoff Frequency
flag = 'scale'; % Sampling Flag
% [EOF]
Fig. 9: Coeficientes obtenidos
Una vez preparado, pulsamos el botón “realice model” para obtener la representación
del filtro FIR en la aplicación SIMULINK:
Fig. 11: Interfaz de SIMULINK
Interactuando con el bloque “scope” obtenemos la señal que ha pasado por el filtro y la
misma señal original a manera de comparación, sin que se aprecien diferencias
significativas:
Fig. 13: Comparación visual de señal de entrada vs salida
Se ejecuta el programa Arduino IDE en la pc, y nos arroja la ventana donde se escribe el
código:
Fig. 15: Interfaz Arduino IDE
void loop() {
//Leer el valor de entrada
x[0] = analogRead(intpin)/4;
y = 0;
//Manipulación de la señal
for(i = 0; i<orden; i++){
y <= coef[i]*X[i];
}
//retardos
for (i = orden; I> 0; i--){
X[i] = X[i-1];
}
//Mostrar salida
PORTD = y;
}
Y compilamos.
Una vez realizado lo anterior se procede a realizar las mediciones correspondientes a los
parámetros de interés, los cuales son la señal de entrada del generador y la señal
modificada por el efecto del filtro en la salida de la tarjeta.
En un primer momento tenemos que a una frecuencia de 80Hz, tanto la señal de entrada
como la de salida deberían ser prácticamente iguales, pero difieren en amplitud, por el
efecto de arduino due ya tiene por default, baja la amplitud de 2V a 1.29V, siendo este
último el valor que tomaremos como el 100%, es decir nuestro voltaje de referencia.
Herramientas utilizadas:
Equipo:
Software:
BIBLIOGRAFÍA:
A. E. Cetin, O.N. Gerek, Y. Yardimci, "Equiripple FIR filter design by the FFT
algorithm," IEEE Signal Processing Magazine, pp. 60-64, March 1997.
https://www.arduino.cc/en/main/software