Está en la página 1de 5

Instituto Tecnológico de Morelia

15 de diciembre de 2021.

Vladimir Lira Camarillo.


M10120122
Daniel Durán Durán
M16120295

REPORTE DE PRÁCTICA 5. Filtro IIR

Aplicación de filtro IIR con msp430g2553


1

Práctica 5. Procesamiento de señales.


Maestría en Ciencias de Instituto Tecnológico de Morelia.

respuesta de frecuencia especificada. Esta es una manera de


crear un filtro de paso de banda multibanda.
Filtro Digital IIR También puede utilizar las funciones de modelado paramétrico
Filtro digital IIR - Infinite Impulse Response (Respuesta al o de identificación del sistema para diseñar filtros IIR.
Impulso Infinita) Es un tipo de filtro digital que si su entrada es Comparación de tipos de filtros IIR clásicos
La caja de herramientas proporciona cinco tipos diferentes de
un impulso (una delta de Kronecker) la salida será un número
filtros IIR clásicos, cada uno óptimo de alguna manera. Esta
ilimitado de términos no nulos, es decir, que nunca volverá a un sección muestra la forma de prototipo analógica básica para cada
estado de reposo. Para obtener la salida se emplean valores de la uno y resume las características principales.
entrada actual y anteriores y, además, valores de salida Filtro Butterworth
anteriores que son almacenados en memoria y realimentados a El filtro Butterworth proporciona la mejor aproximación de la
la entrada. También se llaman filtros digitales recursivos. serie Taylor a la respuesta de filtro de paso bajo ideal a
frecuencias analógicas Ω = 0 Y Ω = ∞; para cualquier orden, la
respuesta cuadrada de magnitud haN 2N – 1 cero derivados en
Su expresión en el dominio discreto es: El orden del filtro está estas ubicaciones (en máximo plano Ω = 0 Y Ω = ∞). La
dado por el máximo entre P y Q. Una de las posibles estructuras respuesta es monotónica en general, disminuyendo Ω = 0 Para
para un filtro IIR es la siguiente: Se puede ver cómo la salida Ω = ∞. H(jΩ)=1/G2 En Ω = 1.
y(k) es introducida de nuevo en el sistema. La transformada Z
del mismo es: Vemos que ahora tenemos un denominador, es
decir, ceros además de polos, que son los causantes de las
posibles inestabilidades que pueden comprometer la estabilidad
y causalidad del sistema.

Las ventajas de los filtros IIR respecto a los FIR es que pueden
conseguir una misma respuesta empleando un número de
coeficientes en el filtro mucho menor, requiriendo un menor
tiempo de cálculo. El inconveniente es, además de la
inestabilidad ya comentada, la introducción de desfases en la
señal, que pueden ser compensados, pero a costa de añadir más
coeficientes al filtro. Figura 1. Filtro Butterworth
Filtro Chebyshev Tipo I
Filtros IIR clásicos El filtro Chebyshev Tipo I minimiza la diferencia absoluta entre
Los filtros IIR clásicos, Butterworth, Chebyshev Tipos I y II, la respuesta de frecuencia ideal y real en toda la banda de paso
elípticos y Bessel, se aproximan al filtro ideal de "pared de mediante la incorporación de una ondulación igual de dB en la
ladrillo" de diferentes maneras. banda de paso. La respuesta de la banda de parada es
Esta caja de herramientas proporciona funciones para crear máximamente plana. La transición de pasa banda a rechaza
todos estos tipos de filtros IIR clásicos en los dominios banda es más rápida que para el filtro Butterworth.
H(jΩ)=10−Rp/20 En Ω = 1.
analógicos y digitales (excepto Bessel, para el que solo se admite
la carcasa analógica), y en las configuraciones pasa bajas, pasa
altas, pasa banda y rechaza banda. Para la mayoría de los tipos
de filtro, también puede encontrar el orden de filtro más bajo que
se ajuste a una especificación de filtro determinada en términos
de atenuación de banda de paso y banda de parada, y ancho(s)
de transición.
Otros filtros IIR
La función de diseño de filtro directo encuentra un filtro con
respuesta de magnitud que se aproxima a una función de

Procesamiento de señales.
2

Figura 2. Filtro Chebyshev Tipo I Figura 4. Filtro elíptico


Filtro Chebyshev Tipo II Filtro Bessel
El filtro Chebyshev Tipo II minimiza la diferencia absoluta entre Los filtros de paso bajo analógicos de Bessel tienen un retardo
la respuesta de frecuencia ideal y real en toda la banda de parada de grupo plano máximo a una frecuencia cero y retienen el
mediante la incorporación de una ondulación igual de dB en la retardo de grupo casi constante en toda la banda de paso. Por lo
banda de parada. La respuesta de la banda de paso es tanto, las señales filtradas mantienen sus formas de onda en el
máximamente plana. rango de frecuencia de banda de paso. Cuando un filtro de paso
La banda de detención no se acerca a cero tan rápidamente como bajo Bessel analógico se convierte en uno digital a través de la
el tipo I filtrar (y no se acerca a cero en absoluto para el orden asignación de frecuencia, ya no tiene esta propiedad
de filtro de valor par).n La ausencia de ondulación en la banda máximamente plana.
de paso, sin embargo, es a menudo una ventaja importante. Los filtros Bessel generalmente requieren un orden de filtro más
H(jΩ)=10−Rs/20 En Ω = 1. alto que otros filtros para una atenuación satisfactoria de la
banda de detención. H(jΩ)<1/G2 En Ω = 1 y disminuye a
medida que aumenta el orden del filtro n.

Figura 3. Filtro Chebyshev Tipo II

Filtro elíptico
Figura 5. Filtro Bessel
Los filtros elípticos son equidistantes tanto en la banda de paso
como en la banda de parada. Por lo general, cumplen los
Desarrollo. Para la práctica se desarrolló un filtro IIR por medio
requisitos de filtro con el orden más bajo de cualquier tipo de
de las herramientas de Matlab, concretamente hablando de la
filtro admitido. Dada una orden de filtro, ondulación de banda
de paso en decibelios y ondulación de banda de parada en app Filter designer.
decibelios, los filtros elípticos minimizan el ancho de transición El código utilizado muy similar al código del filtro FIR, sin
embargo, se hicieron las modificaciones necesarias para los
H(Ω)=10−Rp/20 en Ω = 1. corrimientos que se utilizan en el filtro IIR, es decir la utilización
de la salida para el funcionamiento de un filtro IIR.
Cabe mencionar que se tenía un ligero offset a la salida en DC,
el cual elevaba la señal e incluso añadía un poco de amplitud a
la forma de onda, dicho offset pudo ser generado debido a los
corrimientos que se realizan para la función IIR
Se obtuvieron las siguientes imágenes para una frecuencia de
corte de 30Hz.
3

float Salidas[3]={0};
float Entradas[3]={0};

long SalidaActual;
int leer_adc(void);

void main(void)

{ WDTCTL = WDTPW | WDTHOLD; // stop watchdog


timer
//Configurar Salidas
P2DIR = 0xFF; // Port 2 all output
P2OUT = 0x00; // Port 2 all zero
P2SEL &= ~BIT6; // Clear P2.6 in P2SEL (by
default Xin)
Figura 6. Frecuencia a 10 Hz.
P2SEL2 &= ~BIT6; // Clear P2.6 in P2SEL2
P2SEL &= ~BIT7; // Clear P2.7 in P2SEL (by
default Xin)
P2SEL2 &= ~BIT7; // Clear P2.7 in P2SEL2
//Calibracion 16MHz
DCOCTL = CALDCO_16MHZ;
BCSCTL1 = CALBC1_16MHZ;
//Configuracion Timer
TA0CTL = TASSEL_2 |ID_3 | MC_1|TAIE;
//|SMCLK|divider: 3 - /8| mode control: 1 Up
to CCR0 |Habilita interrupciones
TACCR0 = 2000; //count to ccr0
TACCTL0 = 0; //0 for compare mode
//////////////////////////////////////////////
//////////////////////////////////////////////
//////////////////////////ADC/////////////////
//////////////////////////
ADC10CTL0 = ADC10SHT_1 | ADC10ON;//8 x
Figura 7. Frecuencia a 30 HZ (frecuencia de corte).
ADC10CLKs, ADC10 ON
ADC10CTL1 = INCH_0 | ADC10SSEL_3;//INPUT
CHANNEL A0 P1.0, SMCLK, REPEAT SINGLE CHANNEL
ADC10AE0 = BIT0;//INPUT P1.0
ADC10CTL0 |= ENC; //ENABLES CONVERTION
__enable_interrupt();

while(1){
Entradas[0]=Entradas[1];
Entradas[1]=Entradas[2];
Entradas[2]=valor_adc;

SalidaActual=((CoeficienteB[0]*Entradas[2]+Coe
ficienteB[1]*Entradas[1]+CoeficienteB[2]*Entra
das[0])-(CoeficienteA[1]*Salidas[2]+
Figura 8. Señal a 123 Hz.
CoeficienteA[2]*Salidas[1]));
Salidas[1]=Salidas[2];
Código. Salidas[2]=SalidaActual;
#include <msp430.h> P2OUT=SalidaActual*0.002;
}
int valor_adc=0;
}
float CoeficienteB[3]={1, 2, 1}; //ceros int leer_adc(void)
float CoeficienteA[3]={1, -1.8668, .8752}; {
4

ADC10CTL0 |= ENC + ADC10SC; // Start


Conversion
//config registro de encendido del
convertidor
while ((ADC10CTL0 & ADC10BUSY) == 0); Bibliografía.
ADC10CTL0 &= 0Xfffa; https://www.studio-22.com/blog/enciclopedia/filtro-digital-iir
return ADC10MEM>>2; https://la.mathworks.com/help/signal/ug/iir-filter-design.html
https://www.juansaudio.com/post/iir-vs-fir-entendiendo-
} realmente-sus-diferencias
http://www.ehu.eus/procesadoinsvirtual/T6_filtros iir y
#pragma vector = TIMER0_A1_VECTOR fir1.html
__interrupt void TIMER0_A1_ISR(void){
valor_adc = leer_adc();
TACTL &= ~TAIFG;
}

Conclusiones.

Vladimir Lira Camarillo.


En la práctica, se pudo comprobar el funcionamiento de un filtro
IIR con una entrada senoidal tal y como la práctica pasada en la
que se utilizó un filtro FIR, que a pesar de que tienen unas
respuestas muy similares respecto a lo observado prácticamente,
en las ecuaciones realizadas se nota la diferencia más grande
entre estos, es decir la dependencia del filtro IIR de un estado
pasado, lo que ayuda a que requiera una cantidad menor de
coeficientes para su cálculo, la diferencia más grande para la
cual la maestra nos explicó, fue el origen de un offset que puede
irse generando poco a poco en las ecuaciones del código que se
esté planteando, sin embargo este a pesar de afectar mucho para
fines prácticos, mantuvo la forma de onda que debe tener el
filtro. En esta práctica también se pudo apreciar lo revisado en
la práctica pasada respecto a el efecto aliasing así como la
respuesta en la frecuencia de corte a una señal triangular y
cuadrada, sin embargo ya que se documentó eso en el reporte del
filtro FIR, no fue necesario tomar captura del mismo.

Daniel Durán Durán.


A la conclusión que llegue con la elaboración. Fue que el filtro
irr se comporta de a muy similar al filtro fir, debido a que a muy
altas frecuencias se obtenía un efecto alias, a muy bajas
frecuencias la forma de onda de salida tendía a tener la misma
forma que la señal de entrada y a frecuencias muy cercanas a la
frecuencia de corte no importaba que señal de entrada fuera
(senoidal, cuadrada, triangular) la señal de salida siempre era
una onda senoidal, debido a la transformada de Fourier que
consiste en la reconstrucción de senos y cosenos de una señal.
Por esa razón se veía una salida senoidal cerca de la frecuencia
de corte.
Por otro lado una herramienta muy práctica y eficiente para
generar filtros fue la app de matlab. Esto ayuda a estar
manipulando una gran cantidad de datos para obtener el filtro
que se desee, sin necesidad de hacer los cálculos a mano, además
de brindar los coeficientes para el filtro también se puede ver si
respuesta de magnitud y fase polos y ceros entre muchas más.
Durante la práctica tuvimos offset a la salida de nuestro filtro,
esto se debió a un cable que tenía falso y posiblemente al
corrimiento que estábamos haciendo en el código de Code
Composer.

También podría gustarte