SlideShare una empresa de Scribd logo
5. FILTROS DIGITALES
Los filtros digitales son sistemas son usados para modificar el espectro de una señal,
mediante el uso de hardware digital como bloque funcional básico (un DSP o un FPGA ,
por ejemplo). Sus características los hacen apropiados un amplio campo de aplicaciones,
entre las que se encuentra compresión de datos, procesamiento de señales biomédicas,
procesamiento digital de audio, procesamiento de voz o procesamiento de imágenes. Se
utilizan, al igual que los filtros análogos, para acondicionar señales según características
específicas, extraer información de ellas o separar dos o más señales previamente
combinadas. Consisten fundamentalmente en un algoritmo mediante el cual una señal
digital o secuencia numérica denominada “entrada” se transforma en una segunda
secuencia de números denominada señal digital de salida.
Los filtros digitales se caracterizan, en términos generales, por ser sistemas predecibles ,
flexibles, simulables, consistentes y precisos. Por una parte, es posible cambiar sus
especificaciones mediante la reprogramación, sin la adición de componentes discretos
como capacitores, resistores o bobinas (normalmente con un tamaño considerable y con
variaciones en el funcionamiento dependientes de la temperatura o la humedad). De otro
lado, su carácter digital permite calcular y simular su repuesta usando procesadores de
uso general, y también implementar topologías no realizables mediante el uso de
componentes físicos convencionales. En síntesis, estos sistemas incorporan las ventajas
propias de los procesadores digitales, al filtraje se señales, si se quiere en tiempo real.
A pesar de sus indiscutibles ventajas, los filtros digitales tienen una limitación inherente,
que consiste en la imposibilidad de cumplir con los requerimientos del criterio de Nyquist
de un ancho de banda estrictamente limitado previo al procesamiento digital de datos
muestreados (ya sea un conversor A/D o un filtro basado en DSP). Se hace entonces
necesario preceder el bloque de procesamiento digital de un filtro pasabanda análogo,
como una parte obligatoria del sistema para prevenir el aliasing, que aparece cuando el
ancho de banda de la señal de entrada es mayor que la mitad de la frecuencia de muestreo.
Esto se puede visualizar claramente en la sección “ “Functional Block Diagram” del
manual SLAS014 de la interfaz de circuito análoga [1] donde se observa un bloque análogo
de prefiltrado que puede ser programado mediante un valor determinado en el registro de
control del AIC. Por esta razón, los filtros digitales no son siempre es la mejor solución. [2]
Al momento de escoger los filtros que formarán parte de una determinada aplicación, es
necesario considerar aspectos como el costo y utilización de recursos del sistema
(conversión, carga en el procesador, memoria, inicialización y consumo de potencia)
propios de una implementación digital y compararlos con su contraparte análoga. Esto se
justifica, ya que en la actualidad se dispone de filtros análogos integrados dedicados y
matched op amps de alto desempeño, que permiten realizaciones efectivas de filtros activos,
haciendo atractivo el empleo de diseños análogos en algunas aplicaciones. El problema de
ingeniería se resuelve una vez el diseño análogo cuente con componentes de bajo ruido.
El diseño de filtros digitales normalmente involucra una etapa de aproximación, en la que
se genera una función de transferencia que satisface las especificaciones de la aplicación, y
en donde normalmente se estudian respuestas tanto en el dominio de la frecuencia como
del tiempo. Luego se lleva a cabo la realización, en la que la función de transferencia se
expresa en términos de una topología o redes de filtros, según las características del
problema y la disponibilidad de recursos en el procesador. Los dos pasos anteriores
parten de la base de un sistema de precisión infinita, y es por eso que se debe tener una
etapa de implementación, relacionada con el hardware disponible y las rutinas de
programación del procesador seleccionado. Este, por tener una precisión finita, obliga al
diseñador a estudiar los efectos de los errores matemáticos en la respuesta del filtro. En lo
referente a este trabajo de grado, las etapas de aproximación y realización se ejecutan por
medio de MATLAB y la etapa de implementación se fundamenta en las herramientas de
desarrollo del DSK.
Una amplia variedad de filtros digitales es descrita por medio de una ecuación de
diferencias lineal de coeficientes constantes, que relaciona la secuencia de entrada del filtro
x(n) y la secuencia de salida del mismo y(n):
∑ ∑
= =
−+−=
N
k
M
k
kk knxbknyany
0 0
)()()( ( 5-1)
Estos sistemas pueden ser representados por su secuencia de respuesta al impulso h(k)
donde k=0,1,2,.., y la señal de salida se obtiene a partir de operaciones de suma y
convolución de dicha secuencia con la señal digital de entrada. En términos de su
repuesta al impulso los filtros digitales se clasifican de dos formas: FIR (Finite Impulse
Response) o filtros de respuesta finita al impulso; e IIR (Infinite Impulse Response) o filtros de
respuesta infinita al impulso, que deben su comportamiento a la existencia de lazos de
realimentación en su estructura. Este será el tema de estudio de las siguientes secciones.
5.1. FILTROS FIR
5.1.1. CONCEPTOS BÁSICOS
El modelo matemático de los filtros FIR también se fundamenta la ecuación de diferencias
(5-1) , pero con la particularidad de que todos los coeficientes ak son iguales a cero. Se
tiene entonces que la ecuación que los describe es función del conjunto de coeficientes bk y
de la secuencia de entrada x(n).
∑
=
−=
M
k
k knxbny
0
)()( , ( 5-2)
donde M+1 corresponde a la longitud del filtro. Este sistema considera sólo las ultimas
M+1 muestras de la señal de entrada y las pondera mediante los coeficientes bk. A este
sistema se le denomina FIR, ya que su respuesta al impulso unitario (dada por los
coeficientes bk) es finita.
Su diseño requiere la selección de la secuencia que mejor representa la respuesta a
impulso de un filtro ideal. Los filtros FIR son siempre estables y son capaces de tener una
respuesta lineal en fase. Frente a los filtros IIR presentan la desventaja de requerir un
orden mucho mayor.
La salida del filtro es una suma finita de la entrada presente y las M entradas previas al
filtro. En los sistemas lineales se tiene que la salida y[n] puede expresarse como la
convolución de la señal de entrada con la función de respuesta al impulso del filtro.
∑
=
−∗=
M
k
knxkhny
0
)()()( ( 5-3)
Comparando esta última ecuación con (5-2) se tiene que
)(khbk = ( 5-4)
y por lo tanto los coeficientes del filtro son equivalentes a la respuesta al impulso del filtro.
Al aplicar un impulso a la entrada del sistema, se obtiene a la salida una respuesta de
longitud limitada.
Cuando se describe un sistema causal con respuesta finita al impulso, se usan
normalmente estructuras no-recursivas. En tales casos la función del sistema tiene la
forma
∑
−
=
−
=
1
0
)()(
N
n
n
znhzH ( 5-5)
donde se tiene que :
∑
−
=
−
==
1
0)(
)(
)(
N
n
n
n zb
zX
zY
zH ( 5-6)
siendo x(n) la entrada, y(n) la salida h(n) la función de respuesta al impulso y X(z) , Y(z) y
H(z) sus respectivas transformadas Z. De (5-5) se tiene que H(z) es un polinomio de orden
N-1, que tiene polos en z=0 y N-1 ceros que pueden estar en cualquier parte del plano z [3].
Esta ecuación puede ser representada mediante la estructura de la figura siguiente y es
conocida como Forma Directa (los coeficientes del filtro se pueden leer directamente de la
ecuación de diferencias). Las ramas marcadas con z-1
corresponden a un retraso de un
periodo de muestreo en la ecuación (5-3) y a una multiplicación por z-1
en (5-4).
En la sección 4.5 de [3] se discuten arquitecturas alternativas, al igual que consideraciones
de linealidad de fase y simetría. De momento basta con aclarar que la respuesta al
impulso de los sistemas FIR con fase lineal presentan la característica :
)1()( nNhnh −−= ( 5-7)
Figura 5-1. Forma Directa de un Sistema Causal y con Respuesta Finita al Impulso.
5.1.2. DISEÑO DE FILTROS FIR CON MATLAB
Este proceso corresponde a la etapa de aproximación descrita previamente en la
introducción de este capítulo. Los pasos que normalmente se sigue son [4]:
• Escoger una respuesta ideal, normalmente en el dominio de la frecuencia.
• Escoger un tipo particular de filtro.
• Escoger un criterio de medida para valorar la aproximación.
• Definir un método para seleccionar la mejor aproximación según el criterio de
aproximación.
Estos pasos son repetidos asta encontrar unas especificaciones de filtro que se ajusten al
problema inicial. Es posible que en esta etapa del diseño se quiera redefinir la respuesta
ideal, el tipo de filtro o el criterio de medida. De cualquier manera, MATLAB ofrece un
conjunto de rutinas y funciones que permiten agilizar estos pasos, y eso es justamente lo
que se busca mostrar en este capítulo.
5.1.2.1. FIR1: Diseño de filtros FIR mediante el método de ventanas.
El script labfir1.m ofrece una rutina interactiva para el diseño de filtros FIR pasabajo y
los pasabanda. Los argumentos de esta función son fundamentalmente el orden del filtro N
y la frecuencia normalizada de corte Wn, definida con en criterio 0<Wn<1, donde 1
corresponde a la mitad de la frecuencia de muestreo (Frecuencia Nyquist). Su formato
general es :
»B=FIR1(N,Wn,type,window);
»B=FIR1(N,Wn). Calcula y almacena en B N+1 coeficientes de un filtro FIR pasabajos.
»B=FIR1(N,Wn,'high') usa el parámetro ‘high’ para diseñar filtros FIR pasaaltos. N
debe ser par en este caso particular.
Al momento de diseñar filtros pasabanda o atrapabanda con la instrucción fir1, se debe
definir Wn como un vector de dos elementos Wn=[W1 W2], con la restricción
0<W1<W<W2<1.
»B=FIR1(N,Wn). Calcula y almacena en B los N+1 coeficientes de un filtro FIR
pasabanda.
»B=FIR1(N,Wn,'stop'); usa el parámetro ‘stop’ para diseñar filtros FIR pasaaltos. N
también debe ser par en este caso.
Se usa por default la ventana Hamming. Sin embargo, se puede usar ventanas Boxcar
(rectangular), Hanning, Bartlett, Blackman, Kaiser and Chebyshev. El comando se escribe
así :
»B=FIR1(N,Wn,boxcar(N+1)) ;
5.1.2.2. FIR2 : Filtros FIR con método de ventanas y forma arbitraria.
Al igual que FIR1, permite el diseño de filtros FIR usando el método de las ventanas, pero
con forma de filtro arbitraria. Los parámetros que tiene en común con FIR1 funcionan
exactamente igual, razón por la cual sólo se discute en esta sección el significado de los
vectores F y M. Su estructura general es :
» B=fir2(N,F,M,window);
En el vector F se especifican las frecuencias “significativas” dentro del filtro, es decir,
aquellas que corresponden a un punto de corte o que simplemente tienen alguna
importancia en el diseño que se busca implementar. Se escriben tambien como fracciones
de la frecuencia de Nyquist (fs/2) y por tanto sus valores responden a la
condición 0=f(1)<f(2)<..f(k)=1.0, para un vector de k elementos de frecuencia.
El vector M contiene los valores de magnitud correspondientes a cada una de las
frecuencias especificadas en el vector F, por lo que F y M deben tener las mismas
dimensiones. Se puede visualizar la repuesta en frecuencia del filtro especificado con el
comando plot(F,M).
»B=fir2(N,F,M,npt,lap,window)permite a fir2 interpolar la respuesta frecuencial
deseada (F,M) con npt puntos (por defecto, npt=512). Si dos valores sucesivos de F son
iguales, se crea una región de lap puntos alrededor de este punto (por defecto, lap=25).
5.1.2.3. FIRLS : FIR de Fase Lineal con minimización de error por mínimos
cuadrados.
Los argumentos de entrada son el orden del filtro N, y dos vectores F y M, cuyo formato es
un poco diferente de los definidos para fir2. Su estructura general es
» B=firls(N,F,M);
Los coeficientes obtenidos corresponden a la mejor aproximación a la respuesta en
frecuencia descrita por (F,M), de acuerdo con el criterio de mínimos cuadrados y con
coeficientes reales y simétricos característicos de los sistemas de fase lineal. El tema de las
aproximaciones óptimas para filtros FIR se desarrolla ampliamente en la sección 7.6 de [5].
F es un vector que indica los límites de las bandas de frecuencia en parejas (por tanto el
tamaño de F debe ser par), y en orden ascendente entre 0 y 1. M es un vector del mismo
tamaño que F que indica la magnitud deseada para cada banda de frecuencias. La
respuesta deseada es la línea que conecta los puntos (F(k),M(k)) y (F(k+1),M(k+1)) para k
impar. Las bandas de frecuencia entre F(k+1) y F(k+2) para k impar son tratadas por firls
como bandas de transición o de “no importa”.
También existe un argumento opcional, el vector W cuyo tamaño es la mitad de F. Los
elementos de W asignan un factor de error para cada una de las bandas especificadas en F.
B=FIRLS(N,F,M,'Hilbert'), FIRLS(N,F,M,W,'Hilbert'), B=FIRLS(N,F,M,'differentiator') y
B=FIRLS(N,F,M,W,'differentiator') quedan para ser estudiados por el lector.
5.1.2.4. REMEZORD : Estimador de orden para FIR.
Se usa para le especificación de parámetros de filtros pasabajo, pasaalto, pasabanda,
multibanda. Los argumentos de entrada son el orden del filtro dos vectores F es un vector
que contiene las frecuencias de corte y está definido en Hertz ; su magnitud es el doble del
vector M más dos y por lo tanto siempre es par. M contiene la magnitud para cada banda.
DEV es un vector que contiene el valor de ripple máxmio permitido para cada banda. Fs
es la frecuencia de muestreo del sistema. La instrucción se escribe así:
» [N,Fo,Mo,W] = REMEZORD(F,M,DEV,Fs)
Los valores calculados son el orden N aproximado del filtro, límites de las bandas en
frecuencia normalizada Fo, magnitudes de cada banda Mo, y el vector de error permitido
para cada banda. y corresponden a la mejor aproximación a la respuesta en frecuencia, de
acuerdo con el criterio minimax. Estos valores, al ser incluidos en la instrucción REMEZ,
generan los coeficientes de un filtro FIR que se aproxima a la respuesta deseada en
frecuencia, descrita por (F,M). Es necesario tener en cuenta dos aspectos relacionados con
esta función. El orden es normalmente menor al valor de orden correcto para implementar
un filtro específico. En caso de no tener una respuesta adecuada con el valor N generado
pro remez se recomienda implementar un filtro de orden N= N+1 o N+2.
5.1.2.5. REMEZ: Diseño de Filtros FIR Óptimos Equirripple (Parks-
McClellan)
Los argumentos de entrada son el orden del filtro dos vectores F es un vector que contiene
las frecuencias normalizadas de corte, es decir, 0<F(0)< F(1)< ... < F(k)<1. Tiene la misma
longitud que el vector M, que a su vez contiene la magnitud para cada banda. DEV es un
vector que contiene el valor de ripple máxmio permitido para cada banda. Fs es la
frecuencia de muestreo del sistema. La instrucción se escribe así:
» B = REMEZ(N,F,M)
Se calcula y se almacena en la variable B un N+1 coeficientes de un filtro FIR (reales y
simétricos), con la mejor aproximación a la respuesta especificada según el criterio
minimax [5]. La respuesta de este filtro se aproxima a la respuesta deseada del filtro,
obtenida de trazar una recta desde (F(k),M(k)) hasta (F(k+1),M(k+1)) para k impar. Se
minimiza el máximo error
B=REMEZ(N,F,M,W) permite enfatizar la minimización de error en cada banda según el
valor asignado en W para cada una de ellas.
La utilización de B=REMEZ(N,F,M,'differentiator'), B=REMEZ(N,F,M,W,'differentiator'),
B=REMEZ(N,F,M,'Hilbert'), B=REMEZ(N,F,M,W,'Hilbert'), va por cuenta del interesado.
5.1.3. IMPLEMENTACIÓN DE FILTROS FIR EN EL ‘C50
Una vez conocida la estructura básica de los filtros FIR, el problema de la implementación
en un DSP se convierte en la construcción de un algoritmo que permita hacer los cálculos
pertinentes. En aplicaciones de procesamiento digital se señales en tiempo real, es
necesario considerar la capacidad el procesador en términos de velocidad de ejecución
(ciclo de máquina) y la disponibilidad de un conjunto de instrucciones que permita llevar
a cabo esta implementación. En la mayoría de los casos el problema consiste en
desarrollar con suficiente velocidad el proceso de convolución de un conjunto de muestras
de la señal, con un conjunto de valores previamente definidos.
Tomando como punto de partida la ecuación (5-3), se puede inferir que es necesario
disponer de un espacio en la memoria del DSP para almacenar los M+1 coeficientes del
filtro, que han sido obtenidos en la etapa de diseño del filtro y también un espacio para las
M+1 muestras de la señal que intervienen en cada ciclo (cada periodo de muestreo) en el
cálculo de la misma ecuación. Teniendo en cuenta la forma en que se ejecutan
instrucciones de multiplicación y desplazamiento típicas de las operaciones de
convolución el los procesadores TMS320C50, se recomienda disponer los datos en
memoria de la siguiente forma [6]
Figura 5-2. Esquema de almacenamiento para el filtro FIR basado en el lazo.
Se puede implementar el algoritmo de los filtros FIR utilizando las instrucciones LTD y
MPY [6]. Por ejemplo :
LTD XLAST
MPY H1
XLAST carga el registro temporal TREG0 con los contenidos de la dirección que
corresponde a XLAST. Suma el producto de la multiplicación anterior (PREG) al
acumulador, según el contenido de los bits PM. Finalmente desplaza el dato en XLAST a
la siguiente posición (superior) de memoria. MPY multiplica los contenidos de TREG0
(XLAST) con los contenidos de H1 [6].
Un segmento de código basado en este par de instrucciones requeriría bastantes líneas de
código (espacio en memoria de programa) y sería poco práctico para la implementación de
filtros de orden relativamente grande. El segmento de código encargado de filtrar sería el
siguiente (se supone que ya se inicializó el sistema y se han definido el vector de
interrupciones y todo lo que haga falta):
RECEIVE : LDP #XN ;
CLRC INTM ; Captura de dato del AIC
LAMM DRR ; y almacenamiento en XN
SACL XN ;
ZAP ; Cero ACC y PREG
LT XLAST ; Primera multiplicacion
MPY H79 ; No desplazamiento
************************************************************
* Se repite el mismo segmento para cada coeficiente, desde *
* LT XNM78, MPY H78 hasta LT XNM2, MPY H2, es decir falta *
* agregar 152 líneas de código ! ! ! *
************************************************************
LTD XNM1 ; TREG = XNM1 = X(N-1)
MPY H1 ; TREG*H1
LTD XN ; TREG = XNM = X(N)
MPY H0 ; TREG*H0
APAC ; (PREG)+ACC
SACH OUTPUT,1 ;(ACC)->OUTPUT sin bit signo
LACC OUTPUT ; OUTPUT->ACC
SFL
AND #0fffc ; Ultimos bits al AIC =0
SAMM DXR ; Escribir en reg de X-mision
RETE ; Volver a esperar otra muestra
Figura 5-3. Rutina de programación de un filtro FIR usando LTD y MPY.
Una alternativa más eficiente utilizaría instrucciones de direccionamiento indirecto para
implementar la ecuación del filtro FIR, esto gracias a las mejoras en diseño y a la
disponibilidad de instrucciones más poderosas. El código tendría más o menos las
siguientes instrucciones :
MAR *,AR0 ; AR0 es el AR actual
RECEIVE : LDP #XN ;
CLRC INTM ; Captura de dato en el AIC
LAMM DRR ; y almacenamiento en XN
SACL XN ;
LAR AR0,#XLAST ; Definicion de
LAR AR1,#H79 ; apuntadores
ZAP ; Cero ACC y PREG
LT *-,AR1 ; Primera multiplicacion
MPY *-,AR0 ; No desplazamiento
LAZO : LTD *,AR1 ; AR0->TREG, 1->ARP
MPY *-,AR0 ; Hxx*TREG , 0->ARP
BANZ LAZO ; Si (AR0) no cero
: (AR0)-1 -> AR0
APAC ; (PREG)+ACC
SACH OUTPUT,1 ;
LACC OUTPUT ;
SFL
AND #0fffc ;
SAMM DXR ;
RETE ; Volver y esperar otra muestra
Figura 5-4. Programación de un filtro FIR usando un “loop” y direccionamiento indirecto.
Este segmento de código resulta mucho más compacto y controla por si mismo el
direccionamiento de los factores (coeficientes muestras de la señal), liberando al
programador de esa tarea. La convolución está a cargo nuevamente de las instrucciones
LTD y MPY. Se recomienda leer la instrucción BANZ y el direccionamiento indirecto. El
esquema de memoria utilizado en este caso es el siguiente :
Figura 5-5. Esquema de almacenamiento para el filtro FIR usando un lazo
La rutina que se escribe a continuación utiliza la instrucción MACD, encargada de y sumar
al acumulador el producto anterior (según la definición de los bits PM), multiplicar un
valor de memoria de datos (dma) por un valor de memoria de programa. En el caso de
que la dma esté la RAM del DSP, copia el contenido del dma a la dirección inmediatamente
superior, lo que corresponde a una multiplicación por z-1 o un retraso en el tiempo.
MACD, en resumen, es una operación de tres-ciclos que realiza las funciones que se
presentan al ejecutar las instrucciones LTD y MPY, con la ventaja de que al estar incluida
en un ciclo de repetición (Ver RPT y RPTZ en (Manual de Usuario C50) se convierte en
una operación de multiplicación/acumulación de ciclo-único (User manual, página 3-9).
Cada “tab” del filtro se calcula en aproximadamente 50 ns. Este procedimiento es más
eficiente cuando el orden del filtro es mayor que tres.
RECEIVE: LDP #XN ;
CLRC INTM ;Habilita int’s para debugger
LAMM DRR ; Captura un dato del AIC y
SACL XN ; lo guarda en XN
LAR AR0,#XNLAST ;direccion(XLAST)->AR0
ZAP ;Cero ACC y PREG
MAR *,AR0 ; AR0 es AR activo
RPT #80 ; repite el cálculo 81 veces
MACD #h0,*- ; por toda la tabla de coef’s.
APAC ; Acumula el ultimo producto
SACH OUTPUT,1 ;
LACC OUTPUT ;
SFL ; Preparar el resultado
AND #0fffc ;
SAMM DXR ; Enviar por puerto de salida
RETE ; Volver y esperar otra muestra
Figura 5-6. Programación de un filtro FIR usando un lazo y direccionamiento indirecto.
Para que se pueda utilizar todo el potencial de la instrucción MACD se debe tener un
esquema de almacenamiento en memoria apropiado, descrito por la siguiente figura :
Figura 5-7. Esquema de almacenamiento para el filtro FIR basado en la instrucción MACD
Cabe notar que las rutinas descritas en estos segmentos de código están incluidas como
parte del servicio de la interrupción RECEIVE, que debe estar definida en algún lugar del
código correspondiente.
5.2. FILTROS IIR
5.2.1. CONCEPTOS BÁSICOS
Los conceptos utilizados en el estudio de los filtros FIR pueden ser aprovechados para los
filtros IIR. El punto de partida nuevamente es la ecuación de diferencias lineal de
coeficientes constantes (5-1)
∑ ∑
= =
−+−=
N
k
M
k
kk knxbknyany
0 0
)()()( ( 5-8)
Pero en este caso por lo menos uno de los coeficientes ak no es cero. Así, se tiene que la
transformada z de la respuesta al impulso unitario de la función de transferencia es :
∑
∑
=
−
=
−
−
== N
k
k
k
M
k
k
k
za
zb
zX
zY
zH
0
0
1
)(
)(
)( ( 5-9)
siendo x(n) la entrada, y(n) la salida h(n) la función de respuesta al impulso y X(z) , Y(z) y
H(z) sus respectivas transformadas Z. La ecuación (5-9) puede ser implementada de
diferentes formas. Las más utilizadas y estudiadas son la Forma Directa, la Forma de
Cascada y la Forma Paralela. Su desarrollo se observa en la sección de implementación en
el DSK[3].
5.2.2. DISEÑO DE FILTROS IIR CON MATLAB
Existe una amplia variedad de funciones para calcular los coeficientes de un filtro IIR, por
medio de MATLAB. Se tienen herramientas que calculan los parámetros apropiados
según la aplicación y otras que usan esta información para calcular los coeficientes.
5.2.2.1. Funciones para determinar el orden de un filtro determinado.
Todas estas funciones están incorporadas en MATLAB. En el caso de quererse un filtro
análogo de cualquiera de estos tipos, se agrega el argumento ‘s’ como último argumento
(con todo y comillas). Tienen además la misma estructura y usan los mismos argumentos
de entrada.
»[N, Wn] = función(Wp, Ws, Rp, Rs)
Las especificaciones de diseño son :
Wp : Frecuencia de pasabanda (Banda de paso normalizada 0<W<Wp)
Ws : Frecuencia de rechazabanda (Banda de rechazo normalizada Ws<W<1)
Rp : Máxima atenuación permitida en pasabanda.
Rs : Mínima atenuación deseada en rechazabanda.
N : Orden mínimo calculado para el filtro. Sirve de argumento para la función de cálculo
de coeficientes correspondiente.
Wn : Frecuencia natural. Parámetro de entrada necesario para que el filtro calculado
mediante la función correspondiente cumpla con las especificaciones del diseño.
Las funciones consideradas en este documento son :
»[N, Wn] = buttord(Wp, Ws, Rp, Rs);
»[N, Wn] = cheb1ord(Wp, Ws, Rp, Rs) ;
»[N, Wn] = cheb2ord(Wp, Ws, Rp, Rs) ;
»[N, Wn] = ellipord(Wp, Ws, Rp, Rs) ;
5.2.2.2. Funciones para calcular los coeficientes de un filtro determinado.
Para el diseño de filtros Butterworth pasabajos y pasaaltos se tienen las instrucciónes
»[B,A] = butter(N, Wn); y »[B,A] = butter(N, Wn, ‘high’);
que almacenan el B y en A los N+1 coeficientes para la implementación de la función de
transferencia deseada. Si Wn = [W1 W2] con 0<W1<W2<1 , butter calcula los
coeficientes para un pasabanda y un atrapabanda mediante los comandos
»[B,A] = butter(N, Wn); y »[B,A] = butter(N, Wn, ‘stop’);
El funcionamiento y los parámetros de las instrucciones para los filtros Chebishev tipos I
y II son muy similares a los de butter, salvo por R (dB’s de ripple en la banda de paso) .
»[B,A] = cheby1(N, R, Wn) ; y »[B,A] = cheby2(N, R, Wn) ;
Una vez que se tienen los parámetros N y Wn del filtro Elíptico, se agrega la información
del ripple de pasabanda Rp y el de rechazabanda Rs, según el siguiente formato :
»[B,A] = ellipord(N, Rp, Rs, Wn) ;
5.2.2.3. YULEWALK : Filtro recursivo mediente el método de mínimos
cuadrados.
Calcula un filtro recursivode orden N que cumpla con la ecuación (5-9), de tal forma que
este se ajuste a la respuesta en frecuencia descrita por los vectores F y M. Su sintaxis es
»[B,A] = yulewalk(N,F,M)
y la definición de sus parámetros es idéntica a la de la función FIR2, por ejemplo.
5.2.3. IMPLEMENTACIÓN DE FILTROS IIR EN EL ‘C50
Se tienen en cuenta en esta sección varios de los conceptos manejados en la 5.1.3 . Se
presenta en esta sección una descripción de las formas más usadas en la implementación
de filtros IIR.
5.2.3.1. Forma Directa I y Forma Directa II
Corresponde a la representación de la ecuación (5-8) y se muestra en la siguiente figura. Se
denomina Forma Directa I por razones idénticas a la Forma Directa de los filtros FIR : los
coeficientes de las ramas de la red pueden obtenerse directamente de la ecuación de
diferencias y su diagrama de flujo se muestra en la siguiente figura :
Figura 5-8. Filtro IIR de Forma Directa
Se supone que M=N pero en caso de no existir tal igualdad, se hace igual a cero las
transmitancias correspondientes en las ramas en que sea necesario.
Esta arquitectura puede interpretarse como dos redes en cascada, una de ellas encargada
de representar los ceros del filtro y la otra sus polos.
En la Forma Directa I puede cambiarse el orden de las etapas sin alterar el funcionamiento
global del sistema, y esto se debe a que se trata de un sistema lineal invariante en el
tiempo. Este es el punto de partida para la Forma Directa II, ya que una vez cambiado el
orden de las etapas de ceros y polos, el diagrama de flujo correspondiente queda :
Figura 5-9. Filtro IIR, Forma Directa con Intercambio de las Redes de Ceros y Polos
Dado que las líneas de retraso comparten la misma entrada, puede dejarse sólo una de
ellas, llegando a las siguiente representación :
Figura 5-10. Filtro IIR en Forma Directa II
Esta topología requiere un menor número de ramas de retraso (por eso pertenece a las
redes canónicas), lo que significa algoritmos más eficientes al momento de programar el
filtro en términos de uso de memoria y modularidad. Un ejemplo de ello se tiene en la
siguiente figura, donde se muestra un filtro de Segundo Orden, sobre el cual se hace el
desarrollo del ejemplo de programación .
Figura 5-11. Filtro IIR Forma Directa de Segundo Orden
Las ecuaciones de diferencias que se utilizan en esta rutina son :
]2[]1[][][ 21 −+−+= ndandanxnd ( 5-10)
]2[]1[][][ 210 −+−+= ndbndbndbny ( 5-11)
donde los d[n-k] corresponden a nodos de retraso según el valor de k y son productos
intermedios, derivados de la arquitectura de Forma Directa II. El almacenamiento en
memoria de cada uno de estos valores se realiza según la siguiente figura y es un caso
particular del almacenamiento para filtros de orden mayor. Obedece a la facilidad que
ofrece la instrucción LTD de sumar al acumulador el producto previo y desplazar el
operando una posición de memoria. Obsérvese que los valores DN sólo se sobreesciben
cuando se ha calculado el producto con su coeficiente B correspondiente.
Figura 5-12. Almacenamiento de Nodos de Retraso. Filtro IIR de Segundo Orden
El código que implementa este algoritmo puede usar las operaciones LTD y MPY. Para
órdenes mayores que tres, resulta ventajoso implementar la rutina con MCAD.
RECEIVE : LDP #XN ;
CLRC INTM ; Captura de dato del AIC
LAMM DRR ; y almacenamiento en XN
SACL XN ;
LT DNM1
MPY A2 ; A1*DNM1 -> PREG
LTA DNM2 ; DNM2->TREG0 A1*DNM1->ACC
MPY A2 ; A2*DNM2 -> PREG
APAC ; A2*DNM2 + A1*DNM1 -> ACC
SACH DN,1 ; DN= A2*DNM2 + A1*DNM1
ZAC ; Cero ACC
MPY B2 ; B2*DNM2 -> PREG
LTD DNM1 ; Producto, Suma y DNM1->DNM2
MPY B1 ; A2*DNM2 -> PREG
LTD DN ; Producto, Suma y DN->DNM1
MPY B0 ; B0*DN -> PREG
APAC ; B0*DN +B1*DNM1 +B1*DNM1->ACC
SACH OUTPUT,1 ;(ACC)->OUTPUT sin bit signo
LACC OUTPUT ; OUTPUT->ACC
SFL
AND #0fffc ; Ultimos bits al AIC =0
SAMM DXR ; Escribir en reg de X-mision
RETE ; Volver a esperar otra muestra
Figura 5-13. IIR Forma Directa II implementada con LTD (LTA) y MPY
5.2.3.2. Forma Cascada
Nuevamente se parte de la ecuación de respuesta al impulso de los filtros IIR, cuya
transformada z se escribe de la forma :
∑
∑
=
−
=
−
−
== N
k
k
k
M
k
k
k
za
zb
zX
zY
zH
0
0
1
)(
)(
)( .( 5-12)
Esta ecuación puede reescribirse en términos de una productoria de factores cuadráticos,
según la siguiente ecuación :
∏=
−−
−−
−−
++
==
2/
1
2
2
1
1
2
2
1
10
1)(
)(
)(
N
k kk
kkk
zz
zzk
zX
zY
zH
αα
βββ
( 5-13)
así, la ecuación del filtro IIR es realizable como una sucesión de etapas en cascada. Se
tiene a continuación un ejemplo de código assembler para esta topología. Se recomienda
ver la figura 18 para seguir el desarrollo de la rutina:
RECEIVE : LDP #XN ;
CLRC INTM ; Captura de dato del AIC
LAMM DRR ; y almacenamiento en XN
SACL XN ;
Inicio de la primera sección de cascada
LT D1NM1
MPY A11 ; A11*D1NM1 -> PREG
LTA D1NM2 ; ACC + PREG -> ACC
MPY A21 ; A21*D1NM2 -> PREG
APAC ; D1N= A2*DNM2 + A1*DNM1
SACH D1N,1 ;
ZAC ; Cero ACC
MPY B21 ; B21*D1NM2 -> PREG
LTD D1NM1 ; ACC + PREG -> ACC
MPY B11 ; B11*D1NM1 -> PREG
LTD D1N ; ACC + PREG -> ACC
MPY B01 ; B11*D1NM1 -> PREG
* Fin de la primera etapa de la cascada. Inicio de la segunda
LTA D2NM1 ; PREG+ ACC ->ACC D2NM1->TREG0
MPY A12 ; A12*D2NM1 -> PREG
LTA D2NM2 ; ACC + PREG -> ACC
MPY A22 ; A22*D2NM2 -> PREG
APAC ;
SACH D2N,1 ; D1N= A2*DNM2 + A1*DNM1
ZAC ; Cero ACC
MPY B22 ; B22*D2NM2 -> PREG
LTD D2NM1 ; ACC + PREG -> ACC
MPY B12 ; B12*D2NM1 -> PREG
LTD D2N ; ACC + PREG -> ACC
MPY B02 ; B02*D2N -> PREG
APAC ; D2N= B02*D2N+ B12*D2NM1+ B22*D2NM2
* Fin de la segunda etapa de la cascada.
SACH OUTPUT,1 ;(ACC)->OUTPUT sin bit signo
LACC OUTPUT ; OUTPUT->ACC
SFL
AND #0fffc ; Ultimos bits al AIC =0
SAMM DXR ; Escribir en reg de X-mision
RETE ; Volver a esperar otra muestra
Figura 5-14. Código para filtro IIR de Cuarto Orden en Cascada
En la siguiente figura se muestra el caso de un filtro IIR de cuarto orden implementado en
arquitectura de cascada, donde cada subsección representa uno de los términos incluidos
en el producto.
Figura 5-15. Filtro IIR de Cuarto Orden en Forma de Cascada
Se observa que cada sección del filtro corresponde a la Forma Directa de Segundo Orden,
según la topología descrita anteriormente. Esta configuración puede resultar ventajosa en
términos de estabilidad del sistema, en caso de que se requiera un orden de filtro muy
elevado, caso en el que esta condición que es difícil de lograr al ser implementada en
alguna de las formas descritas anteriormente por los múltiples retrasos y lazos de
realimentación.
5.2.3.3. Forma Paralela
Otra forma de representación de la ecuación de transferencia de un filtro IIR en (5-9) es
∑∑ =
−−
−−
=
−
−−
+
==
2/
1
2
2
1
1
1
10
0 1)(
)(
)(
N
k kk
kk
NM
k
k
k
zz
zk
zC
zX
zY
zH
αα
γγ
( 5-14)
en la que el término Ckz-k se hace cero cuando M<N.
RECEIVE : LDP #XN ;
CLRC INTM ; Captura de dato del AIC
LAMM DRR ; y almacenamiento en XN
SACL XN ;
Inicio de la primera sección en paralelo
LACC XN,15
LT D1NM2
MPY A21 ; A21*D1NM2 -> PREG
LTD D1NM1
MPY A11 ; A11*D1NM1 -> PREG
APAC ; D1N= A21*D1NM2 + A11*D1NM1
SACH D1N,1 ;
ZAC ; Cero ACC
MPY GAMMA11 ; GAMMA11*D1NM1 -> PREG
LTD D1N ; ACC + PREG -> ACC
MPY GAMMA01 ; GAMMA01*D1N -> PREG
APAC ;
SACH P1,1 ; P1= GAMMA01*D1N+ GAMMA11*D1NM1
* Fin de la primera etapa en paralelo. Inicio de la segunda
LACC XN,15
LT D2NM2
MPY A22 ; A22*D2NM2 -> PREG
LTD D2NM1
MPY A12 ; A12*D2NM1 -> PREG
APAC ; D1N= A21*D1NM2 + A11*D1NM1
SACH D2N,1 ;
LACC P1,15 ;
MPY GAMMA12 ; GAMMA12*D2NM1 -> PREG
LTD D2N ; ACC + PREG -> ACC
MPY GAMMA02 ; GAMMA02*D2N -> PREG
LTA C
MPY XN ; XN*C -> PREG
APAC ;
* Fin de la segunda etapa en paralelo y del filtro.
SACH OUTPUT,1 ;(ACC)->OUTPUT sin bit signo
LACC OUTPUT ; OUTPUT->ACC
SFL
AND #0fffc ; Ultimos bits al AIC =0
SAMM DXR ; Escribir en reg de X-mision
RETE ; Volver a esperar otra muestra
Figura 5-16. Código para filtro IIR con secciones en paralelo
5.3. PRÁCTICA #5 (FILTROS FIR)
Es fundamental seguir una rutina de diseño-prueba-diseño para lograr un algoritmo que
satisfaga las condiciones de la aplicación. Por lo tanto, las partes que componen esta
sección deben ejecutarse repetidas veces en forma cíclica, hasta cumplir el objetivo.
5.3.1. OBJETIVOS
Conocer diferentes herramientas para el diseño de filtros y de procedimientos para valorar
su viabilidad como solución para una aplicación específica.
• Usar rutinas MATLAB para diseño de filtros tanto FIR como IIR.
Entender el uso del PC como herramienta para diseñar y programar sistemas .
• Conocer el uso del MATLAB, en particular sus funciones de diseño de filtros.
• Utilizar herramientas freeware (COOL96) para medir el funcionamiento de un sistema
de procesamiento digital.
• Ganar familiaridad con el uso de diferentes herramientas de software para poner a
punto el diseño de u determinado algoritmo.
Ejercitar diferentes rutinas de uso común en el desarrollo de aplicaciones DSP.
• Usar diferentes esquemas de direccionamiento para la implementación de diferentes
topologías de sistema digital.
• Editar rutinas en assembler, compilar, depurar y medir resultados de un experimento
específico de procesamiento digital de señales.
• Ajustar la entrada y las variables internas del procesador para evitar situaciones de
overflow.
• Poner en práctica normas de seguridad para el trabajo en la estación de DSP.
5.3.2. IMPLEMENTACIÓN EN MATLAB
Relación entre la frecuencia de corte y respuesta al impulso de un filtro.
• Abrir en un editor de texto la rutina coefir.m, útil para diseñar filtros FIR.
• Cambiar los valores de la variable Wn. Definirla como un solo valor (filtros pasabajos)
o como dos valores (filtros pasabanda), con el siguiente criterio :
Pasabajos : Valores cercanos a 0, valores cercanos a 1, valores existentes cercanos a la mitad
de la frecuencia Nyquist. Pasabanda : Valores cercanos entre sí, valores lejanos entre si,
valores cercanos entre sí con centro en la mitad de la frecuencia Nyquist, valores
lejanos entre sí con centro en la mitad de la frecuencia Nyquist.
• Agregar los argumentos necesarios a la función fir1 para generar filtros pasaaltos y
atrapabanda. Reperir alguna de las observaciones anteriores.
• Sacar conclusiones de las observaciones anteriores
Selección de diferentes ventanas
• Calcular mediante la rutina filtros.m (basada en la función fir1 de MATLAB),
varios filtros con las mismas especificaciones de frecuencia y atenuación, pero
utilizando diferentes ventanas (Hanning, Bartlett, Kaiser, etc)
• En cada una de ellas estimar los parámetros Amplitud (magnitud) Relativa Pico de
Lóbulo Lateral y Amplitud (ancho de banda) de Lóbulo Principal.
5.3.3. IMPLEMENTACIÓN EN EL DSK
Para lograr un funcionamiento adecuado del DSP en aplicaciones de procesamiento en
tiempo real, se debe contar con instrucciones de alta velocidad y con un hardware que
tenga la misma característica. En el caso del ‘C50, incorporado en la tarjeta DSK, se tiene
un ciclo de instrucción de 50 ns. Este parámetro es fundamental para calcular el número
total de ciclos de máquina que exige un algoritmo determinado y valorar su utilidad y
factibilidad, dados unos requerimientos específicos de frecuencia de muestreo.
Implementación de Filtros FIR usando Diferentes Ventanas
• Editar una de las rutinas de inicialización del DSK provistas para unas condiciones de
trabajo específicas. (Frecuencias de conversión, Sincronía, Filtros de Preprocesamiento,
etc)
• Partiendo de los datos arrojados por el diseño en MATLAB con diferentes ventanas,
escribir un programa para implementar un filtro FIR en cada una de ellas.
• Hacer las mediciones de desempeño de cada filtro, excitando el sistema con la señal
chirpp.wav.
• Comparar la respuesta medida con la del diseño en MATLAB.
Ajuste del diseño
• En caso de que los resultados no sean los esperados, intentar una variación del
prescalamiento de la salida del filtro.
• Intentar un escalamiento en los coeficientes del filtro
• Repetir el paso anterior pero esta vez ejecute el programa paso a paso, poniendo
atención al contenido del acumulador (ACC), contador de programa(PC), diferentes
registros de estado. Usar la impresión de lazo.lst y establezca relaciones entre el
listado y el contenido de los registros del DSK.
Conteo del número de operaciones y estimación de su duración
• Dependiendo del orden del filtro, su topología y las instrucciones utilizadas, hacer una
estimación del tiempo de ejecución de cada pasada del filtro.
• Comparar este criterio con la tasa de conversión del AIC.
• Establecer el orden máximo que podría tener dicho filtro para seguir operando entre el
límite de la frecuencia de muestreo.
5.3.4. OTROS
Exploración del freeware para análisis y síntesis de señales
• En caso de no haberlo hecho, usar la herramienta Frequency Analysis del menú
Analyze de Syntrillium COOL96. Ubicar el cursor en cualquier instante de la señal de
sonido abierta y leer el contenido frecuencial en ese momento.
Estimación de la respuesta del filtro (cualitativa)
Para escuchar el efecto de este programa, es necesario aplicar una señal de audio al DSK:
• Realizar un ciclo de ejecución/grabación simultáneos mediante COOL96, teniendo
como entrada al sistema la señal chirpp.wav .
• Establecer la respuesta de uno de los filtros.
Uso de señales “del mundo real”
• Una vez que se tenga el filtro adecuado, inyectar una señal de audio externa (salida de
un radio, por ejemplo).
• Notar el efecto del filtro sobre dicha señal.
• Volver a las etapas de diseño en MATLAB y de implementación en el DSK para variar
el diseño.
5.3.5. TAREA
Filtros FIR en cascada
• Diseñar dos filtros FIR, uno pasabajos y otro pasabaltos, cuyas frecuencias se solapen.
• Escribir un código en assembler en el que dichas etapas queden en cascada. (Ver rutina
para filtros IIR en cascada).
• Hacer una estimación de la salida utilizando MATLAB.
• Cargar el ejecutable en el DSP ‘C50 y repetir el proceso de diseño-prueba-diseño, hasta
que obtenga una respuesta apropiada
5.4. PRÁCTICA #6 (FILTROS IIR)
Es fundamental seguir una rutina de diseño-prueba-diseño para lograr un algoritmo que
satisfaga las condiciones de la aplicación. Por lo tanto, las partes que componen esta
sección deben ejecutarse repetidas veces en forma cíclica, hasta cumplir el objetivo.
5.4.1. OBJETIVOS
Conocer diferentes herramientas para el diseño de filtros y de procedimientos para valorar
su viabilidad como solución para una aplicación específica.
• Usar rutinas MATLAB para diseño de filtros tanto FIR como IIR.
• Utilizar freeware (COOL96) para medir el funcionamiento de un sistema de
procesamiento digital.
• Poner en práctica normas de seguridad para el trabajo en la estación de DSP.
Entender el uso del PC como herramienta para diseñar y programar sistemas .
• Conocer el uso del MATLAB, en particular sus funciones de diseño de filtros.
• Integrar el uso de herramientas de freeware a la estación de tiempo real para DSP.
Ejercitar diferentes rutinas de uso común en el desarrollo de aplicaciones DSP.
• Usar diferentes esquemas de direccionamiento para la implementación de diferentes
topologías de sistema digital.
• Editar rutinas en assembler, compilar, depurar y medir resultados de un experimento
específico de procesamiento digital de señales.
• Ajustar la entrada y las variables internas del procesador para evitar situaciones de
overflow.
5.4.2. IMPLEMENTACIÓN EN MATLAB
Obtención de los coeficientes B y A de un filtro IIR.
• Abrir en un editor de texto la rutina coefiir.m, útil para diseñar filtros IIR.
• Cambiar el la función de diseño y ver como cambia la respuesta para especificaciones
idénticas.
• Adicionar los argumentos necesarios a cada función para generar filtros análogos.
Buscar una relación con su equivalente digital.
• Sacar conclusiones de las observaciones anteriores
Generación de señales con características apropiadas.
• Por medio de la rutina chirp1.m generar una señal de barrido en frecuencia que se
adapte a las especificaciones de una aplicación en tiempo real. Escoger una banda de
frecuencias su generación.
Escalización de coeficientes.
• Estudiar la representación numérica al interior del procesador ‘C50.
• Encontrar los factores de escalización apropiados para la definición de los coeficientes
en el DSP.
• Hacer el producto en MATLAB y, si es el caso, usar una hoja de cálculo para facilitar la
exportación de estos valores al código en assembler.
5.4.3. IMPLEMENTACIÓN EN EL DSK
Para lograr un funcionamiento adecuado del DSP en aplicaciones de procesamiento en
tiempo real, se debe contar con instrucciones de alta velocidad y con un hardware que
tenga la misma característica. En el caso del ‘C50, incorporado en la tarjeta DSK, se tiene
un ciclo de instrucción de 50 ns. Este parámetro es fundamental para calcular el número
total de ciclos de máquina que exige un algoritmo determinado y valorar su utilidad y
factibilidad, dados unos requerimientos específicos de frecuencia de muestreo.
Implementación de Filtros IIR en Diferentes Arquitecturas
• Editar una de las rutinas de inicialización del DSK provistas para unas condiciones de
trabajo específicas. (Frecuencias de conversión, Sincronía, Filtros de Preprocesamiento,
etc)
• Partiendo de los datos arrojados por el diseño en MATLAB y de los ejemplos de
código para diferentes topologías y, escribir un programa para implementar un filtro
IIR en cada una de ellas.
• Hacer las mediciones de desempeño de cada filtro, excitando el sistema con la señal
chirpp.wav.
• Comparar la respuesta medida con la del diseño en MATLAB.
Ajuste del diseño
• En caso de que los resultados no sean los esperados, intentar una variación del
prescalamiento de la salida del filtro.
• Intentar un escalamiento en los coeficientes del filtro
Conteo del número de operaciones y estimación de su duración
• Dependiendo del orden del filtro, su topología y las instrucciones utilizadas [7], hacer
una estimación del tiempo de ejecución de cada pasada del filtro.
• Comparar este criterio con la tasa de conversión del AIC.
• Establecer el orden máximo que podría tener dicho filtro para seguir operando entre el
límite de la frecuencia de muestreo.
5.4.4. OTROS
Estimación de la respuesta del filtro (cualitativa)
Para escuchar el efecto de este programa, es necesario aplicar una señal de audio al DSK:
• Realizar un ciclo de ejecución/grabación simultáneos mediante Syntrillium COOL96,
teniendo como entrada al sistema la señal chirpp.wav .
• Establecer la respuesta de uno de los filtros.
Uso de señales “del mundo real”
• Una vez que se tenga el filtro adecuado, inyectar una señal de audio externa (salida de
un radio, por ejemplo).
• Notar el efecto del filtro sobre dicha señal.
• Volver a las etapas de diseño en MATLAB y de implementación en el DSK para variar
el diseño.
5.4.5. TAREA
• Conseguir información relacionada con la estabilidad en filtros IIR. Establecer criterios
de eficiencia de cada topología consultada.
5.5. REFERENCIAS
[1] TEXAS INSTRUMENTS INC. TLC32040C, TLC32040I, TLC32041C, TLC32041I
Analog Interface Circuits (SLAS 014E). U.S.A : s.n., 1995.
[2] SCHWEBER, Bill. Analog filters: Even More Essential in the Digitized Wworld. En :
EDN Magazine. ( April 24, 1997)
[3] OPPENHEIM Alan V. and SCHAFER, Ronald W. Digital Signal Processing.
Englewood Cliffs, New Jersey: Prentice Hall, 1975. p 156-157.
[4] BURRUS, C. Sidney, et al. Computer-Based Exercises for Signal Processing : Using
MATLAB. Englewood Cliffs, New Jersey: Prentice Hall, 1994. p 247
[5] OPPENHEIM Alan V. and SCHAFER, Ronald W. Discrete-Time Signal Processing.
Englewood Cliffs, New Jersey: Prentice Hall, 1989. p 464-486
[6] LOVRICH, Al and SIMAR junior, Ray. Implementation of FIR/IIR Filters with the
TMS32010/TMS32020. En KUN SHAN LIN. Digital Signal Processing Applications
with the TMS320 Family, V.1. Texas Instruments- Prentice-Hall, 1987. p.27-68.
[7] TEXAS INSTRUMENTS INC. TMS320C5x User’s Guide (SPRU056C). Owensville,
Missouri. s.n.. 1997

Más contenido relacionado

La actualidad más candente

Sistemas dinamicos con_simulink
Sistemas dinamicos con_simulinkSistemas dinamicos con_simulink
Sistemas dinamicos con_simulinkMarc Llanos
 
Teoria ecualizacionadaptativalorenzodiaz
Teoria ecualizacionadaptativalorenzodiazTeoria ecualizacionadaptativalorenzodiaz
Teoria ecualizacionadaptativalorenzodiazAlfredo Alvarez
 
Gráfica derivada e Integral de una función discreta y continua en matlab
Gráfica derivada e Integral de una función discreta y continua en matlabGráfica derivada e Integral de una función discreta y continua en matlab
Gráfica derivada e Integral de una función discreta y continua en matlabFabián Garzón
 
Tema 4 Sistemas Basados En Reglas Difusas
Tema 4 Sistemas Basados En Reglas DifusasTema 4 Sistemas Basados En Reglas Difusas
Tema 4 Sistemas Basados En Reglas Difusas
ESCOM
 
Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmosrehoscript
 
Modelado matemático de sistemas dinámicos
Modelado matemático de sistemas dinámicos Modelado matemático de sistemas dinámicos
Modelado matemático de sistemas dinámicos
Alejandro Flores
 
124723528 analisis-de-los-sistemas-dinamicos-roncancio
124723528 analisis-de-los-sistemas-dinamicos-roncancio124723528 analisis-de-los-sistemas-dinamicos-roncancio
124723528 analisis-de-los-sistemas-dinamicos-roncancioEdison Gonzalez
 
Tutorial de matrices matlab
Tutorial de matrices matlabTutorial de matrices matlab
Tutorial de matrices matlab
Mario Alejandro Useche Arteaga
 
Automatizacion funcion de transferencia
Automatizacion funcion de transferenciaAutomatizacion funcion de transferencia
Automatizacion funcion de transferencia
MiguelFigueroa35
 
Practica 5 simulink-5156
Practica 5 simulink-5156Practica 5 simulink-5156
Practica 5 simulink-5156
RossiHeredia1
 
Modelado y Simulación de Sistemas Dinámicos
Modelado y Simulación de Sistemas DinámicosModelado y Simulación de Sistemas Dinámicos
Modelado y Simulación de Sistemas Dinámicos
Karla Carballo Valderrábano
 
Busqueda por backtracking
Busqueda por backtrackingBusqueda por backtracking
Busqueda por backtrackingCesar Mujica
 
Vuelta atrás o (backtracking)
Vuelta atrás o (backtracking)Vuelta atrás o (backtracking)
Vuelta atrás o (backtracking)
Giancarlo Gutierrez
 
Logica-difusa-simulink-casos
Logica-difusa-simulink-casosLogica-difusa-simulink-casos
Logica-difusa-simulink-casosDave R Rdez
 
Revista Futuro en el Presente.
Revista Futuro en el Presente.Revista Futuro en el Presente.
Revista Futuro en el Presente.
AnasDazCortez
 
Utp sirn_2015-2 lab1
 Utp sirn_2015-2 lab1 Utp sirn_2015-2 lab1
Utp sirn_2015-2 lab1jcbp_peru
 

La actualidad más candente (20)

Sistemas dinamicos con_simulink
Sistemas dinamicos con_simulinkSistemas dinamicos con_simulink
Sistemas dinamicos con_simulink
 
Teoria ecualizacionadaptativalorenzodiaz
Teoria ecualizacionadaptativalorenzodiazTeoria ecualizacionadaptativalorenzodiaz
Teoria ecualizacionadaptativalorenzodiaz
 
Tipos de Datos Abstractos.
Tipos de Datos Abstractos.Tipos de Datos Abstractos.
Tipos de Datos Abstractos.
 
Gráfica derivada e Integral de una función discreta y continua en matlab
Gráfica derivada e Integral de una función discreta y continua en matlabGráfica derivada e Integral de una función discreta y continua en matlab
Gráfica derivada e Integral de una función discreta y continua en matlab
 
Tema 4 Sistemas Basados En Reglas Difusas
Tema 4 Sistemas Basados En Reglas DifusasTema 4 Sistemas Basados En Reglas Difusas
Tema 4 Sistemas Basados En Reglas Difusas
 
Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmos
 
214 matlab filtros
214 matlab filtros214 matlab filtros
214 matlab filtros
 
Modelado matemático de sistemas dinámicos
Modelado matemático de sistemas dinámicos Modelado matemático de sistemas dinámicos
Modelado matemático de sistemas dinámicos
 
Presentaciongrafcet
PresentaciongrafcetPresentaciongrafcet
Presentaciongrafcet
 
124723528 analisis-de-los-sistemas-dinamicos-roncancio
124723528 analisis-de-los-sistemas-dinamicos-roncancio124723528 analisis-de-los-sistemas-dinamicos-roncancio
124723528 analisis-de-los-sistemas-dinamicos-roncancio
 
Tutorial de matrices matlab
Tutorial de matrices matlabTutorial de matrices matlab
Tutorial de matrices matlab
 
Automatizacion funcion de transferencia
Automatizacion funcion de transferenciaAutomatizacion funcion de transferencia
Automatizacion funcion de transferencia
 
Practica 5 simulink-5156
Practica 5 simulink-5156Practica 5 simulink-5156
Practica 5 simulink-5156
 
Modelado y Simulación de Sistemas Dinámicos
Modelado y Simulación de Sistemas DinámicosModelado y Simulación de Sistemas Dinámicos
Modelado y Simulación de Sistemas Dinámicos
 
Busqueda por backtracking
Busqueda por backtrackingBusqueda por backtracking
Busqueda por backtracking
 
Vuelta atrás o (backtracking)
Vuelta atrás o (backtracking)Vuelta atrás o (backtracking)
Vuelta atrás o (backtracking)
 
Logica-difusa-simulink-casos
Logica-difusa-simulink-casosLogica-difusa-simulink-casos
Logica-difusa-simulink-casos
 
Control difuso
Control difusoControl difuso
Control difuso
 
Revista Futuro en el Presente.
Revista Futuro en el Presente.Revista Futuro en el Presente.
Revista Futuro en el Presente.
 
Utp sirn_2015-2 lab1
 Utp sirn_2015-2 lab1 Utp sirn_2015-2 lab1
Utp sirn_2015-2 lab1
 

Similar a Capitulo5

Teoria ecualizacionadaptativalorenzodiaz
Teoria ecualizacionadaptativalorenzodiazTeoria ecualizacionadaptativalorenzodiaz
Teoria ecualizacionadaptativalorenzodiazAlfredo Alvarez
 
Métodos de Diseño de Filtros FIR
Métodos de Diseño de Filtros FIRMétodos de Diseño de Filtros FIR
Métodos de Diseño de Filtros FIR
felipeco2
 
Diseño de filtros digitales-FIRXZFASFASFCZXCAS.pptx
Diseño de filtros digitales-FIRXZFASFASFCZXCAS.pptxDiseño de filtros digitales-FIRXZFASFASFCZXCAS.pptx
Diseño de filtros digitales-FIRXZFASFASFCZXCAS.pptx
SANTOS400018
 
Procesamiento Digital De Señales Filtro Pasa Altas 4to Orden - MATLAB
Procesamiento Digital De Señales Filtro Pasa Altas 4to Orden - MATLABProcesamiento Digital De Señales Filtro Pasa Altas 4to Orden - MATLAB
Procesamiento Digital De Señales Filtro Pasa Altas 4to Orden - MATLAB
Fernando Marcos Marcos
 
Practica 1 Laboratorio Telecomunicaciones I
Practica 1 Laboratorio Telecomunicaciones IPractica 1 Laboratorio Telecomunicaciones I
Practica 1 Laboratorio Telecomunicaciones ISAWERS S.R.L.
 
Diseño de filtros digitales-IIRFASFASFASFASFASF.pptx
Diseño de filtros digitales-IIRFASFASFASFASFASF.pptxDiseño de filtros digitales-IIRFASFASFASFASFASF.pptx
Diseño de filtros digitales-IIRFASFASFASFASFASF.pptx
SANTOS400018
 
FILTROS DIGITALES
FILTROS DIGITALESFILTROS DIGITALES
FILTROS DIGITALES
Gustavo Salazar Loor
 
Filtros digitales.pptx
Filtros digitales.pptxFiltros digitales.pptx
Filtros digitales.pptx
JosueAscencio5
 
Filtros
FiltrosFiltros
Filtros
lvasquezvera
 
diseño de filtros digitales-2zfcz<cz<c<zcz<.pptx
diseño de filtros digitales-2zfcz<cz<c<zcz<.pptxdiseño de filtros digitales-2zfcz<cz<c<zcz<.pptx
diseño de filtros digitales-2zfcz<cz<c<zcz<.pptx
SANTOS400018
 
Procesamiento digital de señales fase_3_aplicaciones
Procesamiento digital de señales  fase_3_aplicacionesProcesamiento digital de señales  fase_3_aplicaciones
Procesamiento digital de señales fase_3_aplicaciones
Carlos Jove
 
Filtro digital pasa bajos
Filtro digital pasa bajosFiltro digital pasa bajos
Filtro digital pasa bajos
Rodrigo David Serrudo
 
DISEÑO Y ELECTRONICA ANALOGICA - FILTRO PASA BAJOS - LOW PASS FILTER
DISEÑO Y ELECTRONICA ANALOGICA - FILTRO PASA BAJOS - LOW PASS FILTERDISEÑO Y ELECTRONICA ANALOGICA - FILTRO PASA BAJOS - LOW PASS FILTER
DISEÑO Y ELECTRONICA ANALOGICA - FILTRO PASA BAJOS - LOW PASS FILTER
Fernando Marcos Marcos
 
Receptor de FM Basado en Software Radio (Paper)
Receptor de FM Basado en Software Radio (Paper)Receptor de FM Basado en Software Radio (Paper)
Receptor de FM Basado en Software Radio (Paper)
Enrique Monzo Solves
 
Filtros y oscilador de wien
Filtros y oscilador de wienFiltros y oscilador de wien
Filtros y oscilador de wien
Fernando Marcos Marcos
 
Ingeniera de control: Estabilidad relativa y compensadores
Ingeniera de control: Estabilidad relativa y compensadores Ingeniera de control: Estabilidad relativa y compensadores
Ingeniera de control: Estabilidad relativa y compensadores
SANTIAGO PABLO ALBERTO
 
PRACTICA : FILTROS ACTIVOS CON OPAM
PRACTICA : FILTROS ACTIVOS CON OPAMPRACTICA : FILTROS ACTIVOS CON OPAM
PRACTICA : FILTROS ACTIVOS CON OPAM
Alberto Mendoza
 
Practica Filtro pasa bajos
Practica Filtro pasa bajosPractica Filtro pasa bajos
Practica Filtro pasa bajos
Fernando Marcos Marcos
 

Similar a Capitulo5 (20)

Teoria ecualizacionadaptativalorenzodiaz
Teoria ecualizacionadaptativalorenzodiazTeoria ecualizacionadaptativalorenzodiaz
Teoria ecualizacionadaptativalorenzodiaz
 
Métodos de Diseño de Filtros FIR
Métodos de Diseño de Filtros FIRMétodos de Diseño de Filtros FIR
Métodos de Diseño de Filtros FIR
 
Diseño de filtros digitales-FIRXZFASFASFCZXCAS.pptx
Diseño de filtros digitales-FIRXZFASFASFCZXCAS.pptxDiseño de filtros digitales-FIRXZFASFASFCZXCAS.pptx
Diseño de filtros digitales-FIRXZFASFASFCZXCAS.pptx
 
Procesamiento Digital De Señales Filtro Pasa Altas 4to Orden - MATLAB
Procesamiento Digital De Señales Filtro Pasa Altas 4to Orden - MATLABProcesamiento Digital De Señales Filtro Pasa Altas 4to Orden - MATLAB
Procesamiento Digital De Señales Filtro Pasa Altas 4to Orden - MATLAB
 
Practica 1 Laboratorio Telecomunicaciones I
Practica 1 Laboratorio Telecomunicaciones IPractica 1 Laboratorio Telecomunicaciones I
Practica 1 Laboratorio Telecomunicaciones I
 
Diseño de filtros digitales-IIRFASFASFASFASFASF.pptx
Diseño de filtros digitales-IIRFASFASFASFASFASF.pptxDiseño de filtros digitales-IIRFASFASFASFASFASF.pptx
Diseño de filtros digitales-IIRFASFASFASFASFASF.pptx
 
FILTROS DIGITALES
FILTROS DIGITALESFILTROS DIGITALES
FILTROS DIGITALES
 
Filtros digitales.pptx
Filtros digitales.pptxFiltros digitales.pptx
Filtros digitales.pptx
 
Filtros
FiltrosFiltros
Filtros
 
diseño de filtros digitales-2zfcz<cz<c<zcz<.pptx
diseño de filtros digitales-2zfcz<cz<c<zcz<.pptxdiseño de filtros digitales-2zfcz<cz<c<zcz<.pptx
diseño de filtros digitales-2zfcz<cz<c<zcz<.pptx
 
Procesamiento digital de señales fase_3_aplicaciones
Procesamiento digital de señales  fase_3_aplicacionesProcesamiento digital de señales  fase_3_aplicaciones
Procesamiento digital de señales fase_3_aplicaciones
 
Filtro digital pasa bajos
Filtro digital pasa bajosFiltro digital pasa bajos
Filtro digital pasa bajos
 
DISEÑO Y ELECTRONICA ANALOGICA - FILTRO PASA BAJOS - LOW PASS FILTER
DISEÑO Y ELECTRONICA ANALOGICA - FILTRO PASA BAJOS - LOW PASS FILTERDISEÑO Y ELECTRONICA ANALOGICA - FILTRO PASA BAJOS - LOW PASS FILTER
DISEÑO Y ELECTRONICA ANALOGICA - FILTRO PASA BAJOS - LOW PASS FILTER
 
Filtro+digital
Filtro+digitalFiltro+digital
Filtro+digital
 
Receptor de FM Basado en Software Radio (Paper)
Receptor de FM Basado en Software Radio (Paper)Receptor de FM Basado en Software Radio (Paper)
Receptor de FM Basado en Software Radio (Paper)
 
Filtros y oscilador de wien
Filtros y oscilador de wienFiltros y oscilador de wien
Filtros y oscilador de wien
 
Ingeniera de control: Estabilidad relativa y compensadores
Ingeniera de control: Estabilidad relativa y compensadores Ingeniera de control: Estabilidad relativa y compensadores
Ingeniera de control: Estabilidad relativa y compensadores
 
Redes Neuronales
Redes NeuronalesRedes Neuronales
Redes Neuronales
 
PRACTICA : FILTROS ACTIVOS CON OPAM
PRACTICA : FILTROS ACTIVOS CON OPAMPRACTICA : FILTROS ACTIVOS CON OPAM
PRACTICA : FILTROS ACTIVOS CON OPAM
 
Practica Filtro pasa bajos
Practica Filtro pasa bajosPractica Filtro pasa bajos
Practica Filtro pasa bajos
 

Último

Porfolio de diseños de Comedores de Carlotta Design
Porfolio  de diseños de Comedores de Carlotta DesignPorfolio  de diseños de Comedores de Carlotta Design
Porfolio de diseños de Comedores de Carlotta Design
paulacoux1
 
etiqueta que se utiliza en un restaurante .pdf
etiqueta que se utiliza en  un restaurante  .pdfetiqueta que se utiliza en  un restaurante  .pdf
etiqueta que se utiliza en un restaurante .pdf
Vhope6
 
MAPAS MIXTOS DE LA EVOLUCIÓN DEL COMPUTADOR Y EL DISEÑO GRÁFICO
MAPAS MIXTOS DE LA EVOLUCIÓN DEL COMPUTADOR Y EL DISEÑO GRÁFICOMAPAS MIXTOS DE LA EVOLUCIÓN DEL COMPUTADOR Y EL DISEÑO GRÁFICO
MAPAS MIXTOS DE LA EVOLUCIÓN DEL COMPUTADOR Y EL DISEÑO GRÁFICO
MarianellaMalaveCazo
 
Movimiento Moderno en Venezuela Arquitectura
Movimiento Moderno en Venezuela ArquitecturaMovimiento Moderno en Venezuela Arquitectura
Movimiento Moderno en Venezuela Arquitectura
LeonardoDantasRivas
 
informecbdlp-240603151721-44655eeh2.docx
informecbdlp-240603151721-44655eeh2.docxinformecbdlp-240603151721-44655eeh2.docx
informecbdlp-240603151721-44655eeh2.docx
IsabellaCortes7
 
capitulo-18-sistema--706807-downloadable-2573126.pdf
capitulo-18-sistema--706807-downloadable-2573126.pdfcapitulo-18-sistema--706807-downloadable-2573126.pdf
capitulo-18-sistema--706807-downloadable-2573126.pdf
ProfesorCiencias2
 
Estilos de cajas Flexibles CSS-Flexbox-y-Grid.pdf
Estilos de cajas Flexibles CSS-Flexbox-y-Grid.pdfEstilos de cajas Flexibles CSS-Flexbox-y-Grid.pdf
Estilos de cajas Flexibles CSS-Flexbox-y-Grid.pdf
JosueJuanez1
 
DIA DE LA BANDERA PERUANA EL 7 DE JUNIO DE 1820
DIA DE LA BANDERA PERUANA EL 7 DE JUNIO DE 1820DIA DE LA BANDERA PERUANA EL 7 DE JUNIO DE 1820
DIA DE LA BANDERA PERUANA EL 7 DE JUNIO DE 1820
62946377
 
1x10.documento bueno para comunidades jefas y jefes de comunidades q les soli...
1x10.documento bueno para comunidades jefas y jefes de comunidades q les soli...1x10.documento bueno para comunidades jefas y jefes de comunidades q les soli...
1x10.documento bueno para comunidades jefas y jefes de comunidades q les soli...
Sarai747172
 
Arquitecto Cerro Larraín - Cerro Barón - Valparaíso
Arquitecto Cerro Larraín - Cerro Barón  - ValparaísoArquitecto Cerro Larraín - Cerro Barón  - Valparaíso
Arquitecto Cerro Larraín - Cerro Barón - Valparaíso
ArquitecturaClculoCe
 
Porfolio livings creados por Carlotta Design
Porfolio livings creados por Carlotta DesignPorfolio livings creados por Carlotta Design
Porfolio livings creados por Carlotta Design
paulacoux1
 
Propuesta de diseño de marca para Fred, muebles de diseño
Propuesta de diseño de marca para Fred, muebles de diseñoPropuesta de diseño de marca para Fred, muebles de diseño
Propuesta de diseño de marca para Fred, muebles de diseño
Mariano Salgado
 
Lectura. Reseña ilustrada, novela Albert Camus
Lectura.  Reseña ilustrada, novela Albert CamusLectura.  Reseña ilustrada, novela Albert Camus
Lectura. Reseña ilustrada, novela Albert Camus
RenataGrecia
 
La Arquitectura del Eclecticismo, por Karina
La Arquitectura del Eclecticismo, por KarinaLa Arquitectura del Eclecticismo, por Karina
La Arquitectura del Eclecticismo, por Karina
KarinaRodriguezG2
 
Teoría del Color para diseñadores y pintores
Teoría del Color para diseñadores y pintoresTeoría del Color para diseñadores y pintores
Teoría del Color para diseñadores y pintores
EduardoGM8
 
Patrimundi Recuperadora Bancaria en Cancun
Patrimundi Recuperadora Bancaria en CancunPatrimundi Recuperadora Bancaria en Cancun
Patrimundi Recuperadora Bancaria en Cancun
DianaArtemizaCP
 
Introduccion-a-la-vida-de-Johannes-Kepler.pptx
Introduccion-a-la-vida-de-Johannes-Kepler.pptxIntroduccion-a-la-vida-de-Johannes-Kepler.pptx
Introduccion-a-la-vida-de-Johannes-Kepler.pptx
albujarluisl
 
Museo de Arte Contemporáneo del Siglo XXI - HISTORIA DE LA ARQUITECTURA .pdf
Museo de Arte Contemporáneo del Siglo XXI - HISTORIA DE LA ARQUITECTURA .pdfMuseo de Arte Contemporáneo del Siglo XXI - HISTORIA DE LA ARQUITECTURA .pdf
Museo de Arte Contemporáneo del Siglo XXI - HISTORIA DE LA ARQUITECTURA .pdf
MarianaVillenaAyala
 
DIAGRAMA DE FLUJO.pptx : Ventas en linea
DIAGRAMA DE FLUJO.pptx : Ventas en lineaDIAGRAMA DE FLUJO.pptx : Ventas en linea
DIAGRAMA DE FLUJO.pptx : Ventas en linea
EduarRamos7
 
Desarrollo de habilidades de pensamiento (1).pdf
Desarrollo de habilidades de pensamiento (1).pdfDesarrollo de habilidades de pensamiento (1).pdf
Desarrollo de habilidades de pensamiento (1).pdf
marianamadronero578
 

Último (20)

Porfolio de diseños de Comedores de Carlotta Design
Porfolio  de diseños de Comedores de Carlotta DesignPorfolio  de diseños de Comedores de Carlotta Design
Porfolio de diseños de Comedores de Carlotta Design
 
etiqueta que se utiliza en un restaurante .pdf
etiqueta que se utiliza en  un restaurante  .pdfetiqueta que se utiliza en  un restaurante  .pdf
etiqueta que se utiliza en un restaurante .pdf
 
MAPAS MIXTOS DE LA EVOLUCIÓN DEL COMPUTADOR Y EL DISEÑO GRÁFICO
MAPAS MIXTOS DE LA EVOLUCIÓN DEL COMPUTADOR Y EL DISEÑO GRÁFICOMAPAS MIXTOS DE LA EVOLUCIÓN DEL COMPUTADOR Y EL DISEÑO GRÁFICO
MAPAS MIXTOS DE LA EVOLUCIÓN DEL COMPUTADOR Y EL DISEÑO GRÁFICO
 
Movimiento Moderno en Venezuela Arquitectura
Movimiento Moderno en Venezuela ArquitecturaMovimiento Moderno en Venezuela Arquitectura
Movimiento Moderno en Venezuela Arquitectura
 
informecbdlp-240603151721-44655eeh2.docx
informecbdlp-240603151721-44655eeh2.docxinformecbdlp-240603151721-44655eeh2.docx
informecbdlp-240603151721-44655eeh2.docx
 
capitulo-18-sistema--706807-downloadable-2573126.pdf
capitulo-18-sistema--706807-downloadable-2573126.pdfcapitulo-18-sistema--706807-downloadable-2573126.pdf
capitulo-18-sistema--706807-downloadable-2573126.pdf
 
Estilos de cajas Flexibles CSS-Flexbox-y-Grid.pdf
Estilos de cajas Flexibles CSS-Flexbox-y-Grid.pdfEstilos de cajas Flexibles CSS-Flexbox-y-Grid.pdf
Estilos de cajas Flexibles CSS-Flexbox-y-Grid.pdf
 
DIA DE LA BANDERA PERUANA EL 7 DE JUNIO DE 1820
DIA DE LA BANDERA PERUANA EL 7 DE JUNIO DE 1820DIA DE LA BANDERA PERUANA EL 7 DE JUNIO DE 1820
DIA DE LA BANDERA PERUANA EL 7 DE JUNIO DE 1820
 
1x10.documento bueno para comunidades jefas y jefes de comunidades q les soli...
1x10.documento bueno para comunidades jefas y jefes de comunidades q les soli...1x10.documento bueno para comunidades jefas y jefes de comunidades q les soli...
1x10.documento bueno para comunidades jefas y jefes de comunidades q les soli...
 
Arquitecto Cerro Larraín - Cerro Barón - Valparaíso
Arquitecto Cerro Larraín - Cerro Barón  - ValparaísoArquitecto Cerro Larraín - Cerro Barón  - Valparaíso
Arquitecto Cerro Larraín - Cerro Barón - Valparaíso
 
Porfolio livings creados por Carlotta Design
Porfolio livings creados por Carlotta DesignPorfolio livings creados por Carlotta Design
Porfolio livings creados por Carlotta Design
 
Propuesta de diseño de marca para Fred, muebles de diseño
Propuesta de diseño de marca para Fred, muebles de diseñoPropuesta de diseño de marca para Fred, muebles de diseño
Propuesta de diseño de marca para Fred, muebles de diseño
 
Lectura. Reseña ilustrada, novela Albert Camus
Lectura.  Reseña ilustrada, novela Albert CamusLectura.  Reseña ilustrada, novela Albert Camus
Lectura. Reseña ilustrada, novela Albert Camus
 
La Arquitectura del Eclecticismo, por Karina
La Arquitectura del Eclecticismo, por KarinaLa Arquitectura del Eclecticismo, por Karina
La Arquitectura del Eclecticismo, por Karina
 
Teoría del Color para diseñadores y pintores
Teoría del Color para diseñadores y pintoresTeoría del Color para diseñadores y pintores
Teoría del Color para diseñadores y pintores
 
Patrimundi Recuperadora Bancaria en Cancun
Patrimundi Recuperadora Bancaria en CancunPatrimundi Recuperadora Bancaria en Cancun
Patrimundi Recuperadora Bancaria en Cancun
 
Introduccion-a-la-vida-de-Johannes-Kepler.pptx
Introduccion-a-la-vida-de-Johannes-Kepler.pptxIntroduccion-a-la-vida-de-Johannes-Kepler.pptx
Introduccion-a-la-vida-de-Johannes-Kepler.pptx
 
Museo de Arte Contemporáneo del Siglo XXI - HISTORIA DE LA ARQUITECTURA .pdf
Museo de Arte Contemporáneo del Siglo XXI - HISTORIA DE LA ARQUITECTURA .pdfMuseo de Arte Contemporáneo del Siglo XXI - HISTORIA DE LA ARQUITECTURA .pdf
Museo de Arte Contemporáneo del Siglo XXI - HISTORIA DE LA ARQUITECTURA .pdf
 
DIAGRAMA DE FLUJO.pptx : Ventas en linea
DIAGRAMA DE FLUJO.pptx : Ventas en lineaDIAGRAMA DE FLUJO.pptx : Ventas en linea
DIAGRAMA DE FLUJO.pptx : Ventas en linea
 
Desarrollo de habilidades de pensamiento (1).pdf
Desarrollo de habilidades de pensamiento (1).pdfDesarrollo de habilidades de pensamiento (1).pdf
Desarrollo de habilidades de pensamiento (1).pdf
 

Capitulo5

  • 1. 5. FILTROS DIGITALES Los filtros digitales son sistemas son usados para modificar el espectro de una señal, mediante el uso de hardware digital como bloque funcional básico (un DSP o un FPGA , por ejemplo). Sus características los hacen apropiados un amplio campo de aplicaciones, entre las que se encuentra compresión de datos, procesamiento de señales biomédicas, procesamiento digital de audio, procesamiento de voz o procesamiento de imágenes. Se utilizan, al igual que los filtros análogos, para acondicionar señales según características específicas, extraer información de ellas o separar dos o más señales previamente combinadas. Consisten fundamentalmente en un algoritmo mediante el cual una señal digital o secuencia numérica denominada “entrada” se transforma en una segunda secuencia de números denominada señal digital de salida. Los filtros digitales se caracterizan, en términos generales, por ser sistemas predecibles , flexibles, simulables, consistentes y precisos. Por una parte, es posible cambiar sus especificaciones mediante la reprogramación, sin la adición de componentes discretos como capacitores, resistores o bobinas (normalmente con un tamaño considerable y con variaciones en el funcionamiento dependientes de la temperatura o la humedad). De otro lado, su carácter digital permite calcular y simular su repuesta usando procesadores de uso general, y también implementar topologías no realizables mediante el uso de componentes físicos convencionales. En síntesis, estos sistemas incorporan las ventajas propias de los procesadores digitales, al filtraje se señales, si se quiere en tiempo real. A pesar de sus indiscutibles ventajas, los filtros digitales tienen una limitación inherente, que consiste en la imposibilidad de cumplir con los requerimientos del criterio de Nyquist de un ancho de banda estrictamente limitado previo al procesamiento digital de datos muestreados (ya sea un conversor A/D o un filtro basado en DSP). Se hace entonces
  • 2. necesario preceder el bloque de procesamiento digital de un filtro pasabanda análogo, como una parte obligatoria del sistema para prevenir el aliasing, que aparece cuando el ancho de banda de la señal de entrada es mayor que la mitad de la frecuencia de muestreo. Esto se puede visualizar claramente en la sección “ “Functional Block Diagram” del manual SLAS014 de la interfaz de circuito análoga [1] donde se observa un bloque análogo de prefiltrado que puede ser programado mediante un valor determinado en el registro de control del AIC. Por esta razón, los filtros digitales no son siempre es la mejor solución. [2] Al momento de escoger los filtros que formarán parte de una determinada aplicación, es necesario considerar aspectos como el costo y utilización de recursos del sistema (conversión, carga en el procesador, memoria, inicialización y consumo de potencia) propios de una implementación digital y compararlos con su contraparte análoga. Esto se justifica, ya que en la actualidad se dispone de filtros análogos integrados dedicados y matched op amps de alto desempeño, que permiten realizaciones efectivas de filtros activos, haciendo atractivo el empleo de diseños análogos en algunas aplicaciones. El problema de ingeniería se resuelve una vez el diseño análogo cuente con componentes de bajo ruido. El diseño de filtros digitales normalmente involucra una etapa de aproximación, en la que se genera una función de transferencia que satisface las especificaciones de la aplicación, y en donde normalmente se estudian respuestas tanto en el dominio de la frecuencia como del tiempo. Luego se lleva a cabo la realización, en la que la función de transferencia se expresa en términos de una topología o redes de filtros, según las características del problema y la disponibilidad de recursos en el procesador. Los dos pasos anteriores parten de la base de un sistema de precisión infinita, y es por eso que se debe tener una etapa de implementación, relacionada con el hardware disponible y las rutinas de programación del procesador seleccionado. Este, por tener una precisión finita, obliga al diseñador a estudiar los efectos de los errores matemáticos en la respuesta del filtro. En lo referente a este trabajo de grado, las etapas de aproximación y realización se ejecutan por medio de MATLAB y la etapa de implementación se fundamenta en las herramientas de desarrollo del DSK.
  • 3. Una amplia variedad de filtros digitales es descrita por medio de una ecuación de diferencias lineal de coeficientes constantes, que relaciona la secuencia de entrada del filtro x(n) y la secuencia de salida del mismo y(n): ∑ ∑ = = −+−= N k M k kk knxbknyany 0 0 )()()( ( 5-1) Estos sistemas pueden ser representados por su secuencia de respuesta al impulso h(k) donde k=0,1,2,.., y la señal de salida se obtiene a partir de operaciones de suma y convolución de dicha secuencia con la señal digital de entrada. En términos de su repuesta al impulso los filtros digitales se clasifican de dos formas: FIR (Finite Impulse Response) o filtros de respuesta finita al impulso; e IIR (Infinite Impulse Response) o filtros de respuesta infinita al impulso, que deben su comportamiento a la existencia de lazos de realimentación en su estructura. Este será el tema de estudio de las siguientes secciones. 5.1. FILTROS FIR 5.1.1. CONCEPTOS BÁSICOS El modelo matemático de los filtros FIR también se fundamenta la ecuación de diferencias (5-1) , pero con la particularidad de que todos los coeficientes ak son iguales a cero. Se tiene entonces que la ecuación que los describe es función del conjunto de coeficientes bk y de la secuencia de entrada x(n). ∑ = −= M k k knxbny 0 )()( , ( 5-2) donde M+1 corresponde a la longitud del filtro. Este sistema considera sólo las ultimas M+1 muestras de la señal de entrada y las pondera mediante los coeficientes bk. A este sistema se le denomina FIR, ya que su respuesta al impulso unitario (dada por los coeficientes bk) es finita.
  • 4. Su diseño requiere la selección de la secuencia que mejor representa la respuesta a impulso de un filtro ideal. Los filtros FIR son siempre estables y son capaces de tener una respuesta lineal en fase. Frente a los filtros IIR presentan la desventaja de requerir un orden mucho mayor. La salida del filtro es una suma finita de la entrada presente y las M entradas previas al filtro. En los sistemas lineales se tiene que la salida y[n] puede expresarse como la convolución de la señal de entrada con la función de respuesta al impulso del filtro. ∑ = −∗= M k knxkhny 0 )()()( ( 5-3) Comparando esta última ecuación con (5-2) se tiene que )(khbk = ( 5-4) y por lo tanto los coeficientes del filtro son equivalentes a la respuesta al impulso del filtro. Al aplicar un impulso a la entrada del sistema, se obtiene a la salida una respuesta de longitud limitada. Cuando se describe un sistema causal con respuesta finita al impulso, se usan normalmente estructuras no-recursivas. En tales casos la función del sistema tiene la forma ∑ − = − = 1 0 )()( N n n znhzH ( 5-5) donde se tiene que : ∑ − = − == 1 0)( )( )( N n n n zb zX zY zH ( 5-6) siendo x(n) la entrada, y(n) la salida h(n) la función de respuesta al impulso y X(z) , Y(z) y H(z) sus respectivas transformadas Z. De (5-5) se tiene que H(z) es un polinomio de orden N-1, que tiene polos en z=0 y N-1 ceros que pueden estar en cualquier parte del plano z [3]. Esta ecuación puede ser representada mediante la estructura de la figura siguiente y es
  • 5. conocida como Forma Directa (los coeficientes del filtro se pueden leer directamente de la ecuación de diferencias). Las ramas marcadas con z-1 corresponden a un retraso de un periodo de muestreo en la ecuación (5-3) y a una multiplicación por z-1 en (5-4). En la sección 4.5 de [3] se discuten arquitecturas alternativas, al igual que consideraciones de linealidad de fase y simetría. De momento basta con aclarar que la respuesta al impulso de los sistemas FIR con fase lineal presentan la característica : )1()( nNhnh −−= ( 5-7) Figura 5-1. Forma Directa de un Sistema Causal y con Respuesta Finita al Impulso. 5.1.2. DISEÑO DE FILTROS FIR CON MATLAB Este proceso corresponde a la etapa de aproximación descrita previamente en la introducción de este capítulo. Los pasos que normalmente se sigue son [4]: • Escoger una respuesta ideal, normalmente en el dominio de la frecuencia. • Escoger un tipo particular de filtro. • Escoger un criterio de medida para valorar la aproximación. • Definir un método para seleccionar la mejor aproximación según el criterio de aproximación. Estos pasos son repetidos asta encontrar unas especificaciones de filtro que se ajusten al problema inicial. Es posible que en esta etapa del diseño se quiera redefinir la respuesta ideal, el tipo de filtro o el criterio de medida. De cualquier manera, MATLAB ofrece un conjunto de rutinas y funciones que permiten agilizar estos pasos, y eso es justamente lo que se busca mostrar en este capítulo.
  • 6. 5.1.2.1. FIR1: Diseño de filtros FIR mediante el método de ventanas. El script labfir1.m ofrece una rutina interactiva para el diseño de filtros FIR pasabajo y los pasabanda. Los argumentos de esta función son fundamentalmente el orden del filtro N y la frecuencia normalizada de corte Wn, definida con en criterio 0<Wn<1, donde 1 corresponde a la mitad de la frecuencia de muestreo (Frecuencia Nyquist). Su formato general es : »B=FIR1(N,Wn,type,window); »B=FIR1(N,Wn). Calcula y almacena en B N+1 coeficientes de un filtro FIR pasabajos. »B=FIR1(N,Wn,'high') usa el parámetro ‘high’ para diseñar filtros FIR pasaaltos. N debe ser par en este caso particular. Al momento de diseñar filtros pasabanda o atrapabanda con la instrucción fir1, se debe definir Wn como un vector de dos elementos Wn=[W1 W2], con la restricción 0<W1<W<W2<1. »B=FIR1(N,Wn). Calcula y almacena en B los N+1 coeficientes de un filtro FIR pasabanda. »B=FIR1(N,Wn,'stop'); usa el parámetro ‘stop’ para diseñar filtros FIR pasaaltos. N también debe ser par en este caso. Se usa por default la ventana Hamming. Sin embargo, se puede usar ventanas Boxcar (rectangular), Hanning, Bartlett, Blackman, Kaiser and Chebyshev. El comando se escribe así : »B=FIR1(N,Wn,boxcar(N+1)) ; 5.1.2.2. FIR2 : Filtros FIR con método de ventanas y forma arbitraria. Al igual que FIR1, permite el diseño de filtros FIR usando el método de las ventanas, pero con forma de filtro arbitraria. Los parámetros que tiene en común con FIR1 funcionan
  • 7. exactamente igual, razón por la cual sólo se discute en esta sección el significado de los vectores F y M. Su estructura general es : » B=fir2(N,F,M,window); En el vector F se especifican las frecuencias “significativas” dentro del filtro, es decir, aquellas que corresponden a un punto de corte o que simplemente tienen alguna importancia en el diseño que se busca implementar. Se escriben tambien como fracciones de la frecuencia de Nyquist (fs/2) y por tanto sus valores responden a la condición 0=f(1)<f(2)<..f(k)=1.0, para un vector de k elementos de frecuencia. El vector M contiene los valores de magnitud correspondientes a cada una de las frecuencias especificadas en el vector F, por lo que F y M deben tener las mismas dimensiones. Se puede visualizar la repuesta en frecuencia del filtro especificado con el comando plot(F,M). »B=fir2(N,F,M,npt,lap,window)permite a fir2 interpolar la respuesta frecuencial deseada (F,M) con npt puntos (por defecto, npt=512). Si dos valores sucesivos de F son iguales, se crea una región de lap puntos alrededor de este punto (por defecto, lap=25). 5.1.2.3. FIRLS : FIR de Fase Lineal con minimización de error por mínimos cuadrados. Los argumentos de entrada son el orden del filtro N, y dos vectores F y M, cuyo formato es un poco diferente de los definidos para fir2. Su estructura general es » B=firls(N,F,M); Los coeficientes obtenidos corresponden a la mejor aproximación a la respuesta en frecuencia descrita por (F,M), de acuerdo con el criterio de mínimos cuadrados y con coeficientes reales y simétricos característicos de los sistemas de fase lineal. El tema de las aproximaciones óptimas para filtros FIR se desarrolla ampliamente en la sección 7.6 de [5]. F es un vector que indica los límites de las bandas de frecuencia en parejas (por tanto el tamaño de F debe ser par), y en orden ascendente entre 0 y 1. M es un vector del mismo
  • 8. tamaño que F que indica la magnitud deseada para cada banda de frecuencias. La respuesta deseada es la línea que conecta los puntos (F(k),M(k)) y (F(k+1),M(k+1)) para k impar. Las bandas de frecuencia entre F(k+1) y F(k+2) para k impar son tratadas por firls como bandas de transición o de “no importa”. También existe un argumento opcional, el vector W cuyo tamaño es la mitad de F. Los elementos de W asignan un factor de error para cada una de las bandas especificadas en F. B=FIRLS(N,F,M,'Hilbert'), FIRLS(N,F,M,W,'Hilbert'), B=FIRLS(N,F,M,'differentiator') y B=FIRLS(N,F,M,W,'differentiator') quedan para ser estudiados por el lector. 5.1.2.4. REMEZORD : Estimador de orden para FIR. Se usa para le especificación de parámetros de filtros pasabajo, pasaalto, pasabanda, multibanda. Los argumentos de entrada son el orden del filtro dos vectores F es un vector que contiene las frecuencias de corte y está definido en Hertz ; su magnitud es el doble del vector M más dos y por lo tanto siempre es par. M contiene la magnitud para cada banda. DEV es un vector que contiene el valor de ripple máxmio permitido para cada banda. Fs es la frecuencia de muestreo del sistema. La instrucción se escribe así: » [N,Fo,Mo,W] = REMEZORD(F,M,DEV,Fs) Los valores calculados son el orden N aproximado del filtro, límites de las bandas en frecuencia normalizada Fo, magnitudes de cada banda Mo, y el vector de error permitido para cada banda. y corresponden a la mejor aproximación a la respuesta en frecuencia, de acuerdo con el criterio minimax. Estos valores, al ser incluidos en la instrucción REMEZ, generan los coeficientes de un filtro FIR que se aproxima a la respuesta deseada en frecuencia, descrita por (F,M). Es necesario tener en cuenta dos aspectos relacionados con esta función. El orden es normalmente menor al valor de orden correcto para implementar un filtro específico. En caso de no tener una respuesta adecuada con el valor N generado pro remez se recomienda implementar un filtro de orden N= N+1 o N+2.
  • 9. 5.1.2.5. REMEZ: Diseño de Filtros FIR Óptimos Equirripple (Parks- McClellan) Los argumentos de entrada son el orden del filtro dos vectores F es un vector que contiene las frecuencias normalizadas de corte, es decir, 0<F(0)< F(1)< ... < F(k)<1. Tiene la misma longitud que el vector M, que a su vez contiene la magnitud para cada banda. DEV es un vector que contiene el valor de ripple máxmio permitido para cada banda. Fs es la frecuencia de muestreo del sistema. La instrucción se escribe así: » B = REMEZ(N,F,M) Se calcula y se almacena en la variable B un N+1 coeficientes de un filtro FIR (reales y simétricos), con la mejor aproximación a la respuesta especificada según el criterio minimax [5]. La respuesta de este filtro se aproxima a la respuesta deseada del filtro, obtenida de trazar una recta desde (F(k),M(k)) hasta (F(k+1),M(k+1)) para k impar. Se minimiza el máximo error B=REMEZ(N,F,M,W) permite enfatizar la minimización de error en cada banda según el valor asignado en W para cada una de ellas. La utilización de B=REMEZ(N,F,M,'differentiator'), B=REMEZ(N,F,M,W,'differentiator'), B=REMEZ(N,F,M,'Hilbert'), B=REMEZ(N,F,M,W,'Hilbert'), va por cuenta del interesado. 5.1.3. IMPLEMENTACIÓN DE FILTROS FIR EN EL ‘C50 Una vez conocida la estructura básica de los filtros FIR, el problema de la implementación en un DSP se convierte en la construcción de un algoritmo que permita hacer los cálculos pertinentes. En aplicaciones de procesamiento digital se señales en tiempo real, es necesario considerar la capacidad el procesador en términos de velocidad de ejecución (ciclo de máquina) y la disponibilidad de un conjunto de instrucciones que permita llevar a cabo esta implementación. En la mayoría de los casos el problema consiste en desarrollar con suficiente velocidad el proceso de convolución de un conjunto de muestras de la señal, con un conjunto de valores previamente definidos.
  • 10. Tomando como punto de partida la ecuación (5-3), se puede inferir que es necesario disponer de un espacio en la memoria del DSP para almacenar los M+1 coeficientes del filtro, que han sido obtenidos en la etapa de diseño del filtro y también un espacio para las M+1 muestras de la señal que intervienen en cada ciclo (cada periodo de muestreo) en el cálculo de la misma ecuación. Teniendo en cuenta la forma en que se ejecutan instrucciones de multiplicación y desplazamiento típicas de las operaciones de convolución el los procesadores TMS320C50, se recomienda disponer los datos en memoria de la siguiente forma [6] Figura 5-2. Esquema de almacenamiento para el filtro FIR basado en el lazo. Se puede implementar el algoritmo de los filtros FIR utilizando las instrucciones LTD y MPY [6]. Por ejemplo : LTD XLAST MPY H1 XLAST carga el registro temporal TREG0 con los contenidos de la dirección que corresponde a XLAST. Suma el producto de la multiplicación anterior (PREG) al acumulador, según el contenido de los bits PM. Finalmente desplaza el dato en XLAST a la siguiente posición (superior) de memoria. MPY multiplica los contenidos de TREG0 (XLAST) con los contenidos de H1 [6].
  • 11. Un segmento de código basado en este par de instrucciones requeriría bastantes líneas de código (espacio en memoria de programa) y sería poco práctico para la implementación de filtros de orden relativamente grande. El segmento de código encargado de filtrar sería el siguiente (se supone que ya se inicializó el sistema y se han definido el vector de interrupciones y todo lo que haga falta): RECEIVE : LDP #XN ; CLRC INTM ; Captura de dato del AIC LAMM DRR ; y almacenamiento en XN SACL XN ; ZAP ; Cero ACC y PREG LT XLAST ; Primera multiplicacion MPY H79 ; No desplazamiento ************************************************************ * Se repite el mismo segmento para cada coeficiente, desde * * LT XNM78, MPY H78 hasta LT XNM2, MPY H2, es decir falta * * agregar 152 líneas de código ! ! ! * ************************************************************ LTD XNM1 ; TREG = XNM1 = X(N-1) MPY H1 ; TREG*H1 LTD XN ; TREG = XNM = X(N) MPY H0 ; TREG*H0 APAC ; (PREG)+ACC SACH OUTPUT,1 ;(ACC)->OUTPUT sin bit signo LACC OUTPUT ; OUTPUT->ACC SFL AND #0fffc ; Ultimos bits al AIC =0 SAMM DXR ; Escribir en reg de X-mision RETE ; Volver a esperar otra muestra Figura 5-3. Rutina de programación de un filtro FIR usando LTD y MPY. Una alternativa más eficiente utilizaría instrucciones de direccionamiento indirecto para implementar la ecuación del filtro FIR, esto gracias a las mejoras en diseño y a la
  • 12. disponibilidad de instrucciones más poderosas. El código tendría más o menos las siguientes instrucciones : MAR *,AR0 ; AR0 es el AR actual RECEIVE : LDP #XN ; CLRC INTM ; Captura de dato en el AIC LAMM DRR ; y almacenamiento en XN SACL XN ; LAR AR0,#XLAST ; Definicion de LAR AR1,#H79 ; apuntadores ZAP ; Cero ACC y PREG LT *-,AR1 ; Primera multiplicacion MPY *-,AR0 ; No desplazamiento LAZO : LTD *,AR1 ; AR0->TREG, 1->ARP MPY *-,AR0 ; Hxx*TREG , 0->ARP BANZ LAZO ; Si (AR0) no cero : (AR0)-1 -> AR0 APAC ; (PREG)+ACC SACH OUTPUT,1 ; LACC OUTPUT ; SFL AND #0fffc ; SAMM DXR ; RETE ; Volver y esperar otra muestra Figura 5-4. Programación de un filtro FIR usando un “loop” y direccionamiento indirecto. Este segmento de código resulta mucho más compacto y controla por si mismo el direccionamiento de los factores (coeficientes muestras de la señal), liberando al programador de esa tarea. La convolución está a cargo nuevamente de las instrucciones LTD y MPY. Se recomienda leer la instrucción BANZ y el direccionamiento indirecto. El esquema de memoria utilizado en este caso es el siguiente :
  • 13. Figura 5-5. Esquema de almacenamiento para el filtro FIR usando un lazo La rutina que se escribe a continuación utiliza la instrucción MACD, encargada de y sumar al acumulador el producto anterior (según la definición de los bits PM), multiplicar un valor de memoria de datos (dma) por un valor de memoria de programa. En el caso de que la dma esté la RAM del DSP, copia el contenido del dma a la dirección inmediatamente superior, lo que corresponde a una multiplicación por z-1 o un retraso en el tiempo. MACD, en resumen, es una operación de tres-ciclos que realiza las funciones que se presentan al ejecutar las instrucciones LTD y MPY, con la ventaja de que al estar incluida en un ciclo de repetición (Ver RPT y RPTZ en (Manual de Usuario C50) se convierte en una operación de multiplicación/acumulación de ciclo-único (User manual, página 3-9). Cada “tab” del filtro se calcula en aproximadamente 50 ns. Este procedimiento es más eficiente cuando el orden del filtro es mayor que tres. RECEIVE: LDP #XN ; CLRC INTM ;Habilita int’s para debugger LAMM DRR ; Captura un dato del AIC y
  • 14. SACL XN ; lo guarda en XN LAR AR0,#XNLAST ;direccion(XLAST)->AR0 ZAP ;Cero ACC y PREG MAR *,AR0 ; AR0 es AR activo RPT #80 ; repite el cálculo 81 veces MACD #h0,*- ; por toda la tabla de coef’s. APAC ; Acumula el ultimo producto SACH OUTPUT,1 ; LACC OUTPUT ; SFL ; Preparar el resultado AND #0fffc ; SAMM DXR ; Enviar por puerto de salida RETE ; Volver y esperar otra muestra Figura 5-6. Programación de un filtro FIR usando un lazo y direccionamiento indirecto. Para que se pueda utilizar todo el potencial de la instrucción MACD se debe tener un esquema de almacenamiento en memoria apropiado, descrito por la siguiente figura : Figura 5-7. Esquema de almacenamiento para el filtro FIR basado en la instrucción MACD
  • 15. Cabe notar que las rutinas descritas en estos segmentos de código están incluidas como parte del servicio de la interrupción RECEIVE, que debe estar definida en algún lugar del código correspondiente. 5.2. FILTROS IIR 5.2.1. CONCEPTOS BÁSICOS Los conceptos utilizados en el estudio de los filtros FIR pueden ser aprovechados para los filtros IIR. El punto de partida nuevamente es la ecuación de diferencias lineal de coeficientes constantes (5-1) ∑ ∑ = = −+−= N k M k kk knxbknyany 0 0 )()()( ( 5-8) Pero en este caso por lo menos uno de los coeficientes ak no es cero. Así, se tiene que la transformada z de la respuesta al impulso unitario de la función de transferencia es : ∑ ∑ = − = − − == N k k k M k k k za zb zX zY zH 0 0 1 )( )( )( ( 5-9) siendo x(n) la entrada, y(n) la salida h(n) la función de respuesta al impulso y X(z) , Y(z) y H(z) sus respectivas transformadas Z. La ecuación (5-9) puede ser implementada de diferentes formas. Las más utilizadas y estudiadas son la Forma Directa, la Forma de Cascada y la Forma Paralela. Su desarrollo se observa en la sección de implementación en el DSK[3]. 5.2.2. DISEÑO DE FILTROS IIR CON MATLAB Existe una amplia variedad de funciones para calcular los coeficientes de un filtro IIR, por medio de MATLAB. Se tienen herramientas que calculan los parámetros apropiados según la aplicación y otras que usan esta información para calcular los coeficientes.
  • 16. 5.2.2.1. Funciones para determinar el orden de un filtro determinado. Todas estas funciones están incorporadas en MATLAB. En el caso de quererse un filtro análogo de cualquiera de estos tipos, se agrega el argumento ‘s’ como último argumento (con todo y comillas). Tienen además la misma estructura y usan los mismos argumentos de entrada. »[N, Wn] = función(Wp, Ws, Rp, Rs) Las especificaciones de diseño son : Wp : Frecuencia de pasabanda (Banda de paso normalizada 0<W<Wp) Ws : Frecuencia de rechazabanda (Banda de rechazo normalizada Ws<W<1) Rp : Máxima atenuación permitida en pasabanda. Rs : Mínima atenuación deseada en rechazabanda. N : Orden mínimo calculado para el filtro. Sirve de argumento para la función de cálculo de coeficientes correspondiente. Wn : Frecuencia natural. Parámetro de entrada necesario para que el filtro calculado mediante la función correspondiente cumpla con las especificaciones del diseño. Las funciones consideradas en este documento son : »[N, Wn] = buttord(Wp, Ws, Rp, Rs); »[N, Wn] = cheb1ord(Wp, Ws, Rp, Rs) ; »[N, Wn] = cheb2ord(Wp, Ws, Rp, Rs) ; »[N, Wn] = ellipord(Wp, Ws, Rp, Rs) ; 5.2.2.2. Funciones para calcular los coeficientes de un filtro determinado. Para el diseño de filtros Butterworth pasabajos y pasaaltos se tienen las instrucciónes »[B,A] = butter(N, Wn); y »[B,A] = butter(N, Wn, ‘high’);
  • 17. que almacenan el B y en A los N+1 coeficientes para la implementación de la función de transferencia deseada. Si Wn = [W1 W2] con 0<W1<W2<1 , butter calcula los coeficientes para un pasabanda y un atrapabanda mediante los comandos »[B,A] = butter(N, Wn); y »[B,A] = butter(N, Wn, ‘stop’); El funcionamiento y los parámetros de las instrucciones para los filtros Chebishev tipos I y II son muy similares a los de butter, salvo por R (dB’s de ripple en la banda de paso) . »[B,A] = cheby1(N, R, Wn) ; y »[B,A] = cheby2(N, R, Wn) ; Una vez que se tienen los parámetros N y Wn del filtro Elíptico, se agrega la información del ripple de pasabanda Rp y el de rechazabanda Rs, según el siguiente formato : »[B,A] = ellipord(N, Rp, Rs, Wn) ; 5.2.2.3. YULEWALK : Filtro recursivo mediente el método de mínimos cuadrados. Calcula un filtro recursivode orden N que cumpla con la ecuación (5-9), de tal forma que este se ajuste a la respuesta en frecuencia descrita por los vectores F y M. Su sintaxis es »[B,A] = yulewalk(N,F,M) y la definición de sus parámetros es idéntica a la de la función FIR2, por ejemplo. 5.2.3. IMPLEMENTACIÓN DE FILTROS IIR EN EL ‘C50 Se tienen en cuenta en esta sección varios de los conceptos manejados en la 5.1.3 . Se presenta en esta sección una descripción de las formas más usadas en la implementación de filtros IIR.
  • 18. 5.2.3.1. Forma Directa I y Forma Directa II Corresponde a la representación de la ecuación (5-8) y se muestra en la siguiente figura. Se denomina Forma Directa I por razones idénticas a la Forma Directa de los filtros FIR : los coeficientes de las ramas de la red pueden obtenerse directamente de la ecuación de diferencias y su diagrama de flujo se muestra en la siguiente figura : Figura 5-8. Filtro IIR de Forma Directa Se supone que M=N pero en caso de no existir tal igualdad, se hace igual a cero las transmitancias correspondientes en las ramas en que sea necesario. Esta arquitectura puede interpretarse como dos redes en cascada, una de ellas encargada de representar los ceros del filtro y la otra sus polos. En la Forma Directa I puede cambiarse el orden de las etapas sin alterar el funcionamiento global del sistema, y esto se debe a que se trata de un sistema lineal invariante en el tiempo. Este es el punto de partida para la Forma Directa II, ya que una vez cambiado el orden de las etapas de ceros y polos, el diagrama de flujo correspondiente queda :
  • 19. Figura 5-9. Filtro IIR, Forma Directa con Intercambio de las Redes de Ceros y Polos Dado que las líneas de retraso comparten la misma entrada, puede dejarse sólo una de ellas, llegando a las siguiente representación : Figura 5-10. Filtro IIR en Forma Directa II Esta topología requiere un menor número de ramas de retraso (por eso pertenece a las redes canónicas), lo que significa algoritmos más eficientes al momento de programar el filtro en términos de uso de memoria y modularidad. Un ejemplo de ello se tiene en la siguiente figura, donde se muestra un filtro de Segundo Orden, sobre el cual se hace el desarrollo del ejemplo de programación .
  • 20. Figura 5-11. Filtro IIR Forma Directa de Segundo Orden Las ecuaciones de diferencias que se utilizan en esta rutina son : ]2[]1[][][ 21 −+−+= ndandanxnd ( 5-10) ]2[]1[][][ 210 −+−+= ndbndbndbny ( 5-11) donde los d[n-k] corresponden a nodos de retraso según el valor de k y son productos intermedios, derivados de la arquitectura de Forma Directa II. El almacenamiento en memoria de cada uno de estos valores se realiza según la siguiente figura y es un caso particular del almacenamiento para filtros de orden mayor. Obedece a la facilidad que ofrece la instrucción LTD de sumar al acumulador el producto previo y desplazar el operando una posición de memoria. Obsérvese que los valores DN sólo se sobreesciben cuando se ha calculado el producto con su coeficiente B correspondiente. Figura 5-12. Almacenamiento de Nodos de Retraso. Filtro IIR de Segundo Orden
  • 21. El código que implementa este algoritmo puede usar las operaciones LTD y MPY. Para órdenes mayores que tres, resulta ventajoso implementar la rutina con MCAD. RECEIVE : LDP #XN ; CLRC INTM ; Captura de dato del AIC LAMM DRR ; y almacenamiento en XN SACL XN ; LT DNM1 MPY A2 ; A1*DNM1 -> PREG LTA DNM2 ; DNM2->TREG0 A1*DNM1->ACC MPY A2 ; A2*DNM2 -> PREG APAC ; A2*DNM2 + A1*DNM1 -> ACC SACH DN,1 ; DN= A2*DNM2 + A1*DNM1 ZAC ; Cero ACC MPY B2 ; B2*DNM2 -> PREG LTD DNM1 ; Producto, Suma y DNM1->DNM2 MPY B1 ; A2*DNM2 -> PREG LTD DN ; Producto, Suma y DN->DNM1 MPY B0 ; B0*DN -> PREG APAC ; B0*DN +B1*DNM1 +B1*DNM1->ACC SACH OUTPUT,1 ;(ACC)->OUTPUT sin bit signo LACC OUTPUT ; OUTPUT->ACC SFL AND #0fffc ; Ultimos bits al AIC =0 SAMM DXR ; Escribir en reg de X-mision RETE ; Volver a esperar otra muestra Figura 5-13. IIR Forma Directa II implementada con LTD (LTA) y MPY 5.2.3.2. Forma Cascada Nuevamente se parte de la ecuación de respuesta al impulso de los filtros IIR, cuya transformada z se escribe de la forma :
  • 22. ∑ ∑ = − = − − == N k k k M k k k za zb zX zY zH 0 0 1 )( )( )( .( 5-12) Esta ecuación puede reescribirse en términos de una productoria de factores cuadráticos, según la siguiente ecuación : ∏= −− −− −− ++ == 2/ 1 2 2 1 1 2 2 1 10 1)( )( )( N k kk kkk zz zzk zX zY zH αα βββ ( 5-13) así, la ecuación del filtro IIR es realizable como una sucesión de etapas en cascada. Se tiene a continuación un ejemplo de código assembler para esta topología. Se recomienda ver la figura 18 para seguir el desarrollo de la rutina: RECEIVE : LDP #XN ; CLRC INTM ; Captura de dato del AIC LAMM DRR ; y almacenamiento en XN SACL XN ; Inicio de la primera sección de cascada LT D1NM1 MPY A11 ; A11*D1NM1 -> PREG LTA D1NM2 ; ACC + PREG -> ACC MPY A21 ; A21*D1NM2 -> PREG APAC ; D1N= A2*DNM2 + A1*DNM1 SACH D1N,1 ; ZAC ; Cero ACC MPY B21 ; B21*D1NM2 -> PREG LTD D1NM1 ; ACC + PREG -> ACC MPY B11 ; B11*D1NM1 -> PREG LTD D1N ; ACC + PREG -> ACC MPY B01 ; B11*D1NM1 -> PREG * Fin de la primera etapa de la cascada. Inicio de la segunda LTA D2NM1 ; PREG+ ACC ->ACC D2NM1->TREG0
  • 23. MPY A12 ; A12*D2NM1 -> PREG LTA D2NM2 ; ACC + PREG -> ACC MPY A22 ; A22*D2NM2 -> PREG APAC ; SACH D2N,1 ; D1N= A2*DNM2 + A1*DNM1 ZAC ; Cero ACC MPY B22 ; B22*D2NM2 -> PREG LTD D2NM1 ; ACC + PREG -> ACC MPY B12 ; B12*D2NM1 -> PREG LTD D2N ; ACC + PREG -> ACC MPY B02 ; B02*D2N -> PREG APAC ; D2N= B02*D2N+ B12*D2NM1+ B22*D2NM2 * Fin de la segunda etapa de la cascada. SACH OUTPUT,1 ;(ACC)->OUTPUT sin bit signo LACC OUTPUT ; OUTPUT->ACC SFL AND #0fffc ; Ultimos bits al AIC =0 SAMM DXR ; Escribir en reg de X-mision RETE ; Volver a esperar otra muestra Figura 5-14. Código para filtro IIR de Cuarto Orden en Cascada En la siguiente figura se muestra el caso de un filtro IIR de cuarto orden implementado en arquitectura de cascada, donde cada subsección representa uno de los términos incluidos en el producto. Figura 5-15. Filtro IIR de Cuarto Orden en Forma de Cascada
  • 24. Se observa que cada sección del filtro corresponde a la Forma Directa de Segundo Orden, según la topología descrita anteriormente. Esta configuración puede resultar ventajosa en términos de estabilidad del sistema, en caso de que se requiera un orden de filtro muy elevado, caso en el que esta condición que es difícil de lograr al ser implementada en alguna de las formas descritas anteriormente por los múltiples retrasos y lazos de realimentación. 5.2.3.3. Forma Paralela Otra forma de representación de la ecuación de transferencia de un filtro IIR en (5-9) es ∑∑ = −− −− = − −− + == 2/ 1 2 2 1 1 1 10 0 1)( )( )( N k kk kk NM k k k zz zk zC zX zY zH αα γγ ( 5-14) en la que el término Ckz-k se hace cero cuando M<N. RECEIVE : LDP #XN ; CLRC INTM ; Captura de dato del AIC LAMM DRR ; y almacenamiento en XN SACL XN ; Inicio de la primera sección en paralelo LACC XN,15 LT D1NM2 MPY A21 ; A21*D1NM2 -> PREG LTD D1NM1 MPY A11 ; A11*D1NM1 -> PREG APAC ; D1N= A21*D1NM2 + A11*D1NM1 SACH D1N,1 ; ZAC ; Cero ACC MPY GAMMA11 ; GAMMA11*D1NM1 -> PREG LTD D1N ; ACC + PREG -> ACC MPY GAMMA01 ; GAMMA01*D1N -> PREG
  • 25. APAC ; SACH P1,1 ; P1= GAMMA01*D1N+ GAMMA11*D1NM1 * Fin de la primera etapa en paralelo. Inicio de la segunda LACC XN,15 LT D2NM2 MPY A22 ; A22*D2NM2 -> PREG LTD D2NM1 MPY A12 ; A12*D2NM1 -> PREG APAC ; D1N= A21*D1NM2 + A11*D1NM1 SACH D2N,1 ; LACC P1,15 ; MPY GAMMA12 ; GAMMA12*D2NM1 -> PREG LTD D2N ; ACC + PREG -> ACC MPY GAMMA02 ; GAMMA02*D2N -> PREG LTA C MPY XN ; XN*C -> PREG APAC ; * Fin de la segunda etapa en paralelo y del filtro. SACH OUTPUT,1 ;(ACC)->OUTPUT sin bit signo LACC OUTPUT ; OUTPUT->ACC SFL AND #0fffc ; Ultimos bits al AIC =0 SAMM DXR ; Escribir en reg de X-mision RETE ; Volver a esperar otra muestra Figura 5-16. Código para filtro IIR con secciones en paralelo 5.3. PRÁCTICA #5 (FILTROS FIR) Es fundamental seguir una rutina de diseño-prueba-diseño para lograr un algoritmo que satisfaga las condiciones de la aplicación. Por lo tanto, las partes que componen esta sección deben ejecutarse repetidas veces en forma cíclica, hasta cumplir el objetivo.
  • 26. 5.3.1. OBJETIVOS Conocer diferentes herramientas para el diseño de filtros y de procedimientos para valorar su viabilidad como solución para una aplicación específica. • Usar rutinas MATLAB para diseño de filtros tanto FIR como IIR. Entender el uso del PC como herramienta para diseñar y programar sistemas . • Conocer el uso del MATLAB, en particular sus funciones de diseño de filtros. • Utilizar herramientas freeware (COOL96) para medir el funcionamiento de un sistema de procesamiento digital. • Ganar familiaridad con el uso de diferentes herramientas de software para poner a punto el diseño de u determinado algoritmo. Ejercitar diferentes rutinas de uso común en el desarrollo de aplicaciones DSP. • Usar diferentes esquemas de direccionamiento para la implementación de diferentes topologías de sistema digital. • Editar rutinas en assembler, compilar, depurar y medir resultados de un experimento específico de procesamiento digital de señales. • Ajustar la entrada y las variables internas del procesador para evitar situaciones de overflow. • Poner en práctica normas de seguridad para el trabajo en la estación de DSP. 5.3.2. IMPLEMENTACIÓN EN MATLAB Relación entre la frecuencia de corte y respuesta al impulso de un filtro. • Abrir en un editor de texto la rutina coefir.m, útil para diseñar filtros FIR. • Cambiar los valores de la variable Wn. Definirla como un solo valor (filtros pasabajos) o como dos valores (filtros pasabanda), con el siguiente criterio : Pasabajos : Valores cercanos a 0, valores cercanos a 1, valores existentes cercanos a la mitad de la frecuencia Nyquist. Pasabanda : Valores cercanos entre sí, valores lejanos entre si,
  • 27. valores cercanos entre sí con centro en la mitad de la frecuencia Nyquist, valores lejanos entre sí con centro en la mitad de la frecuencia Nyquist. • Agregar los argumentos necesarios a la función fir1 para generar filtros pasaaltos y atrapabanda. Reperir alguna de las observaciones anteriores. • Sacar conclusiones de las observaciones anteriores Selección de diferentes ventanas • Calcular mediante la rutina filtros.m (basada en la función fir1 de MATLAB), varios filtros con las mismas especificaciones de frecuencia y atenuación, pero utilizando diferentes ventanas (Hanning, Bartlett, Kaiser, etc) • En cada una de ellas estimar los parámetros Amplitud (magnitud) Relativa Pico de Lóbulo Lateral y Amplitud (ancho de banda) de Lóbulo Principal. 5.3.3. IMPLEMENTACIÓN EN EL DSK Para lograr un funcionamiento adecuado del DSP en aplicaciones de procesamiento en tiempo real, se debe contar con instrucciones de alta velocidad y con un hardware que tenga la misma característica. En el caso del ‘C50, incorporado en la tarjeta DSK, se tiene un ciclo de instrucción de 50 ns. Este parámetro es fundamental para calcular el número total de ciclos de máquina que exige un algoritmo determinado y valorar su utilidad y factibilidad, dados unos requerimientos específicos de frecuencia de muestreo. Implementación de Filtros FIR usando Diferentes Ventanas • Editar una de las rutinas de inicialización del DSK provistas para unas condiciones de trabajo específicas. (Frecuencias de conversión, Sincronía, Filtros de Preprocesamiento, etc) • Partiendo de los datos arrojados por el diseño en MATLAB con diferentes ventanas, escribir un programa para implementar un filtro FIR en cada una de ellas. • Hacer las mediciones de desempeño de cada filtro, excitando el sistema con la señal chirpp.wav. • Comparar la respuesta medida con la del diseño en MATLAB.
  • 28. Ajuste del diseño • En caso de que los resultados no sean los esperados, intentar una variación del prescalamiento de la salida del filtro. • Intentar un escalamiento en los coeficientes del filtro • Repetir el paso anterior pero esta vez ejecute el programa paso a paso, poniendo atención al contenido del acumulador (ACC), contador de programa(PC), diferentes registros de estado. Usar la impresión de lazo.lst y establezca relaciones entre el listado y el contenido de los registros del DSK. Conteo del número de operaciones y estimación de su duración • Dependiendo del orden del filtro, su topología y las instrucciones utilizadas, hacer una estimación del tiempo de ejecución de cada pasada del filtro. • Comparar este criterio con la tasa de conversión del AIC. • Establecer el orden máximo que podría tener dicho filtro para seguir operando entre el límite de la frecuencia de muestreo. 5.3.4. OTROS Exploración del freeware para análisis y síntesis de señales • En caso de no haberlo hecho, usar la herramienta Frequency Analysis del menú Analyze de Syntrillium COOL96. Ubicar el cursor en cualquier instante de la señal de sonido abierta y leer el contenido frecuencial en ese momento. Estimación de la respuesta del filtro (cualitativa) Para escuchar el efecto de este programa, es necesario aplicar una señal de audio al DSK: • Realizar un ciclo de ejecución/grabación simultáneos mediante COOL96, teniendo como entrada al sistema la señal chirpp.wav . • Establecer la respuesta de uno de los filtros. Uso de señales “del mundo real”
  • 29. • Una vez que se tenga el filtro adecuado, inyectar una señal de audio externa (salida de un radio, por ejemplo). • Notar el efecto del filtro sobre dicha señal. • Volver a las etapas de diseño en MATLAB y de implementación en el DSK para variar el diseño. 5.3.5. TAREA Filtros FIR en cascada • Diseñar dos filtros FIR, uno pasabajos y otro pasabaltos, cuyas frecuencias se solapen. • Escribir un código en assembler en el que dichas etapas queden en cascada. (Ver rutina para filtros IIR en cascada). • Hacer una estimación de la salida utilizando MATLAB. • Cargar el ejecutable en el DSP ‘C50 y repetir el proceso de diseño-prueba-diseño, hasta que obtenga una respuesta apropiada 5.4. PRÁCTICA #6 (FILTROS IIR) Es fundamental seguir una rutina de diseño-prueba-diseño para lograr un algoritmo que satisfaga las condiciones de la aplicación. Por lo tanto, las partes que componen esta sección deben ejecutarse repetidas veces en forma cíclica, hasta cumplir el objetivo. 5.4.1. OBJETIVOS Conocer diferentes herramientas para el diseño de filtros y de procedimientos para valorar su viabilidad como solución para una aplicación específica. • Usar rutinas MATLAB para diseño de filtros tanto FIR como IIR. • Utilizar freeware (COOL96) para medir el funcionamiento de un sistema de procesamiento digital. • Poner en práctica normas de seguridad para el trabajo en la estación de DSP.
  • 30. Entender el uso del PC como herramienta para diseñar y programar sistemas . • Conocer el uso del MATLAB, en particular sus funciones de diseño de filtros. • Integrar el uso de herramientas de freeware a la estación de tiempo real para DSP. Ejercitar diferentes rutinas de uso común en el desarrollo de aplicaciones DSP. • Usar diferentes esquemas de direccionamiento para la implementación de diferentes topologías de sistema digital. • Editar rutinas en assembler, compilar, depurar y medir resultados de un experimento específico de procesamiento digital de señales. • Ajustar la entrada y las variables internas del procesador para evitar situaciones de overflow. 5.4.2. IMPLEMENTACIÓN EN MATLAB Obtención de los coeficientes B y A de un filtro IIR. • Abrir en un editor de texto la rutina coefiir.m, útil para diseñar filtros IIR. • Cambiar el la función de diseño y ver como cambia la respuesta para especificaciones idénticas. • Adicionar los argumentos necesarios a cada función para generar filtros análogos. Buscar una relación con su equivalente digital. • Sacar conclusiones de las observaciones anteriores Generación de señales con características apropiadas. • Por medio de la rutina chirp1.m generar una señal de barrido en frecuencia que se adapte a las especificaciones de una aplicación en tiempo real. Escoger una banda de frecuencias su generación. Escalización de coeficientes. • Estudiar la representación numérica al interior del procesador ‘C50.
  • 31. • Encontrar los factores de escalización apropiados para la definición de los coeficientes en el DSP. • Hacer el producto en MATLAB y, si es el caso, usar una hoja de cálculo para facilitar la exportación de estos valores al código en assembler. 5.4.3. IMPLEMENTACIÓN EN EL DSK Para lograr un funcionamiento adecuado del DSP en aplicaciones de procesamiento en tiempo real, se debe contar con instrucciones de alta velocidad y con un hardware que tenga la misma característica. En el caso del ‘C50, incorporado en la tarjeta DSK, se tiene un ciclo de instrucción de 50 ns. Este parámetro es fundamental para calcular el número total de ciclos de máquina que exige un algoritmo determinado y valorar su utilidad y factibilidad, dados unos requerimientos específicos de frecuencia de muestreo. Implementación de Filtros IIR en Diferentes Arquitecturas • Editar una de las rutinas de inicialización del DSK provistas para unas condiciones de trabajo específicas. (Frecuencias de conversión, Sincronía, Filtros de Preprocesamiento, etc) • Partiendo de los datos arrojados por el diseño en MATLAB y de los ejemplos de código para diferentes topologías y, escribir un programa para implementar un filtro IIR en cada una de ellas. • Hacer las mediciones de desempeño de cada filtro, excitando el sistema con la señal chirpp.wav. • Comparar la respuesta medida con la del diseño en MATLAB. Ajuste del diseño • En caso de que los resultados no sean los esperados, intentar una variación del prescalamiento de la salida del filtro. • Intentar un escalamiento en los coeficientes del filtro
  • 32. Conteo del número de operaciones y estimación de su duración • Dependiendo del orden del filtro, su topología y las instrucciones utilizadas [7], hacer una estimación del tiempo de ejecución de cada pasada del filtro. • Comparar este criterio con la tasa de conversión del AIC. • Establecer el orden máximo que podría tener dicho filtro para seguir operando entre el límite de la frecuencia de muestreo. 5.4.4. OTROS Estimación de la respuesta del filtro (cualitativa) Para escuchar el efecto de este programa, es necesario aplicar una señal de audio al DSK: • Realizar un ciclo de ejecución/grabación simultáneos mediante Syntrillium COOL96, teniendo como entrada al sistema la señal chirpp.wav . • Establecer la respuesta de uno de los filtros. Uso de señales “del mundo real” • Una vez que se tenga el filtro adecuado, inyectar una señal de audio externa (salida de un radio, por ejemplo). • Notar el efecto del filtro sobre dicha señal. • Volver a las etapas de diseño en MATLAB y de implementación en el DSK para variar el diseño. 5.4.5. TAREA • Conseguir información relacionada con la estabilidad en filtros IIR. Establecer criterios de eficiencia de cada topología consultada. 5.5. REFERENCIAS [1] TEXAS INSTRUMENTS INC. TLC32040C, TLC32040I, TLC32041C, TLC32041I Analog Interface Circuits (SLAS 014E). U.S.A : s.n., 1995.
  • 33. [2] SCHWEBER, Bill. Analog filters: Even More Essential in the Digitized Wworld. En : EDN Magazine. ( April 24, 1997) [3] OPPENHEIM Alan V. and SCHAFER, Ronald W. Digital Signal Processing. Englewood Cliffs, New Jersey: Prentice Hall, 1975. p 156-157. [4] BURRUS, C. Sidney, et al. Computer-Based Exercises for Signal Processing : Using MATLAB. Englewood Cliffs, New Jersey: Prentice Hall, 1994. p 247 [5] OPPENHEIM Alan V. and SCHAFER, Ronald W. Discrete-Time Signal Processing. Englewood Cliffs, New Jersey: Prentice Hall, 1989. p 464-486 [6] LOVRICH, Al and SIMAR junior, Ray. Implementation of FIR/IIR Filters with the TMS32010/TMS32020. En KUN SHAN LIN. Digital Signal Processing Applications with the TMS320 Family, V.1. Texas Instruments- Prentice-Hall, 1987. p.27-68. [7] TEXAS INSTRUMENTS INC. TMS320C5x User’s Guide (SPRU056C). Owensville, Missouri. s.n.. 1997