TODOPIC

Microcontroladores PIC => dsPIC => Mensaje iniciado por: cucanet en 08 de Febrero de 2006, 19:21:00

Título: Problema con Fixed-Point en Filtro IIR
Publicado por: cucanet en 08 de Febrero de 2006, 19:21:00
Aca va una duda para los bochos del foro:

Esto implementando un filtro pasabajo IIR para resamplear una señal de 400Hz a 4000Hz sin que se vean escalones. El filtro corta a 100 Hz y lo calcule con la fdatool del Matlab.

El matlab me genero un IIR Direct Form II (Canonico) de dos etapas. Para implementarlo use la funcion IIRCanonic de la libreria del dsPic que me toma la tabla de coeficientes en tipo fraccional.

El problema es que los coeficientes que me da el Matlab estan comprendidos entre 2 y -2, no entre 1 y -1 como estipula el tipo de dato fraccional. Ardiendo

Alguno de ustedes tuvo un problema similar y lo logró solucionar? Yo intente de mil maneras, pero del los seis coeficientes de cada filtro, el A0 esta fijado en 1 y el resto esta calculado en funcion de este, asi que no puedo dividir todo por 2.

Rompanse el bocho ustedes tambien!!!!!  Salu2. Adrian
Título: RE: Problema con Fixed-Point en Filtro IIR
Publicado por: SnackySmores en 12 de Febrero de 2006, 23:01:00
hola
no estoy seguro de como funciona esto de los filtros (todavia espero aprender mas cosas), pero encontre esto por alli
http://www.dsprelated.com/groups/matlab/show/2405.php

da una rutina de matlab que convierte de decimal a fraccional, y te puede servir.
desde -1.99 hasta 2 da resultados con solo 4 "digitos " hexadecimales.

saludos Giño
Título: Re: Problema con Fixed-Point en Filtro IIR
Publicado por: blackcat en 19 de Mayo de 2007, 20:25:33
Hola ... yo todavia no he usado las librerias para DSP he visto que los datos son en formato fraccional pero ya hace varios dias he implementado filtros sin utilizar la libreria .. obviamente el muestreo debe ser mas lento  :? porque no estan optimizados pero un filtro IIR de orden 10 me tardo 200us a 30MIPS  :lol: calculando una muestra; el formato de los numeros son doubles :); si queres te puedo pasar el proyecto de ejemplo que todavia no esta terminado y es para aplicaciones de control automatico donde el tiempo de muestra es de 1ms .. Pero de algo te puede servir ..  :mrgreen: