Beruflich Dokumente
Kultur Dokumente
Director
Mpe. JAIME BARRERO PREZ
Codirector
Ing. JAVIER GONZLEZ BARAJAS
______________________________
______________________________
______________________________
______________________________
______________________________
Presidente del jurado
______________________________
Jurado
______________________________
Jurado
A Dios y mi familia
Jaime Barrero, magister en potencia elctrica y director del proyecto, por su valiosa
orientacin y su colaboracin. Por la confianza depositada en nosotros, y la motivacin de
trabajar en el campo del filtrado digital.
Y en general a todas las personas que sirvieron de apoyo para el desarrollo de este
proyecto, por su amable disposicin y asesora cuando fue necesaria.
TABLA DE CONTENIDO
Pag.
INTRODUCCIN .................................................................................................... 1
1. FILTROS DIGITALES ........................................................................................ 5
1.1 SISTEMAS DE FASE LINEAL......................................................................... 8
1.2 FILTROS FIR SIMTRICOS Y ANTISIMTRICOS ...................................... 10
1.3 DISEO DE FILTROS NO RECURSIVOS (FIR) .......................................... 15
1.3.1 Diseo de Filtros FIR de Fase Lineal Usando Ventanas ............................ 15
1.3.2 Diseo de Filtros FIR Mediante la Ventana de Kaiser ................................ 20
1.3.3 Diseo de Filtros FIR ptimos de Amplitud de Rizado Constante ............. 33
1.4 DISEO DE FILTROS RECURSIVOS IIR .................................................... 39
1.4.1 Diseo de Filtros IIR Mediante Transformadas Bilineales .......................... 40
2. GENERADOR DE FORMAS DE ONDA ARBITRARIAS.................................. 46
2.1 ESPECIFICACIONES DEL GENERADOR ................................................... 49
2.1.1 Formas de Onda de Salida......................................................................... 49
2.1.2 Resolucin de la Forma de Onda ............................................................... 49
2.1.3 Frecuencia de Salida .................................................................................. 50
2.1.4 Modos de Operacin .................................................................................. 50
2.1.5 Canales de Salida ...................................................................................... 50
2.2 PANEL FRONTAL DEL GENERADOR DE SEALES ARBITRARIAS......... 51
2.3 GENERACIN DE FORMAS DE ONDA....................................................... 53
2.3.1 Generacin Analgica Sencilla ................................................................... 53
2.3.2 Generacin Analgica con Buffer ............................................................... 53
2.3.3 Descripcin de los VIs Utilizados en la Generacin con Buffer .................. 55
2.3.3.1 AO Config.vi............................................................................................. 55
2.3.3.2 AO Write.vi............................................................................................... 56
2.3.3.3 AO Start.vi................................................................................................ 58
2.3.3.4 AO Wait.vi ................................................................................................ 59
2.3.3.5 AO Clear.vi............................................................................................... 60
2.4 ESTRUCTURA DEL ALGORITMO DEL GENERADOR DE SEALES ........ 60
2.4.1 Bloque 1- Construir las Ondas.................................................................... 62
2.4.1.1 Funcin de Librera .................................................................................. 63
2.4.1.2 Funcin de Frmula ................................................................................. 67
2.4.1.3 Funcin de Mouse ................................................................................... 70
2.4.1.4 Adicin de Seales en el Canal 0 ............................................................ 73
2.4.1.5 Diferencia de seales en el Canal 1 ........................................................ 74
2.4.1.6 Guardar Seal.......................................................................................... 74
2.4.1.7 Cargar Seal............................................................................................ 75
2.4.1.8 Limpiar Canal........................................................................................... 76
2.4.2 Bloque 2- Preparar los Datos ..................................................................... 76
2.4.2.1 Caso FALSE ............................................................................................ 77
2.4.2.2 Caso TRUE.............................................................................................. 78
2.4.3 Bloque 3- Generacin Analgica con Buffer.............................................. 79
2.4.3.1 Tipo de Generacin ................................................................................. 79
2.4.3.2 Vector de Salida....................................................................................... 79
2.4.3.3 Canal ....................................................................................................... 80
2.5 DIAGRAMAS DE FLUJO DEL ALGORITMO ................................................ 81
2.5.1 Diagrama bloque 1 ..................................................................................... 82
2.5.2 Diagrama Bloque 2 ..................................................................................... 83
2.5.3 Diagrama Bloque 3 ..................................................................................... 84
3. ALGORITMOS DE ADQUISICIN Y FILTRADO ............................................ 86
3.1 ADQUISICIN DE SEALES ....................................................................... 86
3.1.1 Mtodo Sencillo .......................................................................................... 87
3.1.2 Mtodo Buffereado ..................................................................................... 89
3.1.2.1 Adquisicin Buffereada Circular............................................................... 90
3.1.3 Funciones que se Utilizan en la Adquisicin Buffereada ............................ 92
2
3.1.3.1 AI Config.vi............................................................................................... 93
3.1.3.2 AI Start.vi ................................................................................................. 95
3.1.3.3 AI Read.vi ................................................................................................ 96
3.1.3.4 AI Clear.vi ................................................................................................ 97
3.2 FUNCIONES DE DISEO DE FILTROS ...................................................... 97
3.2.1 Digital IIR Filter.vi........................................................................................ 98
3.2.2 Digital FIR Filter.vi .................................................................................... 100
3.2.3 IIR Filter.vi ................................................................................................ 100
3.3 EJEMPLOS DE DISEO ............................................................................ 101
4. PRUEBAS REALIZADAS Y RESULTADOS OBTENIDOS ............................ 107
4.1 PRUEBAS AL GENERADOR DE SEALES ARBITRARIAS...................... 107
4.1.1 Pruebas con el Fluke Scopemeter............................................................ 107
4.1.2 Pruebas DSP TMS320CV5402 Starter Kit de Texas Instruments ............ 115
4.2 PRUEBAS DE DISEO DE LOS FILTROS DIGITALES............................. 117
4.3 PRUEBAS DE ADQUISICIN Y FILTRADO EN TIEMPO REAL................ 121
4.3.1 Adquisicin de Tres Tonos en 1Hz, 2Hz y 3Hz ...................................... 121
4.3.2 Filtrado Pasa-Altas en Tiempo Real de la Suma de 3 Tonos Utilizando un
Filtro IIR .................................................................................................... 122
4.3.3 Filtrado Para-Banda en Tiempo Real de la Suma de Tres Tonos Utilizando
un Filtro FIR.............................................................................................. 128
4.3.4 Adquisicin de una Seal Cuadrada......................................................... 130
4.3.5 Filtrado Pasa-Bajas en Tiempo Real de la Seal Cuadrada Utilizando un
Filtro IIR .................................................................................................... 131
4.3.6 Eliminacin de Componente de 60Hz....................................................... 133
CONCLUSIONES................................................................................................ 135
RECOMENDACIONES ....................................................................................... 138
BIBLIOGRAFA ................................................................................................... 139
ANEXOS ............................................................................................................. 140
3
LISTA DE FIGURAS
Pag.
Figura 1.8 Respuesta al impulso del filtro FIR pasa bajas causal 27
Figura 1.11 Secuencia de Salida del filtro para una entrada senoidal de
200Hz, muestreada a 1kHz 29
Figura 1.14 Magnitud y Fase del filtro ptimo FIR diseado con el algoritmo
de Parks-McClellan 38
Figura 2.18 Detalle del diagrama de bloques del subprograma Editar form 68
Figura 2.21 Detalle del diagrama de bloques del subprograma Editar Form 70
Figura 2.33 Detalle del algoritmo de generacin con buffer del Bloque 3 81
Figura 3.17 Magnitud y fase del filtro FIR de 2 orden del ejemplo 3.1 102
Figura 3.19 Magnitud y fase del filtro FIR de orden 22 del ejemplo 3.2 104
Figura 3.20 Parmetros de diseo del filtro IIR del ejemplo 3.3 104
Figura 3.21 Magnitud y fase del filtro IIR de orden 2 del ejemplo 3.3 105
Figura 4.17 Filtro FIR pasa-altas. Ventana Kaiser Orden 50. FC=2.5Hz 126
Figura 4.19 Filtro FIR pasa-altas. Ventana Kaiser. Orden 100. Fc=2.5Hz 127
Pag.
PALABRAS CLAVES: Filtros Digitales, Filtros IIR, Filtros FIR, Generador de Seales Arbitrarias,
Tarjeta de Adquisicin de Datos PCI 1200, LabVIEW, Filtrado en Tiempo Real, Tcnica de
Enventaneo, Transformada Bilineal, Tcnica de Rizado Constante.
DESCRIPCIN:
*
Proyecto de grado
**
Facultad de Ingenieras Fsico-Mecnicas. Escuela de Ingenieras Elctrica, Electrnica y de
Telecomunicaciones. Director del proyecto, Mpe. Jaime Barrero Prez.
TITLE: DIGITAL FILTER IMPLEMENTATION USING PC*
KEY WORDS: Digital Filters, IIR Filters, FIR Filters, Arbitrary Waveform Generator, PCI 1200 Data
Acquisition Board, LabVIEW, Real Time Filtering, Windowing Design Technique, Bilinear
transformation, Equi-Ripple Design Technique
DESCRIPTION:
The purpose of this project is the digital filter implementation using a personal computer to perform
real time filtering on a wide variety of analogic signals. Real time filtering was achieved using a
digital processing system based on a PCI 1200 data acquisition board, LabVIEW application
software and a personal computer. Analogic signals were obtained by means of a LabVIEW
software created arbitrary waveform generator wich generates common signals (sine, triangular,
sawthoot and square signals), mathematical formulated signals, PC mouse sketched signals and
text file imported signals. Digital filtering was implemented using LabVIEW graphical programming
lenguage in a block structure. The first block deals with analogic signal acquisition. In the second
block the user can design FIR or IIR digital filters. IIR filters can be designed using Butterworth,
Chebychev, inverse Chebyshev, Bessel and eliptic topolygies. FIR filter can be designed with
windowing technique (including, among others, rectangular, Hamming, Hannig and Kaiser window)
and equi-ripple technique wich uses the Parks-McClellan algoritm. Low pass, high pass, band pass
and band reject digital filters can be design with this software application, specifying design
parameters such as pass and stop band attenuations, cut-off frecuencies, order, and maximun
ripple allowed. Moreover, filters can be designed introducing the function tranfers H(z) coefficients.
The design application displays function transfer magnitude in linear or decibel scale; also it
displays the filter phase respone in degree or radians, in continue or warp scale. The digital
processing third block filters in real time the acquire signal and displays its power spectrum and the
resultant signal in the PC after it was processed by the filter designed.
*
Degree Project
**
Faculty of Physical-Mechanical Sciences. Electric, Electronic and Telecommunication Engineering
School. Project Director, Mpe. Jaime Barrero Prez.
INTRODUCCIN
Estas simulaciones fueron la base de los primeros trabajos que se realizaron en filtrado
digital. Se estudiaron entonces las formas para que una seal analgica que fuera
digitalizada con un conversor A/D se pudiera procesar mediante un programa en un
computador de tal manera que luego de realizar una conversin D/A de la seal
resultante, el sistema completo se comportar aproximadamente como un buen filtro
analgico. Sin embargo, las expectativas de que estos sistemas pudieran llegar a ser
prcticos en el procesamiento en tiempo real de seales eran poco optimistas debido a
tres restricciones principales, sobre las cuales tenan una gran ventaja los sistemas
analgicos en ese momento: la velocidad, el tamao y el costo.
3
Como el algoritmo de la FFT (FFT, Fast Fourier Transform) descubierto por Cooley y Tukey
(1965), que disminuy el nmero de operaciones necesarias para calcular las transformadas de
Fourier, lo cual redujo significativamente el tiempo de proceso de los computadores.
2
la seal electrocardiogrfica es el hecho de que es una suma de impulsos elctricos de
muchos msculos, no solamente el corazn; adems de otros ruidos como es el ruido de
60Hz y el ruido por induccin electromagntica. Por tanto para visualizar en una pantalla
un ECG libre de ruido se necesitan filtros de alto orden, gran flexibilidad y baja inmunidad
al ruido, y estas caractersticas son la parte llamativa de los filtros digitales.
En el captulo uno se presenta una recopilacin terica del filtrado digital de seales
analgicas, desde el proceso de muestreo hasta el tratamiento digital a travs de filtros
recursivos y no recursivos, explicando las herramientas matemticas disponibles para
facilitar la manipulacin de las seales en tiempo y frecuencia. Se explican con cierto
detalle las tcnicas de diseo ms comnmente utilizadas y que se pueden programar
dentro de la aplicacin de filtrado digital en tiempo real implementada en LabVIEW.
Dentro de los filtros IIR (recursivos) se examina el diseo mediante transformada bilineal;
mientras que en los filtros FIR (no recursivos), se detallan los mtodos de diseo de filtros
con ventanas (incluyendo ventana rectangular, triangular, Hanning, Hamming, Kaiser-
Bessel y Blackman) y algoritmos que minimizan el error mximo de la magnitud de la
respuesta en frecuencia del filtro como el diseo ptimo con rizado constante.
3
El captulo tres se enfoca en el desarrollo de una aplicacin programada en LabVIEW
capaz de adquirir una seal elctrica por medio de una tarjeta de adquisicin de datos y
procesarla en tiempo real a travs de filtros digitales FIR e IIR implementados mediante
instrumentos virtuales y una interfaz grfica que permite observar la seal de salida y su
espectro en frecuencia luego de ser procesada.
4
1. FILTROS DIGITALES
El tema principal de este proyecto son los filtros digitales, los cuales extraen o modifican
alguna caracterstica de la seal de entrada; que se ve reflejada en su espectro de
frecuencia, por ejemplo se habla del paso de una determinada banda del espectro de la
seal de entrada. Por lo tanto, los filtros digitales se definen como sistemas discretos que
modifican caractersticas en frecuencia de una seal digital.
El diseo de los filtros requiere de las siguientes etapas: (1) especificaciones de las
propiedades deseadas del sistema, (2) aproximaciones de las especificaciones mediante
un sistema causal en tiempo discreto y (3) la realizacin del sistema. El primero es
altamente dependiente de la aplicacin y el tercero de la tecnologa utilizada para la
implementacin.
En la prctica el filtro deseado se realiza utilizando cmputo digital y se emplea para una
seal analgica seguida por una conversin analgico-digital.
Los filtros digitales muestran abrumadoras ventajas respecto a los sistemas analgicos,
una enumeracin de los beneficios puede verse dentro de la comparacin entre estos dos
tipos de filtros:
5
Respuesta dinmica: El ancho de banda del filtro digital est limitado por la
frecuencia de muestreo, mientras que en los filtros analgicos con componentes
activos suelen estar restringidos por los amplificadores operacionales.
y[n] = a1 y[n 1] + a 2 y[n 2] + ... + a m y[n m] + bo x[n] + b1 x[n 1] + b2 x[n 2] + ... + bk x[n k ]
(1.1)
6
En el caso de tener todos los coeficientes (ai) iguales a cero se tendr un filtro FIR, con lo
que quedar la ecuacin reducida a:
Los filtros FIR son aquellos en los cuales la salida depende slo de valores presentes y
pasados de la entrada, Siendo k el orden del filtro y tendr una funcin de transferencia
en z igual a:
H ( z ) = bo + b1 z 1 + b2 z 2 + ... + bk z k (1.3).
De las Ecuaciones (1.2) y (1.3) se observa que en estos filtros cada valor de la secuencia
de salida slo depende de un nmero finito de valores de la secuencia de entrada.
Adems tambin se desprende la carencia de polos en la funcin de transferencia. Por
otra parte, las expresiones de los filtros recursivos IIR corresponden a:
bo + b1 z 1 + b2 z 2 + ... + bk z k
H (z ) = (1.5).
1 a1 z 1 a 2 z 2 ... a m z m
7
Los filtros FIR son siempre estables, esto significa que la secuencia de salida
tiene todos sus valores acotados. No es el caso de los filtros recursivos, ya que su
estabilidad depende de la funcin de transferencia, por lo que se deber utilizar
alguno de los procedimientos algebraicos para analizar su estabilidad.
Cualquier filtro recursivo puede ser reemplazado por otro no recursivo con infinitos
coeficientes y sus valores estarn dados por la secuencia de ponderacin del IIR.
La conclusin inversa no se cumple.
Cuando se disean filtros y otros sistemas que dejan pasar sin distorsin una banda de
frecuencias, es deseable que el mdulo de la respuesta en frecuencia sea
aproximadamente constante y de fase cero en la banda de paso. Para efectos prcticos
(sistemas causales) se debe permitir cierta distorsin de fase. Una fase lineal es
simplemente un desplazamiento temporal que no afecta la forma de la seal de entrada.
jw
H(ejw) = e , para |w| < (1.6).
|H(ejw)| = 1 (1.7)
Fase = w (1.8)
sen (n )
h[n] = , para - < n < (1.9).
(n )
8
Ahora si es entero entonces h[n] = [n ] y y[n] = x[n] [n ] = x[n- ], es decir
si es un entero entonces el sistema de fase lineal y ganancia uno simplemente
desplaza la secuencia de entrada muestras.
jw
H(ejw) = |H(ejw)| e , para |w| < (1.10).
Lo que indica que la salida y[n] de un sistema LTI de fase lineal es la convolucin de la
seal de entrada x[n] con la magnitud de la respuesta al impulso |H(ejw)| del sistema, mas
un desplazamiento en tiempo muestras.
jw
HLP(ejw) = e , para |w| < wC y cero en el resto (1.11).
Entonces
senwc (n )
hLP[n] = (1.12).
(n )
Para que el sistema sea de fase lineal generalizada es necesario que su respuesta al
impulso sea simtrica o antisimtrica respecto a . Si el sistema es causal es decir h[n]
es cero para n < 0 significa que la respuesta al impulso debe truncarse a un valor M = 2
lo que da como resultado:
h[n] = h[M-n]
Para 0 n M y cero en el resto (1.13).
9
h[n] = - h[M-n]
Este es el caso de los filtros FIR que son causales y de fase lineal generalizada.
Un filtro FIR tiene fase lineal si su respuesta al impulso satisface la condicin de simetra
o antisimetra de sus coeficientes. Para su demostracin se partir de la respuesta en
frecuencia de un filtro no recursivo que tenga un orden M. Adems, para facilitar su
comprensin se va a suponer que el filtro sea de orden par, definindose que M sea igual
a 2N, por tanto, la respuesta en frecuencia de los filtros de orden par quedar como:
( )
2N
H e jw = h[n]e jwn = e-jwN{h[0]ejwN+h[1]ej(N-1)w+h[2]ej(N-2)w++h[2N]e-jwN} (1.14).
n=0
h[0] = h[2N]
h[1] = h[2N-1]
h[2] = h[2N-2]
.
.
.
h[N-1] = h[N+1]
Suponiendo primero que existe simetra de orden par y agrupando alrededor de los
coeficientes ej(N-i)w en la Ecuacin (1.14), la respuesta en frecuencia del filtro ser:
10
( )
N 1
H e jw = e jwN h[ N ] + 2 h[i ]cos[( N i )w] (1.15).
i =0
De la Ecuacin (1.15) se observa que el contenido que est entre los parntesis es real y
que el desfase introducido por el filtro es -wN, siendo por tanto el argumento, lineal con la
frecuencia.
De igual manera se procede con los coeficientes antisimtricos, sin embargo, hay que
destacar que si el filtro es de orden par el punto central de la antisimetra ser nulo. Es
fcil demostrar que la respuesta en frecuencia del un filtro FIR de orden par con respuesta
al impulso antisimtrica se puede expresar como:
N 1
( )= e
j wN
He jw 2
2 h[i ]sen[( N i )w] (1.16).
i =0
De la Ecuacin (1.16) se observa que la caracterstica de fase del filtro es wN .
2
Igualmente las expresiones de las respuestas en frecuencia para filtros de orden impar
con simetra o antisimetra son sencillas de obtener.
(( M +1) / 2 )1
He( )= e
jw jwN
2 h[i ]cos[(M / 2 i )w] Simetra de orden impar. (1.17).
i =0
(( M +1) / 2 )1
( )= e
j wN
H e jw 2
2 h[i ]sen[(M / 2 i )w] Antisimetra de orden impar. (1.18).
i =0
Las Ecuaciones (1.15) a la (1.18) son formulas de respuesta en frecuencia generales que
se pueden usar para disear filtros FIR de fase lineal con respuesta al impulso simtricas
y antisimtricas. Ntese que para un filtro simtrico, el nmero de coeficientes que definen
la respuesta es M/2 cuando M es par ((M+1)/2)-1) si M es impar. Por otro lado, si la
11
respuesta al impulso es antisimtrica y el orden es par, el punto central de la antisimetra
ser nulo y habr M/2 coeficientes que lo definan, en caso de ser orden impar, cada
coeficiente tiene un trmino de igual magnitud y de signo opuesto y estar definido por
((M+1)/2)-1). La eleccin de una respuesta al impulso simtrica o antisimtrica depende
de la aplicacin. Por ejemplo, si el filtro tiene antisimetra, H(ejw) tanto para bajas
frecuencias como para frecuencias alrededor de la frecuencia de Nyquist tiene valores
prximos a cero, por lo que no es posible utilizarlos ni para filtros pasa bajas ni paso alto.
Por otro lado, la condicin de simetra produce un filtro FIR de fase lineal con una
respuesta distinta de cero para bajas frecuencias. En resumen, el problema de diseo de
filtros FIR es simplemente el del determinar M+1 coeficientes, a partir de las
especificaciones en las frecuencias deseadas.
x=(0:1:4);
y=ones(1,5);
stem(x,y)
Solucin en Matlab de la repuesta al impulso simtrica de orden impar con M = 3 (tipo II)
se ilustra en la Figura 1.2.
y=ones(1,4);
stem(x,y)
12
Figura 1.2. Secuencia Tipo (II)
x=(0:4);
y=[1,1,0,-1 -1];
stem(x,y)
De la Figura 1.3 se observa que para los filtros tipo (III) el punto de simetra M/2 es nulo.
x=(0:3);
13
y=[1 1 -1 -1];
stem(x,y)
14
De acuerdo a las Tablas 1.1 y 1.2 se determina como es la secuencia para cada tipo de
filtro FIR en general.
Los filtros no recursivos tienen ventajas muy interesantes que les hacen ser ampliamente
utilizados en mltiples aplicaciones. La caracterstica ms destacable es su facilidad de
diseo para conseguir una respuesta en frecuencias de fase lineal. Los FIR son por su
propia constitucin estables. Aunque el diseo de los FIR requiera de una gran cantidad
de operaciones de sumas y multiplicaciones, tanto su estructura de programacin como
su realizacin en soporte fsico resultan fcil y escalable.
En la prctica, los filtros FIR se emplean en problemas de filtrado donde hay un requisito
de fase lineal dentro de la banda de paso del filtro. Si no existe este requisito se pueden
emplear tanto filtros FIR como IIR. Sin embargo, como regla general, un filtro IIR tiene
menos rizado y el corte es ms abrupto que un FIR con el mismo grado de polinomio. Por
esta razn, si se puede tolerar alguna distorsin de fase o sta no es importante, se
prefiere un IIR, principalmente porque su implementacin involucra menos parmetros,
requiere menos memoria y tiene menor complejidad computacional.
H d (e ) =
jw
h [n]e
n =
d
jwn
(1.19).
15
La secuencia de respuesta al impulso deseada hd[n] es no causal de longitud infinita, la
forma directa de obtener una aproximacin FIR causal es truncar la respuesta al impulso
y se redefine as.
16
(a) (b)
(c) (d)
Figura 1.5. Efecto del truncamiento en un filtro pasa bajas con Fc = 250Hz y frecuencia
de muestreo de 1kHz a. Orden 20, b. Orden 50, c. Orden 100, d. Orden 200
El diseo de un filtro realizable con funcin H(ejw) puede definirse como el resultado de
multiplicar los coeficientes, dk, en cantidad infinita del filtro ideal por una ventana w[n] de
(M+1) puntos con coeficientes wk. Ello conlleva a que el filtro tendr ahora una longitud
finita de (M+1) coeficientes definidos por:
bk = dk wk (1.23).
17
Entonces H(ejw) que es la transformada de Fourier de h[n], es el resultado de la
convolucin peridica de la respuesta al impulso ideal deseada con la transformada de
Fourier de la ventana W(ejw) .Donde
9 Bartlett (triangular)
18
Los coeficientes de esta ventana estn definidos por la relacin:
9 Ventana Hamming
9 Blackman
Al disear filtros FIR se desea obtener sistemas causales con respuesta de fase lineal
generalizada, todas las ventanas estn diseadas con este propsito. Entonces
Es decir las ventanas son simtricas con respecto al punto M/2, entonces las
transformadas de Fourier son de la forma
19
El producto de la respuesta ideal deseada por la ventana da como resultado sistemas
causales, ahora si la respuesta ideal deseada es tambin simtrica con respecto a M/2,
entonces el sistema en general ser causal y de fase generalizada, es decir
Siendo Ae(ejw) una funcin real par de w e igual a la convolucin peridica de las
funciones reales de la respuesta ideal deseada He(ejw) y de la ventana We(ejw)
respectivamente.
Mximo Atenuacin de
Atenuacin en
Rizado en la banda de Ancho de Lbulo
Ventana lbulo lateral
rechazo Principal
[dB]
[dB]
4
Rectangular -13 -21
M +1
8
Hanning -31 -44
M
8
Hamming -41 -53
M
12
Blackman -57 -74
M
La relacin entre la anchura del lbulo principal y el rea de los lbulos laterales se ha
estudiado ampliamente.
20
Kaiser descubri que se puede formar una ventana cuasi-ptima utilizando la funcin de
Bessel modificada de primera especie. La ventana de Kaiser se define como:
[(
I 1 [(n ) / ]
w[n ] = 0
)
2 1/ 2
]
I 0 ( ) , para 0 n M y cero en el resto (1.34).
por la serie:
2
1 X k
I 0 (X ) = 1 +
k =1 k! 2
, (1.35).
A diferencia de las otras ventanas, la ventana de Kaiser tiene dos parmetros: el orden
del filtro, M, y el parmetro de forma . Variando M y se puede ajustar la amplitud de
los lbulos laterales y el ancho del lbulo principal. Se ha demostrado que si se aumenta
el orden del filtro M y se mantiene constante, la banda de transicin disminuye
mantenindose la amplitud de los lbulos laterales. De hecho, Kaiser obtuvo, mediante
amplias experimentaciones numricas, una pareja de frmulas que permiten al diseador
de filtros predecir los valores del orden del filtro y del factor de formas necesarias para
cumplir unas determinadas especificaciones en frecuencia. Adems, tambin demostr
que, sobre un intervalo suficientemente amplio de condiciones, el nivel de rizado, est
determinado por la seleccin de . Suponiendo fijo el nivel de rizado, la frecuencia de
corte de la banda de paso de un filtro paso bajo wp se define como la mxima frecuencia
para la que |H(ejw)| 1- . La frecuencia de corte de la banda eliminada wS, se define
como la mnima frecuencia para la que |H(ejw) | . Por otro lado, la anchura normalizada
de la regin de transicin es:
w P wS
w = (1.36).
2wn
21
Donde wn es la frecuencia angular de Nyquist. Para la aproximacin del filtro paso bajo se
define.
Para el caso de que sea cero, la ventana es igual a la rectangular. Adems, Kaiser
A8
M =
2.285w (1.39).
La Ecuacin (1.39) permite predecir el valor de M con una precisin de 2 para un amplio
margen de valores de A y w. Por tanto, con estas frmulas, el mtodo de diseo basado
en la ventana de Kaiser casi no requiere iteraciones de prueba y error. Las caractersticas
generales en una ventana Kaiser para distintos parmetros se pueden ver en la Tabla 1.4.
Convertir las especificaciones del filtro deseado para prototipo de filtro pasa bajos
y se elige el tipo de ventana que puede cumplir con dichas condiciones, teniendo
en cuenta los valores tpicos de cada ventana que se observan en la Tabla 1.3 Por
22
ejemplo una ventana Rectangular no puede tener un rizado con una atenuacin
superior a 21dB en la banda de rechazo segn lo indica la Tabla 1.3
Determinar la frecuencia de corte del filtro paso bajo ideal. Que debido a la
simetra de la aproximacin en la discontinuidad de H(ejw), es:
w p + ws
wc =
2 (1.40).
Estimar el orden del filtro usando la Ecuacin (1.39) para el clculo del orden
segn Kaiser, seguidamente determinar mediante la experimentacin si las
especificaciones se cumplen, de lo contrario se aumenta el orden del filtro hasta
cumplir las condiciones requeridas.
Determinar la secuencia de ponderacin del filtro ideal pasa bajas por medio de:
sen[wc (n M / 2 )]
hd [n] = (1.41).
(n M / 2) )
sen[wc (n M / 2 )]
h[n] = w[n] (1.42).
(n M / 2) )
23
Tabla 1.4. Caractersticas generales en una ventana Kaiser para distintos parmetros
Mxima
Ancho de Banda
Parmetro Atenuacin en Atenuacin de
del lbulo
lbulo lateral Rizado en la
principal
[dB] banda de rechazo
[dB]
[dB]
3
2.0 -19 -29
M +1
4
3.0 -24 -37
M +1
5.2
4.0 -30 -45
M +1
6.4
5.0 -37 -54
M +1
7.6
6.0 -44 -63
M +1
9
7.0 -51 -72
M +1
10.2
8.0 -59 -81
M +1
11.4
9.0 -67 -90
M +1
12.8
10.0 -74 -99
M +1
Aunque el mtodo expuesto se ha centrado en los filtros paso bajo, tambin es posible
disear los otros tipos de filtros selectivos, paso alto, pasa banda y rechaza banda.
Para ello se podra utilizar el mismo procedimiento que se vio anteriormente, pero en
vez de aplicar la banda pasante a las bajas frecuencias se puede realizar para
cualquier otra forma de banda pasante. Sin embargo, y de igual manera que con los
filtros analgicos, aqu tambin existen transformaciones de paso bajo a cualquiera de
los otros tipos de filtros.
24
As por ejemplo, si hLP[n] son los coeficientes de la respuesta al impulso de un filtro
paso bajo con una frecuencia de corte wc, entonces los coeficientes de un filtro pasa
altas con una frecuencia de corte de wC se pueden calcular con la Ecuacin 1.43.
Ejemplo 1.1
Disear un filtro FIR pasa bajas de orden 2 utilizando ventana rectangular, con frecuencia
de corte 100Hz y frecuencia de muestreo 1kHz y graficar su respuesta en frecuencia.
Para observar resultados, procesar una seal senoidal de 200Hz utilizando el filtro
diseado.
Solucin:
1. Datos suministrados:
fc=100 (Hz). c=2**100=200* (rad/s).
fs=1000 (Hz).
xent(t)=sen(400**t)
25
2. Se calcula la frecuencia de corte digital como w=T, donde T=1/ fs. Entonces
wc=200**(1/1000)=0.2* (rad/muestra)
3. De acuerdo a la Ecuacin 1.41 los coeficientes del filtro pasa bajas ideal para los datos
sen[0.2 (n 1)]
suministrados son hd [n] = como se ilustran en la Figura 1.6.
(n 1) )
4. La ventana rectangular que se debe utilizar es: w[n]=1, para 0n2 y cero en el resto.
Esta ventana se ilustra en la Figura 1.7.
26
5. De acuerdo a la Ecuacin 1.42 los coeficientes del filtro FIR causal realizable son:
sen[0.2 (n 1)]
h[n] = , 0n2
(n 1) )
h[n] = 0 , en el resto.
De acuerdo a esta funcin:
h[0]=0.18709
h[1]=0.2
h[2]=0.18709
Figura 1.8 Respuesta al impulso del filtro FIR pasa bajas causal.
Por ser un filtro FIR la respuesta al impulso proporciona directamente los coeficientes de
la ecuacin en diferencia que representa al sistema del filtro pasa bajas. La ecuacin
sera:
y[n]=0.18709x[n]+0.2x[n-1]+0.18709x[n-2] (1.44)
27
Segn la Ecuacin 1.3 la funcin de transferencia del filtro es:
H(z)=0.18709+0.2z-1+0.18709z-2 (1.45)
Solucin en MATLAB
>> freqz([0.18709 0.2 0.18709],1,100)
Figura 1.9 Magnitud Lineal y Fase de la respuesta en frecuencia del filtro FIR del Ejemplo
1.1.
28
sumadores y registros de desplazamientos que realizan la funcin de retardo. El ciclo
WHILE principal se ejecuta hasta procesar el nmero de muestras total que componen la
secuencia de entrada.
Figura 1.10 Programacin en LabVIEW de un filtro FIR pasa bajas de orden 2 con
frecuencia de corte 100Hz y ventana rectangular
Figura 1.11 Secuencia de Salida del filtro para una entrada senoidal de 200Hz,
muestreada a 1kHz.
29
En general el proceso para disear un filtro digital y procesar una secuencia de entrada
con el filtro diseado se puede apoyar en software de aplicacin como LabVIEW o
MATLAB para agilizar el procedimiento. En el caso especfico del software de LabVIEW,
se cuenta con una variedad de instrumentos virtuales para el procesamiento digital que
son las herramientas poderosas que se utilizan en el captulo 3 para el diseo e
implementacin de filtros digitales.
Ejemplo 1.2
Disear un filtro pasa bajas con ventana de Kaiser con frecuencia de paso de 6kHz y
frecuencia de rechazo de 9kHz, sabiendo que se admite un rizado en la banda de paso
de 0.1 y en la supresora es de 0.01. La frecuencia de muestreo de 30kHz.
Como el mtodo de diseo de la ventana implica que los rizados deben ser idnticos
tanto en la banda de paso como en la banda de rechazo entonces se elige el rizado ms
pequeo, esto es, se toma 2 = 0.01.
1. El primer paso consiste en convertir las especificaciones del filtro a un prototipo de filtro
pasa bajas y elegir la ventana que pueda cumplir con los requerimientos. Sin embargo, en
este ejemplo se obvia este paso ya que el enunciado del ejemplo exige disear un filtro
pasa bajas con ventana Kaiser.
2. Se determina la frecuencia de corte del filtro paso bajo ideal, que debido a la simetra
en la discontinuidad de la respuesta en frecuencia del ideal, sera:
6000 + 9000
c = 2 = 2 7500 rad/s (1.46).
2
30
9000 6000
= 2 = 0.2 (1.47).
30000
4. Los resultados de las Ecuaciones (1.46) y (1.47) se sustituyen en las Ecuaciones (1.38)
y (1.39) para obtener el orden y el factor de forma respectivamente.
40 8
M = = 22.2886 (1.49).
2.285
M = 22 y = 3.4 (1.51).
5. La respuesta al impulso del filtro pasa bajo ideal se calcula como lo indica la Ecuacin
(1.52).
sen[(n 11)0.5 ]
hd [n] = 0.5 (1.52).
(n 11)0.5
La respuesta al impulso del filtro causal realizable viene dada por la Ecuacin (1.53)
sen[(n 11)0.5 ]
h[n] = 0.5 * w[n] (1.53)
(n 11)0.5
Donde w[n] son los coeficientes de la ventana de Kaiser dados por la Ecuacin (1.34).
31
SOLUCIN EN MATLAB
32
1.3.3 Diseo de Filtros FIR ptimos de Amplitud de Rizado Constante
Se desea tener un mtodo de diseo de filtros FIR que permita tener un mayor control
sobre los errores permitidos en las bandas de paso y rechazo respectivamente, y que este
error sea mnimo. Este es el punto de partida del estudio de los filtros FIR ptimos. Para el
caso de filtros FIR usando ventanas ya se vio que producen generalmente los mismos
errores en la banda de paso y en la banda eliminada, adems tambin debido a la
simetra de las ventanas debemos disear los filtros con sobradas especificaciones
tomando el menor rizado de las bandas.
Entonces el diseo de filtros ptimos busca tener control sobre todos los parmetros de
diseo como son orden del filtro, rizados en las bandas pasantes y de rechazo,
frecuencias de corte y frecuencias de paso, por tal motivo se han desarrollado una serie
de algoritmos de diseo en los que se fijan algunos parmetros y, mediante
procedimientos iterativos, se obtienen ajustes para los restantes parmetros, por ejemplo.
Parks y McClellan, han desarrollado un mtodo que deja fijo el orden del filtro y las
frecuencias de paso y rechazo respectivamente, mientras se vara la relacin 1/ 2 ,y
1o 2 , que es el mtodo dominante en el diseo ptimo de filtros FIR.
( )
M
Ae e jw = he [n]e jwn (1.54).
n=0
( )
L
Ae e jw = he [0] + 2he [n]cos(wn ) (1.55).
n =1
33
Donde L es M/2 y Ae(ejw) es una funcin real, par y peridica de w, como el sistema que
representa la Ecuacin (1.54) es de fase generalizada entonces podemos decir que la
respuesta en frecuencia del filtro es
H(ejw) = Ae(ejw)e-jwM/2 (1.56).
En particular el teorema de Parks McClellan dice que los trminos cos(wn) se pueden
expresar como sumas de potencias del cos(w) as:
( ) a (cos w)
L
Ae e jw =
K
K (1.58)
K =0
L
Donde P ( x ) = a K x K (1.60).
K =0
34
1, 0 w wp
Hd(ejw) = (1.62).
0, ws w
1
, 0 w wp
K
W(w) = (1.63).
1, ws w
Para el nico polinomio de grado r que minimiza la funcin de error definida por la
Ecuacin (1.61) se cumple que debe tener al menos (r+2) alternancias de los
valores mximos de error permitidos.
Las alternancias deben cambiar consecutivamente de signo.
Para el caso de los filtros simtricos de orden par, haciendo x= cosw y r=L, se tiene
a (cos w)
K
P(cosw) = K (1.65)
K =0
35
Dp(x) la respuesta deseada para el caso de un filtro pasa bajas como el de la Ecuacin
(1.62) es
1, coswp cosw 1,
Dp(cosw) = (1.66).
0, -1 cosw cosws
1
, coswp cosw 1,
K
Wp(cosw) = (1.67)
1, -1 cosw cosws
Y el error queda
10 log(1 2 ) 13
M = (1.69)
2.324w
L+2
1
bK = (1.70a).
i =1 (xK xi )
36
1
W ( wK ) = , para 0 w wp y cero en el resto (1.70b).
K
) (W 1()w
K +1
(
C K = H d e jwK
)
(1.70c)
K
L +1
1
dK = = b ( x x ) (1.70d).
i =1 (xK xi ) K K L + 2
L +1
jw
[d / (x x )]C
K =1
K K K
Ae(e ) = P(cosw) = L +1
(1.71).
[d / (x x )]
K =1
K K
37
Ejemplo 1.3 Diseo de un filtro pasa bajas utilizando el algoritmo de Parks-McClellan
Se desea disear un filtro pasa bajas con una frecuencia de pasa banda de 1500Hz, una
frecuencia de rechazo de 2000Hz, un rizado en pasa banda de 0.01, un rizado en la
banda de rechazo de 0.1, y una frecuencia de muestreo de 8000Hz.
Solucin en Matlab
[n,fo,mo,w] = remezord( [1500 2000], [1 0], [0.01 0.1], 8000 );
b = remez(n,fo,mo,w);
freqz(b,1);
20
0
Magnitude (dB)
-20
-40
-60
-80
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Normalized Angular Frequency ( rads/sample)
0
-200
Phase (degrees)
-400
-600
-800
-1000
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Normalized Angular Frequency ( rads/sample)
Figura 1.14 Magnitud y Fase del filtro ptimo FIR diseado con el algoritmo de Parks-
McClellan.
38
1.4 DISEO DE FILTROS RECURSIVOS IIR
1. El diseo de filtros IIR analgicos est muy avanzado, y como se pueden obtener
resultados tiles, es ventajoso utilizar los procedimientos de diseo que ya se han
desarrollado para los filtros en tiempo continuo.
2. Muchos mtodos tiles de diseo de filtros IIR en tiempo continuo dan como
resultado frmulas de diseo simples en forma cerrada. Los mtodos de filtros IIR
digitales que se basan en esas frmulas estndar de diseo de filtros IIR continuos
son fciles de realizar.
El hecho de que los diseos de filtros en tiempo continuo se puedan trasladar a diseos
de filtros digitales no quiere decir que tengan la misma respuesta en frecuencia.
Generalmente sucede que el filtro analgico empleado para la aproximacin tiene una
respuesta en frecuencia diferente de la respuesta en frecuencia efectiva del filtro digital.
Esta circunstancia indica que al disear un filtro digital se parte de un conjunto de
especificaciones en tiempo discreto; mientras las caractersticas del filtro en tiempo
continuo se obtienen de la transformacin. Al realizar esta conversin se desea que la
respuesta en frecuencia del filtro digital conserve las propiedades esenciales del filtro
analgico. Esto implica concretamente que se espera que el eje imaginario del plano s se
transforme en la circunferencia unidad del plano z. Una segunda condicin es que un filtro
estable analgico se debe transformar en un filtro estable de tiempo discreto. Esto
significa que si el filtro continuo tiene los polos en el semiplano negativos de s, el filtro
digital tiene que tener los polos dentro del crculo unidad del plano z, tal como se ilustra en
la Figura 1.16.
.
Estas restricciones son bsicas para las tcnicas de diseo de los filtros digitales IIR.
39
1.4.1 Diseo de Filtros IIR Mediante Transformadas Bilineales
Los filtros recursivos pueden ser diseados por varios mtodos, siendo el ms comn el
basado en las transformaciones bilineales. Este procedimiento requiere del conocimiento
de la funcin de transferencia del filtro que se desea disear en el tiempo continuo. Los
coeficientes del filtro en el dominio (s) son transformados a uno equivalente en el dominio
z.
Los coeficientes que surgen de la transformacin forman los coeficientes del filtro IIR. El
origen de este mtodo viene dado por la cantidad de experiencia acumulada en el diseo
de filtros analgicos. Por tanto, todos los polinomios, tablas, mtodos analticos y grficos
para definir el filtro analgico, sern usados en el diseo de los filtros recursivos.
2 1 Z 1 2 Z 1
S= =
T 1 + Z 1 T Z + 1 (1.72).
T
1 + S
Z= 2
T
1 S
2 (1.73).
T T
1 + + j
Z= 2 2 (1.74)
T T
1 j
2 2
40
De la Ecuacin (1.74) se observa que si < 0 entonces |Z| < 1 y si > 1 entonces |Z| >
1, para todo valor de . Es decir, si los polos del filtro analgico estn en el semiplano
izquierdo de s, su imagen en el plano z est en el interior de la circunferencia unidad. Por
tanto, los filtros en tiempo continuo causales y estables se transforman en filtros en tiempo
discreto causales y estables. Seguidamente, para demostrar que el eje j se transforma
en la circunferencia unidad se procede a sustituir s = j en la Ecuacin (1.73), con lo que
se obtiene:
T
1 + j
Z= 2 (1.75).
T
1 j
2
2 w
= tan (1.76).
T 2
T
w = 2 arctan (1.77).
2
Hay que notar cmo el intervalo de la frecuencia digital 0 w se transforma en el
T
intervalo de frecuencia analgica 0 como se ilustra en la Figura 1.15.
41
Figura 1.15 Relacin entre la frecuencia digital-anloga
El paso siguiente consiste en elegir la topologa del filtro analgico que ms convenga,
esto depende de la aplicacin en particular. Teniendo el diseo del filtro analgico solo
resta por hacer la transformacin de (s) a (z) mediante la Ecuacin (1.72).
42
En resumen el diseo de un filtro IIR sigue los siguientes pasos
Disear un filtro digital paso bajo IIR con una frecuencia de muestreo de 10kHz, con un a
2
frecuencia de corte de y, al menos, una atenuacin de 10 dB a la frecuencia de
5 5
fC = 1034Hz , fS = 2312Hz
1
H (s ) = 2
s s
+ 1.41 +1
2 1034 2 1034
43
Aplicando la Ecuacin (1.72) se transforma H(s) en H(z)
1 + 2 Z 1 + Z 2
H (Z ) =
14.81 16.95Z 1 + 6.13Z 2
Solucin en Matlab
wd=[pi/5 2*pi/5];%frecuencias digitales
fa=1/(pi*T)*tan(wd/2);%calculo de frecuencias analgicas
T=1e-4;fn=1/(2*T);%periodo de muestreo y frecuencia normalizada
n=buttord(2*pi*fa(1),2*pi*fa(2),3,10,'s');%orden del filtro
[p,q]=butter(n, 2*pi*fa(1),'s');%calculo de polos y ceros de la funcin de transferencia
g1=tf(p,q);%calculo de la funcin de transferencia analgica en el dominio de s
[b,a]=butter(n, fd(1)/fn); %frecuencias normalizadas
g2=tf(b,a,T);%calculo de la transformada Z
[H,F]=freqz(b,a,2048,1/T);
plot(F,abs(H))
plot(F,angle(H))
(a) (b)
Figura 1.17 Respuesta en Frecuencia del filtro del Ejemplo 1.4 a) Magnitud del filtro
Butterworth b) Fase del filtro Butterworth
44
En general todas las tcnicas de diseo de filtros estudiadas hasta aqu intentan limitar la
respuesta de un filtro digital dentro de las zonas demarcadas en la Figura 1.18, la
diferencia entre cada una de ellas radica en los diferentes mtodos matemticos que
utilizan para cumplir esas condiciones. Adems se observan las desviaciones del filtro
diseado con respecto a la respuesta de un filtro pasa bajas ideal.
Figura 1.18 Desviaciones tpicas de la respuesta de un filtro digital con respecto a un filtro
ideal pasa bajas
45
2. GENERADOR DE FORMAS DE ONDA ARBITRARIAS
4
Para informacin tcnica sobre la tarjeta de adquisicin, referirse al anexo D.
5
VI, Virtual Instrument. Abreviatura de LabVIEW para referirse a Instrumento Virtual. Vese ms
informacin sobre LabVIEW y sus VIs en el Anexo A.
46
informacin de las formas de onda y adems de controlar las opciones de generacin.
Este bloque conecta con el controlador de la TAD envindole las tareas de generacin
designadas por el programa. El controlador se encarga de enviar los comandos correctos
a la tarjeta de adquisicin de manera que se generen de forma correcta los datos
enviados por el software. El controlador es programado de fbrica y su cdigo es
transparente al usuario. Por ltimo la TAD tiene el hardware adecuado para generacin
analgica como son conversores D/A y filtros de reconstruccin pasa bajas que junto con
los buffers almacenados en la memoria del PC generan la seal analgica.
6
Programa de fbrica escrito en ROM que no puede ser modificado por el usuario.
47
Figura 2.2. Sistema de generacin.
Las condiciones necesarias para poder hacer uso del generador de seales son: Una
tarjeta de adquisicin compatible con LabVIEW que se encuentre correctamente instalada
con su controlador instalado adecuadamente, un computador personal con la tarjeta de
adquisicin conectada a una ranura PCI y el software de aplicacin diseado.
Un generador de seales arbitrarias tiene una gran ventaja sobre los generadores
comunes de seales peridicas bsicas. Esta ventaja es la gran cantidad de aplicaciones
como son: diseo de seales multitonales de audio, pruebas de dispositivos de anlisis
cardiaco, simulacin de seales de comunicaciones, implementacin de seales para
estimular circuitos, generacin de pulsos, simulaciones en tiempo real, diseo y prueba de
seales mezcladas, simulacin y mejoramiento de daos en la calidad de seales
bsicas, importacin de formas de ondas de bases datos almacenadas en archivos de
texto y generacin de seales en tiempo real para evaluar la respuesta en frecuencia de
filtros de cualquier tipo.
48
2.1 ESPECIFICACIONES DEL GENERADOR
Tambin cuenta con las siguientes opciones para manipular las formas de ondas
citadas anteriormente:
Adicin de seales
Diferencia de seales
Resolucin vertical: Los dos conversores D/A de la tarjeta PCI 1200 cuentan con 12 bits
de resolucin vertical con lo cual se obtienen 4096 niveles de voltaje. La TAD puede
49
generar seales bipolares con amplitudes entre -5V y + 5V. Tambin por medio del
software MAX 7 de la TAD se puede seleccionar un rango unipolar entre 0 y 10V.
Empricamente la tarjeta PCI 1200 demostr generar con una frecuencia de muestreo de
hasta 50kilo-muestras/seg. Tericamente esta frecuencia de muestreo permitira una
frecuencia pico de generacin de 25kHz. En la prctica la mxima frecuencia de salida
estable recomendada es 1kHz. Durante la generacin simultnea LabVIEW escribe un
dato de salida por cada canal durante cada intervalo de muestreo.
El generador es de doble canal simultneo. Se puede generar por dos canales, el canal 0
y/o el canal 1 los cuales corresponden al pin 10 y pin 12 respectivamente de la tarjeta
PCI 1200 con tierra anloga en el pin 11. Estos pines estn disponibles de la bornera
integrada con la tarjeta de adquisicin8. La mxima corriente que puede entregar el
generador a una carga es de 2 mA.
Este generador se dise para crear una amplia gama de seales de prueba para evaluar
el diseo de filtros digitales FIR e IIR. No es adecuado para aplicaciones que requieran
7
MAX, Measure & Automation. Software integrado con la TAD que permite configurar diferentes
modos de operacin.
8
Para ms informacin sobre la configuracin de los pines de la TAD, referirse al anexo D.
50
generar seales de alta frecuencia (del orden de 100kHz o 1MHz), con excelente calidad
en su respuesta en frecuencia y una gran estabilidad. Esto se debe a que la TAD PCI
1200 de National Instruments no est diseada para este tipo de aplicaciones pues es
una tarjeta de bajo costo. Sin embargo para evaluar el diseo de filtros digitales se
presenta como una potente herramienta, ya que permite disear y generar seales con
una informacin de frecuencia que sea modificada con la aplicacin de un filtro
especfico.
El panel frontal del generador de seales puede ser manipulado por el usuario mediante
el mouse del PC y fue diseado para tener una apariencia similar a la de los generadores
de formas de ondas bsicas.
Sin embargo es recomendable que el usuario adopte una metodologa para la edicin de
las formas de onda para que su experiencia con el generador sea eficiente y as obtener
los resultados esperados.
51
Figura 2.3. Panel Frontal del Generador de Seales Arbitrarias
52
2.3 GENERACIN DE FORMAS DE ONDA
Al generar formas de onda se puede pensar en dos tipos de seales, seales constantes
y seales que varan con el tiempo. LabVIEW tiene subprogramas especiales para este
tipo de seales.
53
vez que se ejecuta el algoritmo de generacin, ya que esto produce demoras de tiempo
entre cada buffer generado.
Figura 2.5 Programacin de la generacin analgica con buffer utilizando VIs intermedios.
Este diagrama utiliza VIs de salida anloga intermedios que permiten establecer varios
parmetros de generacin. AO Config.VI configura la tarjeta de adquisicin localizando el
tamao del buffer, el canal de salida y el dispositivo. AO Write.VI prepara los datos a ser
generados. AO Start.VI da comienzo a la generacin y permite establecer la rata de
generacin y el nmero de veces que ser generado el buffer antes de terminar la
generacin. El ciclo WHILE permite detener la generacin en cualquier momento,
chequea si surge algn error e indica cuantos buffer se han generado. Finalmente AO
Clear.VI limpia la salida al terminar la generacin liberando el buffer y se muestra en
mensaje de error en caso de que lo haya. Este tipo de generacin es el indicado para la
aplicacin de generacin y por tanto se explicarn con detalle los VIs utilizados durante
esta generacin.
54
2.3.3 Descripcin de los VIs Utilizados en la Generacin con Buffer
A continuacin se describen las terminales de entrada y salida de los VIs utilizados en la
generacin con buffer para comprender su funcionamiento y cuales comandos envan a
la TAD. Estos VIs son de nivel intermedio y son los ms recomendados para realizar una
programacin flexible y utilizar las potencialidades de la TAD. Las entradas en negrilla son
las ms comnmente utilizadas y deben ser cableadas como requerimiento para que el
programa se pueda ejecutar; las entradas claras son opcionales y no necesitan ser
cableadas para la ejecucin del programa. Los valores entre parntesis () son los valores
por defecto de las entradas. Los valores en brackets ([ ]) son raramente utilizados.
2.3.3.1 AO Config.vi
Este VI configura los canales, los lmites de la seal generada y el tamao del buffer. Se
observa en la Figura 2.6.
- Limit settings: Son los lmites de seal para cada canal. Para el generador de seales
se tomaron los valores de voltaje por defecto de la tarjeta PCI 1200 que son -5 V a 5 V.
-Device: Es el nmero del dispositivo de adquisicin que est asignado por el software al
instalar la TAD. La tarjeta PCI 1200 de NI tiene asignado el nmero uno (1).
-Channels: Es una lista de los canales de salida anlogos que se desean utilizar,
editados en una cadena de texto. Si x, y, z son canales, se puede especificar una lista de
canales separando cada canal individual por comas en una cadena de texto (por ejemplo,
x,y,z). Si x es el primer canal en un rango consecutivo de canales y z es el ltimo canal,
se puede especificar el rango de canales separando el primer y ltimo canal por dos
55
puntos en una cadena de texto (por ejemplo, x:z). La tarjeta PCI 1200 tiene dos canales
de salida anloga configurados como cero (0) y uno (1).
-Error in: Describe las condiciones de error que se presentaron antes de la ejecucin del
VI. Si hay un error el valor de Error in pasa a Error out.
-Allocate mode: Indica a LabVIEW como designar la memoria para el buffer. El software
diseado utilizar el valor por defecto de esta entrada (0) que designar la memoria del
PC para el buffer.
-Error out: Contiene informacin de error. Si Error in indica un error Error out tendr
exactamente la misma informacin. De lo contrario Error out tendr la informacin del
error ocurrido en el VI.
2.3.3.2 AO Write.vi
Este VI Escribe datos en el buffer para generar la seal anloga. Puede manejar dos tipos
de datos: arreglos de datos sin informacin de tiempo o formas de onda con todos sus
atributos. Se observa en la Figura 2.7.
56
Figura 2.7 AO Write.VI. Tomada de LabView Help.
-Task ID in: Esta entrada trae la informacin de la tarea de generacin que se est
realizando. Por ejemplo trae datos de operacin provenientes de Task ID out de AO
Config.Vi.
-Time limit in sec: Esta opcin permite establecer el tiempo de duracin de la generacin
del buffer. Terminado este tiempo se puede rescribir informacin en buffer si este no se ha
generado en su totalidad. Para el caso del generador arbitrario la entrada tiene su valor
por defecto el cual permite a LabVIEW establecer el tiempo para que la forma de onda
pueda ser generada en su totalidad antes de escribir nuevos datos en el buffer.
-Allow generation: Para el generador arbitrario de seales esta entrada debe estar en su
valor por defecto el cual permite generar el buffer repetidas veces, sin necesidad de
escribir informacin nueva en l. De esta forma cada vez que LabVIEW termina de
generar el buffer en su totalidad regresa de nuevo al principio del buffer y lo vuelve a
generar sin importar si la informacin ha sido o no actualizada, o sea se repiten los datos
anteriores de la generacin en caso no que no se hayan introducido unos datos nuevos.
-Error In: Esta entrada contiene la misma informacin de error explicada en el anterior VI.
En caso de que Error In indique informacin de un error, el VI no se ejecuta y la
informacin se pasa a Error out.
-Task ID out: Esta salida tiene el mismo valor que Task ID in.
57
-Number of updates done: Es el nmero de veces que el VI ha generado un dato. Esto
lo mismo que el nmero de muestras que el VI ha transferido desde el buffer hasta el
conversor D/A de la TAD para ser generadas.
-Number of buffers done: Es el nmero de veces que se han generado todas las
muestras del buffer. Esto es lo mismo que el nmero de veces que el VI ha transferido el
buffer completo al conversor D/A de la TAD.
2.3.3.3 AO Start.vi
-Number of buffer iterations: Este nmero indica a LabVIEW cuantas veces debe
generar la forma de onda almacenada en el buffer de salida. Por defecto es uno (1) lo que
resultara en la generacin de la informacin del buffer una sola vez y luego se detendra
la generacin. Para una generacin continua del buffer esta entrada se debe establecer
58
en cero (0) con la cual LabVIEW genera los datos del buffer de salida continuamente y la
informacin del buffer continuar en la salida de la TAD. Para detener la operacin de
generacin y liberar el buffer se tiene que ejecutar el AO Clear. VI.
-Update rate: Es el nmero de muestras del buffer generadas por segundo. Esta entrada
permite controlar la frecuencia o rata de generacin.
-Error In: Describe las condiciones de error antes de que se ejecute el VI. Si la entrada
indica algn error el VI no se ejecuta y retorna el valor de error in en error out.
-TaskID out: Esta salida tiene el mismo valor que la entrada TaskID in.
2.3.3.4 AO Wait.vi
Este VI espera hasta que la tarea de generacin de la forma de onda termine antes de
continuar el flujo de datos. Se usa para esperar que una generacin con buffer finita
termine antes de llamar a AO Clear.VI. Se observa en la Figura 2.9.
-TaskID in: Identifica la tarea de entrada. Para el caso del generador arbitrario su tarea de
entrada es una generacin con buffer finita.
59
-TaskID out: Contiene la misma informacin que TaskID in.
2.3.3.5 AO Clear.vi
Este VI limpia el canal de salida anloga asociado a su tarea de entrada (TaskID in). Sin
importar si ha existido un error o no, este VI detiene la generacin y libera recursos
internos como buffers. Se observa en la Figura 2.10.
-TaskID in: Identifica la tarea de entrada. Es decir el canal de salida anlogo que se
desea limpiar.
-Error in/out: Contiene informacin de error. Pero sin importar si indican o no error, este
VI se ejecuta. Si ha ocurrido un error durante la operacin de generacin esta informacin
es de utilidad para visualizar dilogos de error.
60
Gracias a la programacin por flujo de datos en LabVIEW, el algoritmo de programacin
del generador de seales se divide en tres bloques principales que se ejecutan en un
orden secuencial.
61
2.4.1 Bloque 1- Construir las Ondas
Convesin de Cluster
a Arreglo de datos A la salida se obtiene
Cluster de seis elementos booleanos un nmero del 1 al 6
booleanos ordenados del y el nmero 0 si no se ha
0 al 5 presionado un pulsador
Esta aplicacin tiene la funcin de buscar dentro del arreglo de datos booleanos
constantemente la pulsacin de uno de los controles para ejecutar el caso
correspondiente. El incremento de 1 se utiliza para crear un caso stand by cuando el
usuario no ha presionado ningn pulsador. Los casos asignados a cada pulsador en su
orden dentro del cluster son como se observa en primera columna de la Tabla 2.1. La
segunda columna de la tabla corresponde a los nombres de los textos booleanos de los
controles y la tercera columna corresponde al nmero de salida de la aplicacin luego del
incremento. Se observa que el caso 0 nunca puede ser seleccionado por el usuario y por
tanto es un caso de espera de seleccin o stand by del programa. En la Figura 2.13. se
observa el men de seleccin de la opcin tal y como aparece en el panel frontal del
generador de seales arbitrarias.
9
Para una descripcin detallada de los instrumentos virtuales utilizados a lo largo del texto referirse
al Anexo A.
62
Tabla 2.1. Nmeros asignados para cada caso
seleccionado por el usuario
No. No.
Opcin
Ent. Salida
0 Funcin de Librera 1
1 Funcin desde Mouse 2
2 Funcin de Frmula 3
3 Can 0 + Can 1 = Can 0 4
4 Can 0 + Can 1 = Can 1 5
5 Guardar Seal 6
6 Cargar Seal 7
Figura 2.13. Men de seleccin de opcin
7 Limpiar Seal 8
10
Referirse al anexo A, para entender como maneja LabVIEW los subprogramas.
63
Figura 2.14 Caso Funcin de librera.
Al entrar a este caso se ejecuta el subprograma Librera. Este subprograma tiene como
entradas el canal de salida anlogo, la rata de generacin del buffer y el nmero de
muestras del buffer. Como salidas tiene el vector de datos correspondientes a la seal
editada. Mediante un caso True-False se escoge donde se guardar el vector de datos, si
en el canal 1 o en el canal 0.
El panel frontal del subprograma Librera se muestra en la Figura 2.15. En esta figura se
observa una grfica con informacin de tiempo donde se visualiza la seal que se va a
generar. El color de la seal indica por cual canal de salida analgica se generara la
seal en caso de que el usuario inicie la generacin. El color azul indica el canal 0 y el
color verde indica el canal 1. Para editar la seal se utilizan los controles que se
observan en la Figura 2.15. Estos controles son: tipo de seal, el cual se puede escoger
entre seal senoidal, triangular, cuadrada o sierra; amplitud en volts, la cual debe estar
dentro de los lmites de voltaje permitidos por la TAD; frecuencia en hertz de la seal,
fase en grados, offset o nivel de DC y ciclo til11. En la figura se observa como ejemplo un
11
Opcin disponible solo para seal cuadrada.
64
perodo de una seal senoidal de 1 volt de amplitud ,1Hz de frecuencia y sin offset ni
desfase que se podra generar por el canal 0.
65
Figura 2.16 Basic Function Generador.VI. Tomada de LabVIEW Help.
Los datos de amplitud, offset, tipo de seal, frecuencia, amplitud, fase y ciclo til; son
ingresados por el usuario desde el panel frontal del subprograma y son las entradas de la
aplicacin. Las entradas de informacin de muestreo como son la rata de generacin y el
nmero de muestras son introducidas a la aplicacin utilizando variables globales que
tienen asignadas los datos de configuracin del generador que se ingresaron por el
usuario desde el panel frontal principal del generador (vase Figura 2.3). Esto debe ser
as para que exista congruencia entre la informacin de tiempo del arreglo de datos
construido por la aplicacin y la seal que vamos a generar. A la salida de la aplicacin
se obtiene un cluster que contiene un arreglo de datos con la informacin de tiempo
extrada de las entradas rata de generacin, nmero de muestras y frecuencia. Para
facilitar el procesamiento de los datos de la forma de onda, se extrae del cluster
nicamente el arreglo de datos para procesarlo con simples operaciones entre vectores
de datos. En la Figura 2.17 se muestra parte del algoritmo en detalle.
66
Figura 2.17 Detalle del diagrama de bloques del subprograma Librera.
67
Figura 2.18 Detalle del diagrama de bloques del subprograma Editar form.
El panel frontal del subprograma Editar Form se muestra en la Figura 2.20. En esta figura
se observa una grfica con informacin de tiempo donde se visualiza la seal que se va a
generar. Al igual que en el subprograma Librera se toma la misma convencin de color
en las seales para indicar su canal de salida. El color azul indica el canal 0 y el color
verde indica el canal 1. El algoritmo del subprograma Editar form tiene como aplicacin
principal a Formula Waveform el cual se observa en la Figura 2.19. Este VI crea una
forma de onda de salida a partir de una frmula ingresada en su string de entrada.
Para editar la seal se utilizan los controles que se muestran en la Figura 2.20. Para
ingresar la frmula hay una casilla en blanco donde se puede ingresar la frmula
mediante el teclado. La amplitud en volts se representa mediante la variable a en la
68
casilla de frmula y se vara con el control de amplitud. La frecuencia en hertz se
representa mediante la variable f (donde w=2*pi*f) y se vara tambin son su
correspondiente control de frecuencia. Tambin se puede variar el offset de la seal.
69
Como se observa en la Figura 2.21 la aplicacin tiene como entrada un cluster con los
datos de los controles ubicados en el panel frontal los cuales tienen que separarse del
cluster antes de entrar a la aplicacin. Esta organizacin a manera de cluster permite un
mejor manejo del algoritmo y adems mediante la lgica que se observa en la figura y un
caso True-False permite optimizar la ejecucin de la aplicacin nicamente cuando
existen cambios en los controles de entrada. La informacin de muestreo de la aplicacin
se ingresa mediante variables globales que tienen almacenados los valores de
configuracin del generador ingresados por el usuario desde el panel frontal del
generador de seales arbitrarias (Vase Figura 2.3).
Figura 2.21 Detalle del diagrama de bloques del subprograma Editar Form.
70
acotada a 1000 muestras por la aplicacin Array Subset.VI; lo cual significa que la grfica
de mouse tendr un mximo de 1000 puntos. Mediante un caso True-False se escoge
donde se guardar el vector de datos, si en el canal 1 o en el canal 0. Tambin se
observa una estructura de secuencia en la accin cero (0) donde se ejecuta el
subprograma y se almacena el arreglo de datos. La accin uno (1) no se muestra en la
figura pero en ella se guarda la frecuencia de salida para este caso. En el caso de
Funcin de Mouse la frecuencia de salida est determinada nicamente por la rata de
generacin establecida en la configuracin del generador ya que un perodo de la seal
siempre sern 1000 muestras.
Se grafican con el mouse nicamente funciones de tipo y=f(x) y se debe tener en cuenta
que los lmites de salida de la tarjeta de adquisicin son de -5V a 5V para seales
bipolares o de 0V a 10V para seales unipolares. Adems como siempre son 1000
muestras la duracin de un perodo de la seal se podr calcular como
71
y la frecuencia de salida al generar la seal continuamente ser por tanto de
aproximadamente
El panel frontal del subprograma Mouse se ilustra en la Figura 2.23. Se observa que se ha
dibujado una seal bipolar con una amplitud de 4 volts aproximadamente. La frecuencia
de salida de esta seal generada continuamente se calcula como se explic
anteriormente. En el panel frontal del programa Generador Arbitrario se indica la
frecuencia estimada para esta seal. El cursor blanco es la gua para dibujar la seal y se
puede pensar en l como la punta de un lpiz con el cual se dibujar la seal. Su
movimiento se controla naturalmente con el mouse o ratn del PC.
72
x y y de los cursores mediante nodos de propiedades que tienen almacenada la
posicin de los cursores en cualquier momento. Si hay algn cambio en la posicin inicial
del cursor que se establece por defecto el subprograma procede a dibujar un nuevo punto
y a interpolarlo linealmente. De esta forma se dar la impresin al usuario de que esta
graficando una forma de onda continua cuando en realidad se trata de un arreglo de datos
de 1000 muestras equiespaciadas.
73
2.4.1.5 Diferencia de seales en el Canal 1
74
Estructura
de caso 6
seleccionado
Write to Spreadsheet
File.VI
Traspone
el arreglo
a columna
75
2.4.1.8 Limpiar Canal
Es un bloque de enlace de gran importancia entre el primer y el tercer bloque. Este bloque
se encarga de preparar los arreglos de datos que contienen las formas de ondas
construidas por el primer bloque de manera que el tercer bloque los pueda entender.
Este bloque contiene una serie de casos anidados que dependen de la seleccin del
usuario y de cmo se debe organizar la informacin de los arreglos de datos de las
formas de onda.
El caso de mayor nivel es de tipo True-False y divide el algoritmo en dos casos: cuando el
usuario ha seleccionado alguna opcin y otro cuando el algoritmo est en modo stand by
en espera de la seleccin de una opcin.
76
2.4.2.1 Caso FALSE
77
2.4.2.2 Caso TRUE
Este caso se ejecuta cuando el usuario ha seleccionado alguna opcin. Dentro de este
caso la informacin proveniente del bloque 1 se organiza dependiendo el caso que ha
seleccionado el usuario. Si el usuario ha construido una forma de onda para generar en el
canal 0 o en el canal 1, se ejecuta un caso anidado en el cual se configura el arreglo de
salida como un vector fila y el canal de salida para enviarlos al bloque 3. En caso de que
ambos canales contengan informacin para generar, se ejecuta un caso en que el arreglo
de salida es un matriz de dos dimensiones en donde la primera fila corresponde a los
datos del canal 0 y la segunda fila corresponde a los datos del canal 1. Adems se
configura el string de canal para enviarlo al bloque 3 de manera que este genere
simultneamente por el canal 0 y canal 1. La matriz de salida bidimensional es acotada al
nmero de muestras por buffer configurado por el usuario. Por ltimo los datos del canal 0
y/o el canal 1 que van a ser generados se les adiciona su informacin de tiempo
independiente seleccionada por el usuario de tal forma que puedan visualizarse las ondas
en una grfica antes de ser generadas. En la Figura 2.30 se puede observar el algoritmo
en detalle.
78
2.4.3 Bloque 3- Generacin Analgica con Buffer
Este bloque es el encargado de enviar los comandos correctos a la TAD PCI 1200 y
transferir los datos del buffer al conversor D/A para iniciar la generacin. Este bloque se
ejecuta si hay informacin lista para ser generada y el usuario desea comenzar la
generacin analgica. Sus datos de entrada son:
Selecciona entre una generacin continua y una generacin finita. Este control se cablea
directamente a la aplicacin AO Start. En modo de generacin continua el buffer de salida
se repetir consecutivamente hasta que ocurra un error o el usuario desee detener la
generacin. La opcin de generacin finita se maneja con la aplicacin AO Wait. Gracias
a esta aplicacin se logra detener el flujo de datos hasta terminar la generacin finita y de
esta forma permitir a la aplicacin AO Clear establecer las salidas en cero volts al terminar
la generacin finita.
Es una matriz bidimensional que debe ser transpuesta para ingresarla correctamente a
AO Write.VI. La matriz debe tener la configuracin mostrada en la Figura 2.31.
79
Por ejemplo en el caso de construir un vector de salida en el bloque 2 como el de la
matriz A mostrada en la Figura 2.32, la forma correcta de ingresarla a AO Write sera
luego de trasponerla como se ve en la matriz B. En este caso la TAD PCI 1200 generara
simultneamente por el canal 0 y el canal 1 las cuatro muestras (en este caso un valor de
DC de 1V y 2V respectivamente) a una rata de generacin seleccionada por el usuario.
2.4.3.3 Canal
80
Figura 2.33 Detalle del algoritmo de generacin con buffer del bloque 3.
81
2.5.1 Diagrama bloque 1
En la Figura 2.34 se sintetiza la funcin del Bloque 1, la cual es editar las seales que se
desean generar dependiendo de la opcin seleccionada por el usuario.
82
2.5.2 Diagrama Bloque 2
La funcin del bloque 2, como se observa en la Figura 2.35, es preparar los datos de
salida dependiendo de las opciones de generacin configuradas por el usuario.
83
2.5.3 Diagrama Bloque 3
84
Al terminar de ejecutarse el bloque 3 el algoritmo retorna al bloque 1 a esperar otra
seleccin del usuario y el ciclo se repite constantemente. Al presionar el control de Ayuda
(vase Figura 2.3.) se despliega una gua corta explicando como editar una forma de
onda en pocos pasos. Una gua detallada, con ejemplos de formas de onda editadas con
la aplicacin, se encuentra en el anexo B. Para finalizar totalmente la ejecucin del
programa se presiona el control Salir en el panel frontal del generador (vase Figura 2.3).
85
3. ALGORITMOS DE ADQUISICIN Y FILTRADO
Este captulo pretende mostrar las funciones de LabVIEW que realizan estas operaciones
y utilizarlas en una aplicacin conjunta que permita adquirir una seal y filtrarla en tiempo
real.
86
seales elctricas, tales como: cardiacas, cerebrales, senoidales, cuadradas, triangulares
y aleatorias (que no se pueden expresar como una funcin matemtica).
Cada uno de estos mtodos se aplica dependiendo del tipo de seal que se vaya a
adquirir. Por ejemplo, en la medicin de temperatura slo se necesita tomar una muestra
a la vez, en cambio en la medicin de seales cardiacas es necesario obtener un nmero
de muestras que permita describir la seal completa por lo menos durante un periodo.
El mtodo de adquisicin no buffereado tiene una variacin que permite adquirir varias
muestras y llevarlas a un indicador de tipo vector que las almacene. Esto se puede hacer
aadiendo un bucle al algoritmo de la Figura 3.1 para repetir este proceso en un periodo
de tiempo dado por una demora de software o por un reloj. Este reloj puede ser interno (lo
87
posee la TAD12) o externo (se debe conectar a la tarjeta, habiendo deshabilitado
previamente el reloj interno). Una adquisicin de este tipo con demora por software se
muestra en la Figura 3.2.
El problema que aparece con las demoras por software es que no son muy precisas, lo
que lleva a que la frecuencia de muestreo no se mantenga constante, en cambio con el
reloj, el tiempo de muestreo es ms preciso.
Sin embargo, al almacenar las muestras en un vector que ocupa una parte de la memoria
principal, se est utilizando un mtodo buffereado, con la diferencia de que el buffer no se
establece antes de empezar la adquisicin. Esta forma de adquirir presenta un problema
con la adquisicin continua de seales. Cada vez que se termina un ciclo de adquisicin,
se produce una demora que perjudica la seal, observndose un tiempo muerto como el
de la Figura 3.3.
12
TAD. Abreviatura de Tarjeta de Adquisicin de Datos.
88
Figura 3.3 Ilustracin de un tiempo muerto en la adquisicin no buffereada.
El mtodo buffereado simple localiza un buffer en la memoria RAM13 del computador para
almacenar las muestras que se van adquiriendo y slo cuando se llena por completo o el
nmero de muestras a adquirir se termina, se pueden procesar las muestras. Por otro
lado, el buffer circular permite acceder a los datos mientras se adquieren. Un algoritmo
como el que se muestra en la Figura 3.4 se puede utilizar como una adquisicin
buffereada simple y el de la Figura 3.5 como una adquisicin buffereada circular.
13
RAM. Abreviatura de Random Access Memory.
89
Figura 3.4. Adquisicin buffereada simple.
El tipo de adquisicin utilizado en este proyecto fue el buffereado circular, por eso a
continuacin, se explica detalladamente este mtodo.
La adquisicin buffereada circular, al igual que la simple guarda los datos que se van
adquiriendo en un buffer, con la diferencia de que este es circular.
90
Un buffer circular es aquel que permite que una aplicacin pueda acceder a los datos que
contiene este mientras que l sigue recibiendo datos de otra aplicacin. La Figura 3.6
muestra cmo trabaja un buffer circular.
En esta Figura se ve cmo los datos se van desplazando hacia la derecha. Los datos que
entran primero son los que primero salen del buffer. Esta forma de guardar y recuperar los
datos recibe el nombre de FIFO14.
Figura 3.6. Cmo trabaja un buffer circular. Tomada de LabView Measurements Manual.
Al observar la Figura 3.6, el lector puede ver que el primer paso que sigue la adquisicin
buffereada circular es almacenar una cantidad de datos en el buffer. Esta operacin la
ejecuta la aplicacin AI Start.vi de LabVIEW. El segundo paso consiste en transferir una
cantidad de datos a una aplicacin arbitraria de LabVIEW. Esta operacin la produce la
14
FIFO. Abreviatura de First In First Out.
91
rutina AI Read.vi. El tercer y el cuarto paso muestran cmo los datos se van desplazando,
permitiendo que el buffer se llene y desocupe constantemente.
Otro problema se presenta cuando la aplicacin recupera los datos del buffer a una
velocidad tan pequea, que hace que este se llene y los datos nuevos que entran a este
se sobrescriban. Este inconveniente se soluciona disminuyendo la frecuencia de
muestreo.
Despus de haber visto con detalle los diferentes tipos de adquisicin se puede concluir
que para realizar la adquisicin de la seal de forma continua se debe utilizar la tcnica
buffereada circular. Este tipo de adquisicin utiliza un grupo de funciones que se explican
a continuacin.
92
analgicas. De esta forma, el programador slo debe utilizarlas, segn la necesidad que
tenga.
3.1.3.1 AI Config.vi
Esta funcin se utiliza para configurar la adquisicin de seales analgicas. Entre los
parmetros que se pueden configurar en una adquisicin a travs de AI Config.vi estn: el
dispositivo de adquisicin, el canal de adquisicin, el rango lmite de la seal de entrada y
el tamao del buffer, como los ms importantes.
En la Figura 3.7 se muestra esta rutina con sus respectivas entradas y salidas.
93
paquete National Instruments LabVIEW 6i. All tambin se pueden configurar otros
parmetros como el rango de trabajo de la TAD, el modo de conexin de las seales de
entrada, entre otros.
Error in: describe las condiciones de error ocurridas antes de la ejecucin de esta
rutina. Si un error ha ocurrido anteriormente, esta aplicacin retorna un valor de
error a travs de la salida error out.
94
3.1.3.2 AI Start.vi
A continuacin se presentan las entradas y salidas de esta rutina con sus respectivas
definiciones.
95
valor predeterminado de esta entrada es 1000 muestras/s. Una entrada de -1
produce una frecuencia de reloj aleatoria. Se puede usar este valor cuando la
frecuencia de reloj del dispositivo no sea programable, como por ejemplo en las
series 43XX y 40XX de las TAD National Instruments. Si el valor ingresado es
cero, LabVIEW deshabilita el reloj interno de la tarjeta y permite usar un reloj
externo. Para mayor informacin acerca de las fuentes de reloj, se debe consultar
la ayuda de AI Clock Config.vi.
La entrada error in y la salida error out cumplen las mismas funciones que en AI
Config.vi.
3.1.3.3 AI Read.vi
Esta aplicacin lee un nmero especfico de datos del buffer de adquisicin. La principal
salida de esta funcin es el vector o forma de onda que contiene los datos recuperados.
La rutina AI Read.vi se muestra en la Figura 3.9.
A continuacin se presentan las entradas y salidas de esta funcin con sus respectivas
definiciones.
96
Start.vi. Si el nmero de muestras a leer es -1 y el nmero de muestras a adquirir
es 0; LabVIEW escribe el nmero 100 en la entrada number of scans to read.
3.1.3.4 AI Clear.vi
Cuando el bloque AI Clear.vi es ejecutado, el valor que entra por taskID in se convierte en
cero y sale por taskID out eliminando la tarea de adquisicin.
Las funciones que se utilizan para disear los filtros son tres: Digital IIR Filter.vi, Digital
FIR Filter.vi, e IIR Filter.vi y se utilizan cada una para disear filtros IIR o FIR segn
corresponda.
97
3.2.1 Digital IIR Filter.vi
Como su nombre lo dice, esta funcin permite filtrar una o varias seales con un filtro IIR.
Este instrumento virtual permite disear un filtro para cada seal de entrada o uno para
todas. Cada seal se debe introducir por un canal de entrada de la TAD. En el caso de la
TAD PCI 1200 que posee 8 canales, se pueden introducir 8 seales referenciadas al
mismo punto. Si la referencia de cada seal es diferente, los canales se deben tomar en
forma diferencial, por lo que se obtendran solamente 4 canales. En el manual de la TAD
se explica el modo de conexin para cada caso.
Las seales de entrada se deben llevar a un arreglo de formas de onda para poder
introducirlas al filtro. As mismo si se va a utilizar un filtro para cada canal, se deben
introducir las especificaciones en un arreglo. El diagrama de esta funcin se puede ver en
la Figura 3.11.
Las diferentes topologas que puede manejar esta funcin son: Butterworth, Chevyshev,
Elptica y Bessel y permite disear los cuatro tipos de filtros: Pasa altas, pasa bajas, pasa
banda y para banda.
Con slo dar las especificaciones del filtro, esta funcin disea el filtro, genera la
respuesta en frecuencia de magnitud y fase. Si una seal se conecta a la entrada signal
in, por la salida signal out se generar la seal filtrada.
98
IIR filter specifications: Contiene los parmetros de diseo del filtro y se
muestran en la Figura 3.12.
Figura 3.13. Parmetros para computar el orden de un filtro IIR. Tomada de LabVIEW
99
Signal out:: Es la seal filtrada
Esta funcin es muy similar a la anterior con la nica diferencia de que las
especificaciones se deben dar para un filtro FIR. Los parmetros de diseo de un filtro FIR
se muestran en la Figura 3.14.
Esta funcin permite disear dos topologas de filtros FIR: rizado constante y ventaneado.
Adems posee una opcin llamada FIR by specification que computa el orden del filtro
para unas especificaciones dadas.
Esta funcin filtra una secuencia de entrada usando la forma directa dada por los
coeficientes de la ecuacin de diferencias de un filtro. El diagrama se muestra en la Figura
3.15.
100
Figura 3.15. IIR Filter.vi. Tomada de LabView Help.
Esta funcin tambin se puede usar para filtros FIR introduciendo slo los coeficientes
que multiplican la secuencia de entrada.
Ejemplo 3.1 Diseo de un filtro FIR pasa bajas con ventana rectangular
En el ejemplo 1.1 se pidi disear un filtro FIR con ventana rectangular, pasa bajas,
frecuencia de corte de 100Hz, orden 2 y frecuencia de muestreo de 1kHz.
101
Los parmetros de diseo que se deben introducir en la funcin Digital FIR Filter.vi de
LabVIEW son los que se muestran en la Figura 3.16.
Si estas grficas se comparan con las mostradas en la solucin del ejemplo 1.1 se podr
observar que los resultados son los mismos.
Figura 3.16. Parmetros de diseo de un filtro FIR de orden 2, pasa bajas, frecuencia de
corte de 100Hz y frecuencia de muestreo de 1kHz. Tomada de LabVIEW.
Figura 3.17. Magnitud y fase del filtro FIR de 2 orden del ejemplo 3.1.
102
Ejemplo 3.2 Diseo de un filtro FIR pasa bajas con ventana de Kaiser
En el ejemplo 1.2 se dise un filtro paso bajo con ventana de Kiser, frecuencia de paso
de 6kHz y frecuencia de rechazo de 9kHz, rizado en la banda de paso de 0.1 y de 0.01
en la banda supresora. La frecuencia de muestreo fue de 30kHz.
Basados en los clculos hechos en el ejemplo 1.2 se tiene que la frecuencia de corte del
filtro es de 7.5kHz y el orden es de 22.
Figura 3.18. Parmetros de diseo de un filtro FIR pasa bajas de orden 22 utilizando la
ventana de Kaiser.
Las respuestas de magnitud y fase del filtro diseado se muestran en la Figura 3.19. Al
comparar estos resultados con los obtenidos en el ejemplo 1.2, se encuentra que son muy
similares.
103
Figura 3.19. Magnitud y fase del filtro FIR de orden 22 del ejemplo 3.2.
En el ejemplo 1.4 se pidi disear un filtro digital paso bajo IIR con una frecuencia de
muestreo de 10kHz, frecuencia de corte de 1034Hz y al menos una atenuacin de 10dB a
la frecuencia de 2312Hz.
Con las especificaciones opcionales se puede computar el orden del filtro. Estas se
pueden ver en la Figura 3.20.
Figura 3.20. Parmetros de diseo del filtro IIR del ejemplo 3.3.
104
Figura 3.21. Magnitud y fase del filtro IIR de orden 2 del ejemplo 3.3.
En este proyecto se desarroll una aplicacin que compacta las funciones de filtrado y
adquisicin de seales con el fin de realizar un filtrado digital en tiempo real cubriendo el
proceso completo que se implement en tres etapas: diseo, adquisicin y
procesamiento, tal y como se muestra en la Figura 3.22.
105
Adems de la aplicacin en tiempo real, se dise una en modo simulacin que le permite
al usuario generar diferentes tipos de seales, disear filtros y probarlos con estas
seales, todo nicamente utilizando LabVIEW.
Ante la ausencia de una TAD, la aplicacin tiempo real.vi permite disear filtros pero es
imposible que estos sean probados con seales. Con simulacin.vi, esto se puede hacer
desde cualquier PC que tenga instalado el software LabVIEW 6.I y lograr prever lo que
pasara en tiempo real.
Esta aplicacin utiliza los mismos subvis de diseo y procesamiento que tiempo real.vi,
por lo que en apariencia son prcticamente iguales.
106
4. PRUEBAS REALIZADAS Y RESULTADOS OBTENIDOS
En este captulo se muestran los resultados obtenidos de las pruebas realizadas con las
aplicaciones desarrolladas en este proyecto, estas son el generador de seales arbitrarias
y el filtrado digital en tiempo real. Las pruebas se realizaron en un PC hp-compaq con
procesador AMD Athlon XP 2000+ (frecuencia de reloj 1.66GHz) y 256MB de memoria
RAM. Las pruebas se dividen en tres partes. En la primera se generan diferentes formas
de ondas utilizando el generador de seales arbitrarias, en la segunda se disean filtros
de diferentes topologas y en la tercera parte se evalan la adquisicin y filtrado digital en
tiempo real con formas de onda y espectros conocidos. El objetivo de este captulo, es por
tanto, mostrar la utilidad de las dos aplicaciones diseadas, tanto en conjunto como
individualmente.
Para realizar las pruebas al generador se midieron las formas de onda con dos sistemas
diferentes el osciloscopio FLUKE 105 Scopemeter y con el DSP TMS320CV5402 Starter
Kit de Texas Instruments, con el objetivo de tener resultados ms confiables.
Con el osciloscopio FLUKE se realiz una prueba a cada opcin principal del generador.
Estas son: generar una seal estndar de librera, generar una seal de una frmula
107
matemtica, generar una seal dibujada con el mouse, generar una seal cargada de un
archivo de texto, generar una adicin y una diferencia entre dos seales. Tambin se
prob la generacin simultnea por el canal 0 y el canal 1. Todas las pruebas se
realizaron configurando el generador con una rata de generacin de 1000
muestras/segundo y un tamao del buffer de 1000 muestras. Se establece tambin modo
de generacin continuo para obtener seales peridicas.
Funcin librera
Siguiendo los pasos explicados en el anexo B, se edit una seal senoidal de 1Hz con
amplitud de 5V sin offset. En la Figura 4.1a se observan los valores de los controles
en el panel frontal del subprograma Librera para editar esta seal. En la Figura 4.1b
se observa la previsualizacin de la onda de salida para la seal editada. Se observa
que el arreglo de datos corresponde a un ciclo de una senoidal y la informacin de
tiempo de la grfica indica que es una seal de 1Hz y 5V de amplitud, sin offset. En la
Figura 4.1c se observa que la seal medida en el FLUKE es la esperada, una senoidal
de 1Hz con 10 Vpp.
(a)
(b)
108
(c)
Figura 4.1 Resultados de la prueba a la opcin Funcin de Librera. a) Valores de los
controles b) Previsualizacin de la seal c) Seal medida en el FLUKE.
Funcin de Frmula
109
(a)
(b)
(c)
Figura 4.2 Resultados de la prueba con la funcin de frmula. a) Valores de los controles
b) Previsualizacin de la seal c) Seal medida en el FLUKE.
110
Funcin de Mouse
Siguiendo los pasos explicados en el anexo B se edit la forma de onda dibujada con
el mouse que se observa en la Figura 4.3a.
(a)
(b)
Figura 4.3. Resultados de las pruebas a la opcin Funcin de Mouse. a) Previsualizacin
de la seal b) Seal medida en el FLUKE.
111
Seal Cargada de Archivo de Texto.
Esta prueba se realiz cargando 500 muestras del archivo de texto ECG.txt. Este
archivo de texto es una modificacin a una simulacin del ritmo cardaco realizada por
el codirector del proyecto Ing. Javier Gonzles. Para esta prueba se modific la rata
de generacin a 10000 muestras/s para mejorar la resolucin horizontal de los pulsos
cardacos. La forma de onda previsualizada se observa en al Figura 4.4a.
(a) (b)
Figura 4.4. Resultados de las pruebas a la opcin Cargar Seal. a) Previsualizacin de la
seal de salida. b) Seal medida en el FLUKE.
Para probar estas opciones se editaron las formas de onda que se observan en la
Figura 4.5.
112
(a)
(b) (c)
(d)
113
(e)
Figura 4.5 Resultados de la prueba de adicin y diferencia de seales. a) Seales
individuales b) Adicin en el canal 0 c) Diferencia en el canal 1 d) Seales medidas en el
FLUKE. e) Generacin simultnea por el canal 0 y 1.
La Figura 4.5a representa la seal editada en el canal 0 (color azul) y la seal editada
en el canal 1 (color verde). Las seales de las Figura 4.5b y 4.5c corresponden a la
previsualizacin de las ondas de salida luego de escoger la opcin de adicin y
diferencia respectivamente de las seales en la Figura 4.5a. En la Figura 4.5d se
pueden observar las seales medidas por el FLUKE. Como se observa en la figura, la
adicin es una seal peridica con voltaje pico a pico de 4V, una frecuencia de 1Hz y
sin offset. La diferencia es una seal peridica con voltaje pico a pico de 2V, una
frecuencia de 1Hz y sin offset; por tanto los valores medidos corresponden a la
seales editas. Tambin se observa en la Figura 4.5e la generacin simultnea de las
seales observadas en la Figura 4.5b y 4.5c. La seal senoidal del canal 0 se midi
por el canal A del FLUKE entre los pines 10 y 11; y la seal cuadrada se midi por el
canal B del FLUKE entre los pines 10 y 12 de la bornera de la TAD PCI 1200. Se
observa que las dos seales corresponden efectivamente a las seales editadas en la
Figura 4.5a.
Con estos resultados terminan las pruebas a las opciones del generador de seales
arbitrarias utilizando el oscilospio FLUKE 105. A continuacin se realizaran otras
114
pruebas al generador de seales arbitrarias para confirmar los excelentes resultados
obtenidos hasta ahora.
(a)
(b)
115
(c)
Figura 4.6 Adquisicin de una seal de 10Hz y 200mV. a) Seal generada b) Seal
adquirida con el DSP b) Espectro en frecuencia procesado por el DSP
116
4.2 PRUEBAS DE DISEO DE LOS FILTROS DIGITALES
Tabla 4.1. Comparacin de diferentes topologas IIR para las mismas especificaciones de
un filtro pasa bajas.
Atenuacin causada Atenuacin causada
por el rizado en la por el rizado en la Orden
Topologa
banda de paso banda de rechazo resultante
[dB] [dB]
Elptico 1 110 15
Chebyshev 1 - 49
Butterworth - - 364
Bessel - - 364
117
De acuerdo a la Tabla 4.1 se puede concluir que para un grupo de especificaciones de
diseo de un filtro IIR, la topologa elptica es la que puede cumplir esas especificaciones
con el menor orden posible.
118
Tabla 4.2. Comparacin de diferentes topologas FIR para las mismas especificaciones
de un filtro pasa bajas.
Frecuencia A(dB)
Tipo de A(dB) A(dB)
Topologa Orden de frecuencia
ventana 100Hz 103Hz
rechazo(Hz) de rechazo
Kaiser-
1000 0.45 45 105.5 87
Bessel
Rizado
Constante - 1000 0.28 48 104.5 56.75
(1 = 2 )
A(dB): Valor de la Atenuacin en decibeles
En estas pruebas, tal como se esperaba de la teora, no se logr disear un filtro con el
mtodo de ventanas que logre cumplir las mismas especificaciones de los filtros IIR
diseados previamente, ya que para este mtodo no es posible tener atenuaciones
diferentes en las bandas de paso y rechazo. En el diseo con ventanas el orden se
estima con la mayor atenuacin, por ejemplo para la ventana Kaiser el orden es
aproximadamente
A8
M =
2.285w
119
Para el caso de estas pruebas el orden sera
110 8
M = = 2368
2 * * 3
2.285
1000
Para este orden la aplicacin no arroja resultados consistentes, por tanto limitamos el
orden a 1000, ya que con este orden los resultados son aceptables como se indica en la
Tabla 4.2.
Con el diseo de rizado constante con mismos valores pico de rizado en la banda de paso
y de rechazo se necesita un orden de aproximadamente 2214 segn la Ecuacin (1.114).
Por tanto para tener resultados consistentes tambin se limit el orden a 1000.
Especificaciones de
Rizado constante 1 110 622
1 2
1 : Mximo rizado en la banda de paso
120
4.3 PRUEBAS DE ADQUISICIN Y FILTRADO EN TIEMPO REAL
Estas pruebas se componen de una parte de adquisicin de una seal seguida por otra
parte de filtrado en tiempo real de la seal adquirida. Para lograr esto se ejecutaron las
aplicaciones de generacin y filtrado simultneamente de manera que la seal analgica
generada se realimentaba a la TAD PCI 1200 para ser adquirida, procesada digitalmente
y visualizada en el PC por la aplicacin de filtrado.
La seal fue adquirida por la aplicacin de filtrado con una frecuencia de muestreo de
30Hz y 30000 muestras. En la Figura 4.11a se muestra la seal de entrada y en la 4.11b
su espectro de potencia. Ambas grficas visualizadas por la aplicacin de filtrado.
121
(a)
(b)
Figura 4.11 Suma de 3 tonos adquirida a) Seal de entrada adquirida por la TAD. b)
Espectro de la seal de entrada.
Filtro Elptico
Para realizar esta prueba se dise un filtro elptico pasa altas de orden 12 con
frecuencia de corte en 2.5Hz para realizar el filtrado digital en tiempo real de la suma
de tonos adquirida. Las especificaciones de este filtro y la magnitud de su respuesta
en frecuencia se observan en la Figura 4.12.
122
Figura 4.12 Filtro IIR elptico pasa-altas.
Figura 4.13 Seal de salida y su espectro luego de ser procesada por un filtro pasa-alto
elpticas.
123
La seal de salida se guard en un archivo de texto y fue cargada en el generador de
seales arbitrarias para su posterior generacin. En la Figura 4.14 se observa la seal de
salida resultado del filtrado digital pasa altas.
Filtro Butterworth
Para realizar el filtrado pasa-altas tambin se dise un filtro Butterworth con las
especificaciones y magnitud de respuesta en frecuencia observadas en la Figura 4.15.
124
En la Figura 4.16 se observa la seal de salida, la cual como se esperaba es una senoidal
de aproximadamente 1V de amplitud. .Tambin se observa el espectro de potencia de la
seal filtrada, un pulso de amplitud 0.5W ubicado en 3Hz.
Figura 4.16 Seal de salida y su espectro de potencia luego de ser procesada por un filtro
pasa-altas Butterworth.
Con el filtro pasa-altas Butterworth se necesit un orden mucho mayor que con el filtro
elptico (100>>12) para eliminar los tonos en 1Hz y 2Hz. Sin embargo gracias a la
respuesta mximamente plana del filtro Butterworth el tono de salida conserva
prcticamente su potencia original, en contraste con la atenuacin de 100mW producida
por el rizado en la banda de paso del filtro elptico.
El filtrado pasa-altas de los 3 tonos se realiz tambin con un filtro FIR diseado con el
mtodo de ventanas. Se utiliz una ventana Kaiser. En la Figura 4.17 se muestra la
magnitud de la respuesta en frecuencia de un filtro FIR pasa-altas de orden 50.
125
Figura 4.17 Filtro FIR pasa-altas. Ventana Kaiser. Orden 50. FC=2.5Hz
Figura 4.18 Seal de salida y su espectro de potencia luego de un filtrado pasa-altas con
un filtro FIR de orden 50.
Para mejorar este resultado se aument el orden del filtro FIR pasa-altas a 100. En la
Figura 4.19 se observa la magnitud de la respuesta en frecuencia de este filtro.
126
Figura 4.19 Filtro FIR pasa-altas. Ventana Kaiser. Orden 100. Fc=2.5Hz
Los resultados de procesar la suma de 3 tonos con este filtro se observan en la Figura
4.20. Se observa la mejora en el tono de salida resultante, el cual tiene una amplitud de
aproximadamente 1V. El espectro en potencia de la seal de salida muestra como se
conserva la potencia de 500mW del tono de 3Hz y las componentes en 1Hz y 2Hz han
sido atenuadas de manera efectiva, y gracias a esto no tienen efecto apreciable en la
seal de salida.
Figura 4.20 Seal de salida y su espectro de potencia luego de un filtrado pasa-altas con
un filtro FIR de orden 100.
127
4.3.3 Filtrado Para-Banda en Tiempo Real de la Suma de Tres Tonos
Utilizando un Filtro FIR
Para realizar esta prueba se dise un filtro IIR para banda. Se utiliz una ventana
Hanning de 201 coeficientes. La frecuencia central del filtro se estableci en 2Hz. Las
especificaciones de este filtro y la magnitud de su respuesta en frecuencia se observan en
la Figura 4.21.
128
Figura 4.22 Seal procesada por el filtro para banda a) Seal de salida del filtro para
banda. b) Espectro de potencia de la seal de salida
La seal de salida se guard en una archivo de texto para luego ser cargada en el
generador de seales arbitrarias. La Figura 4.23 es la seal de salida medida en el
FLUKE.
129
4.3.4 Adquisicin de una Seal Cuadrada
Para realizar esta prueba se gener una seal cuadrada 1V de amplitud y 10Hz de
frecuencia utilizando el generador implementado en este proyecto. En la Figura 4.24 se
observa la seal medida en el FLUKE.
La sea fue adquirida por la TAD con una frecuencia de muestreo de 1kHz y un nmero
de muestras de 10000. La seal adquirida y su espectro de potencia se observan en la
Figura 4.25a y 4.25b respectivamente.
(a)
130
(b)
Figura 4.25. Adquisicin de seal cuadrada a) Seal cuadrada adquirida. b) Espectro de
potencia de la seal cuadrada
Para realizar esta prueba se dise un filtro pasa-baja elptico de orden 23 y frecuencia de
corte 20Hz. En la Figura 4.26 se pueden observar las especificaciones del filtro y la
magnitud de su respuesta en frecuencia.
131
En la Figura 4.27a y 4.27b se observa la seal de salida y su espectro de potencia
respectivamente. Gracias a este filtrado se logr conservar la componente fundamental
de la seal cuadrada ubicada en 10Hz. Se observa como los armnicos de la seal
cuadrada fueron rechazados totalmente por el filtro pasa-bajas.
Figura 4.27 Seal procesada por el filtro pasa bajas a) Seal de salida luego del filtrado
pasa-bajas. b) Espectro de potencia de la seal de salida luego del filtrado.
132
4.3.6 Eliminacin de Componente de 60Hz
133
Figura 4.30 Especificaciones y magnitud del filtro elptico.
Luego del filtrado en tiempo real se obtuvieron los resultados observados en la Figura
4.31. Se aprecia claramente la eliminacin de la componente de 60Hz. Todas las dems
componentes se conservaron prcticamente intactas gracias a la alta selectividad del
filtro diseado.
134
CONCLUSIONES
Este software se puede explotar de forma didctica para la comprensin de los conceptos
bsicos del procesamiento digital. En la adquisicin de la seal analgica se pueden
observar los efectos del muestreo al variar parmetros como frecuencia de muestreo,
nmero de muestras y el uso de buffers circulares. En el filtrado digital se pueden simular
una gran variedad de filtros con topologas integradas en LabVIEW o ingresando los
coeficientes de la funcin de transferencia y observar los cambios en su respuesta en
frecuencia, tanto en la magnitud como en la fase. Tambin permite el tratamiento digital
de seales analgicas, en modo de simulacin o en tiempo real, dando la posibilidad al
usuario de manipular los parmetros ms significativos de los filtros como son los rizados,
las frecuencias de corte y ganancias en las bandas de paso y rechazo. El modo de
simulacin permite evaluar la respuesta de un filtro digital a una seal de entrada
simulada en el PC , lo cual permite predecir su salida sin necesidad de implementar el
sistema real y as evitar los errores de diseo y prdidas econmicas causadas por
implementar un sistema sin haber realizado una simulacin previa. El modo en tiempo real
permite introducir al PC una seal analgica, para ser procesada digitalmente por
cualquier tipo de filtro programado o cargado en la aplicacin de filtrado de forma tal que
la salida del filtro se puede observar en tiempo real en el PC. Este modo de operacin es
de gran utilidad para seales que varan su frecuencia y amplitud de manera irregular en
el tiempo, como es el ejemplo de una seal electrocardiogrfica.
135
Se implement un generador de seales arbitrarias basado en el hardware de una tarjeta
de adquisicin, el computador personal y el software de programacin grfica LabVIEW.
Este generador de seales demostr ser de gran utilidad como herramienta de laboratorio
para evaluar filtros digitales. Su utilidad puede extenderse a aplicaciones analgicas,
como generar armnicos, estimular circuitos electrnicos o cargar seales de bases de
datos adquiridas en otras aplicaciones.
Los filtros digitales estudiados en este proyecto mostraron grandes ventajas respecto a su
contraparte analgica. La experiencia con los filtros analgicos adquirida durante la
carrera, hace recordar la dificultad para disear filtros de orden alto y pendientes
pronunciadas en la banda de transicin debido a la necesidad de utilizar componentes
electrnicos como resistencias y condensadores que presentan tolerancias altas y es
dificil conseguir los valores exactos necesarios para alcanzar una frecuencia de corte
especfica. Adems la teora analgica de filtros implica conocimientos matemticos de
derivadas e integrales en caso de que se quiera analizar la respuesta en frecuencia de un
sistema expresado por una ecuacin diferencial. Algo muy diferente sucedi con los filtros
digitales, los cuales demostraron ser muy flexibles, inmunes al ruido pues estn
implementados por software y con respuestas en frecuencia que permiten realizar
procesamientos muy exigentes. Adems ya que se trabaja con secuencias de muestras y
operaciones aritmticas bsicas de multiplicacin y adicin, las respuestas de los
sistemas discretos definidos por ecuaciones en diferencias con coeficientes constantes
pueden ser verificadas matemticamente de una forma rpida. Para el anlisis espectral
se utilizaron tcnicas exactas, como la FFT, que permiten a LabVIEW aproximar los
136
espectros de las seales muestradas de forma que este anlisis no ocupe el procesador
de manera significativa.
Las dos aplicaciones implementadas en este proyecto pueden trabajar en conjunto para
servir de herramienta en investigaciones, como por ejemplo en el campo de la
bioingenieria, donde es muy importante reproducir en cualquier momento una seal a
partir de sus muestras adquiridas y almacenadas previamente para su posterior estudio.
Es el caso del estudio de arritmias en electrocardiogramas, donde con la aplicacin de
filtrado se puede guardar en un archivo de texto un tiempo prolongado de la seal de
entrada adquirida en tiempo real y con el generador de seales arbitrarias se podra
reproducir en cualquier momento esta secuencia de muestras que con la informacin
correcta de tiempo representara la seal adquirida en un tiempo pasado y que puede ser
estudiada y analizada en un momento ms favorable.
137
RECOMENDACIONES
138
BIBLIOGRAFA
[4] NATIONAL INSTRUMENTS. LabVIEW Printed Manuals. Austin, Texas, Julio 2000.
[5] MATHWORKS, Signal Processing Toolbox Users Guide, The Mathworks, Inc.
Natick, MA, USA, 1998.
[7] ARGENTI, Fabrizio y DEL RE, Enrico. Design of IIR Eigenfilters in the Frequency
Domain. IEEE Transactions On Signal Processing, Vol. 46, No. 6, p. 1964-1968, Junio
1998.
139
ANEXOS
140
ANEXO A: DESCRIPCIN DE LAS APLICACIONES UTILIZADAS
EN LABVIEW
Instrumentos Virtuales
Los programas diseados en LabVIEW se conocen como Instrumentos Virtuales (VIs por
sus siglas en ingls) porque su operacin y apariencia imitan a los instrumentos fsicos
convencionales como los generadores de seales, osciloscopios o multmetros.
141
Icono y panel de conectores: Identifican al VI de forma que pueda ser utilizado y
cableado dentro de otro VI. Un VI dentro de otro VI se define como un subVI. Es lo
mismo que los subprogramas o subrutinas programadas en cdigo de lneas de
instrucciones.
Estructura de Caso: Contiene una serie de subdiagramas, de los cuales solo uno
se ejecuta dependiendo del caso seleccionado a la entrada de
la estructura. La estructura ejecuta un solo caso a la vez.
142
Para almacenar datos de formas de onda en un buffer, almacenar datos de una magnitud
de respuesta en frecuencia de un filtro o para agrupar una serie de controles de diferente
tipo, LabVIEW utiliza dos herramientas principales: los arreglos y los clusters.
Cluster: A diferencia de los arreglos, los clusters pueden agrupar datos de diferente tipo.
Este agrupamiento facilita el cableado ya que un solo cluster puede contener una gran
cantidad de controles o indicadores que se podran enviar a un subVI por un solo conectar
y por tanto utilizar una sola entrada del subVI. Al igual que un arreglo, el cluster tiene un
orden especfico dentro de sus elementos. Sin embargo para utilizar algn elemento del
cluster deben desligarse todos los elementos que componen el cluster.
Search 1D Array
143
Size(s)
Build Array
Transpose 2D Array
Reorganiza el arreglo de entrada de dos dimensiones [i,j] de tal forma que a la salida se
obtenga el arreglo transpuesto de dos dimensiones [j,i].
Array Subset
144
ANEXO B: GUAS DE USUARIO
Hoy da cualquier software posee una ayuda o por lo menos un manual de instrucciones
que le indique al usuario cmo debe operar el programa. Por lo anterior, en este anexo se
explica al usuario como debe utilizar las aplicaciones implementadas en este proyecto: el
generador de seales arbitrarias y la aplicacin de filtrado digital en tiempo real. Adems
se puede dar uso de la ayuda contextual de LabView para conocer los detalles de los
controles e indicadores que componen los paneles frontales que se utilizan en esta
aplicacin.
Adems se necesitan los archivos propios de las aplicaciones los cuales estn guardados
en un CD incluido con este proyecto de grado.
Esta gua se hace con el fin de dar al usuario del generador de seales arbitrarias una
metodologa para operarlo de manera correcta, y para comprender en forma general el
funcionamiento del software y hardware, para as explotar al mximo la funcionalidad del
generador.
145
En las siguiente secciones se guiar al usuario sobre como se recomienda editar las
formas de onda para que su experiencia con el generador sea eficiente y as lograr la
satisfaccin de obtener los resultados esperados.
Para una correcta edicin de una forma de onda es necesario seguir los siguientes pasos:
1. Configurar el generador.
2. Seleccionar la Opcin.
3. Pre-visualizar la forma de onda.
4. Iniciar la generacin.
1. CONFIGURAR EL GENERADOR.
Este paso configura dos aspectos claves de la seal: resolucin horizontal de la forma de
onda y la frecuencia de muestreo.
146
derecha con lo cual se aumenta el nmero de muestras o utilizando el control digital. El
nmero de muestras debe ser entero. Por defecto se encuentra en 1000 muestras.
1
Duracin de un buffer de salida = ( ) * (nmero de muestras ) [seg ]
rata de generacin
(B.1)
En otras palabras el resultado de la Ecuacin B.1 es el tiempo que tarda la TAD PCI 1200
en generar todas las muestras de un buffer completo por el canal de salida seleccionado.
Si el usuario desea editar varios ciclos de una seal peridica dentro de un buffer
de salida, debe calcular aproximadamente cuantas muestras representan un ciclo
de la seal con la rata de generacin seleccionada. Este calculo se puede realizar
con la Ecuacin (B.3).
147
# de muestras por ciclo =
rata de generacin(muestras / seg )
frecuencia seal deseada (ciclos / seg )
[muestras ciclo]
(B.3)
Lo anterior se puede observar mejor en las figuras que se muestran a continuacin. En la
Figura B.1. se observan las muestras generadas para una seal senoidal de 1Hz con rata
de generacin de 10 muestras/seg y tamao de buffer de 10 muestras. Es claro que la
duracin entre muestras consecutivas es Tg=1/10=100ms. La duracin del buffer es por
tanto (100ms)*(10muestras)=1s. La Figura B.2. representa la misma seal aumentando
solamente el nmero de muestras a 20 con lo cual la duracin del buffer aumenta a 2s
pero la frecuencia de salida de la seal no cambia. La Figura B.3 representa la misma
seal aumentando la rata de generacin a 20 muestras/seg y 20 muestras por buffer. El
usuario debe observar que la seal siempre es la misma sin embargo la seal de la Figura
B.3 es una mejor reconstruccin de una seal senoidal analgica de 1Hz ya que tiene una
mejor resolucin horizontal y vertical que las otras 2 figuras pues tiene 20 muestras
espaciadas tan solo 50 ms una de la otra y por tanto la interpolacin entre ellas es menos
abrupta que para las otras configuraciones. Esto se puede observar en las Figuras B.4,
B.5 y B.6 donde las muestras se interpolan mediante un retenedor de orden cero.
Una regla prctica para obtener informacin de frecuencia confiable es configurar una rata
de generacin 10 a 50 veces ms rpida que la frecuencia de la seal y generar al menos
10 ciclos o ms. Esta configuracin recomendada sera la de Figura B.7 donde se observa
la seal senoidal de 1Hz configurada con una rata de generacin de 50 muestras/seg y
500 muestras interpoladas con un retenedor de orden cero.
148
Figura B.1. Muestras senoidal de 1Hz. Rata de generacin=10.Tamao del buffer=10
Figura B.2 Muestras senoidal de 1Hz. Rata de generacin=10. Tamao del buffer=20.
La duracin del buffer de salida en este caso es de 2s. Observese que la resolucin
vertical es la misma y la resolucin horizontal se ha duplicado a 20 muestras.
149
Figura B.3 Muestras senoidal 1Hz. Rata de generacin=20. Tamao del buffer=20. La
duracin del buffer es de 1s. La resolucin vertical aument mientras que la resolucin
horizontal sigue siendo de 20 muestras.
Figura B.4 Seal interpolada con retenedor de orden cero. Se observa que este tipo de
reconstruccin es bastante abrupto aunque es suficiente para algunas aplicaciones y fines
didcticos. Esta seal se puede mejorar luego de un filtrado paso bajo que elimine las
componentes de alta frecuencia producidas por el rizado. En este caso la resolucin
vertical es de solo 2 niveles de voltaje.
150
Figura B.5 Seal interpolada con retenedor de orden cero. Se observa que la resolucin
horizonta se duplic con respecto a la figura anterior, sin embargo la resolucin vertical se
mantiene en 2 niveles de voltaje.
Figura B.6 Seal interpolada con retenedor de orden cero. Se observa que la resolucin
horizontal es la misma de la figura anterior pero en este caso la resolucin vertical es de 5
niveles de voltaje lo cual me representa una mejor reconstruccin de la seal aunque se
siguen notando cambios abruptos.
151
Figura B.7 Seal senoidal de 1Hz. Rata de generacin=50, Tamao del buffer=500.
Interpolada con retenedor de orden cero. En esta figura se observa que la resolucin
vertical es tan grande que a pesar de utilizar un retenedor de orden cero para reconstruir
la seal los niveles de voltaje son prcticamente impercibibles. La resolucin horizontal es
de 500 muestras para tener informacin de frecuencia confiable.
El control para Almacenar en canal define por cual canal de salida se generarn seales
analgicas. Si el usuario edita formas de onda en ambos canales la generacin ser
simultnea. De otra forma la generacin se har por un solo canal. El control se observa
en la Figura B.8.
152
Figura B.8 Controles para configurar el generador.
2. SELECCIONAR LA OPCIN
Funcin de librera
Al seleccionar esta opcin se abrir un panel (Ver Figura 2.8) en el cual se puede editar
la forma de onda. Esta opcin es la indicada cuando se desan generar formas de onda
bsicas como senoidales, triangulares, cuadradas y sierras. En la figura se observa una
seal cuadrada editada en esta opcin. Al terminar de editar su seal presione Aceptar
para regresar al pane frontal del generador. En la Figura B.9 se observa una seal
cuadrada editada con esta opcin.
153
Figura B.9 Seal cuadradra editada en funcin de librera. Rata de generacin=1000.
Tamao del buffer=10000. Amp=3.5V. Frec=0.5Hz.
Offset= -2V. Ciclo til=20%.
Funcin de Formula
Al seleccionar esta opcin se abrir un panel (Ver Figura 2.11) en el cual se puede editar
la frmula de la onda. Esta opcin permite editar formas de onda no convencionales que
se pueden realizar con operaciones aritmticas entre seales bsicas como senoidales,
cosenoidales o exponenciales. En la Tabla B.1 se describen algunas de las funciones
integradas de LabVIEW las cuales se pueden utilizar para la edicin de la frmula. La
frmula se puede ingresar utilizando variables algebraicas a las cuales se les asigna el
valor del control correspondiente. Las variables predeterminadas por LabVIEW son: a
para amplitud, f para frecuencia, w para frecuencia angular (w=2*pi*f), t para el
tiempo y fs para frecuencia de muestreo. En la Figura B.10 se observa la seal
Abs(1+a*cos(w*t)+2*a*cos(2*w*t)) editada en esta opcin. Al terminar de editar su seal
presiones aceptar para regresar al pane frontal del generador.
154
Figura B.10. Seal de frmula. Amplitud=1V. Frecuencia =1Hz.
Funcin resultante: Abs(1+cos(2*pi*t)+2*cos(4*pi*t))
Funcin de Mouse
Al seleccionar esta opcin se abrir un panel (Ver Figura 2.14) en el cual se puede
dibujar una forma de onda con el mouse de 1000 muestras. Presione Aceptar para volver
al panel principal. En esta opcin el nmero de muestras es invariable con un valor de
1000. La seal dibujada representar un ciclo y por tanto para variar la frecuencia de
salida es necesario variar la rata de generacin. En la Figura B.12 observa un ejemplo de
155
un perodo de una seal de 1Hz, configurada en modo continuo con rata de generacin de
1000.
5 .0
4 .0
3 .0
2 .0
1 .0
0 .0
-1 .0
-2 .0
-3 .0
-4 .0
-5 .0
0 100 200 300 400 500 600 700 800 900 1000
muestras
CH 0 + CH 1 = CH 0
Esta opcin suma las seales del canal 0 y el canal 1 y el resultado lo guarda en el canal
0. Esta opcin es til para adicionar ruido de 60Hz o de alta frecuencia, sin perder el
comportamiento en frecuencia de la seal original.
CH 0 - CH 1 = CH 1
Esta opcin resta las seales del canal 0 y el canal 1 y el resultado lo guarda en el canal
1.
Guardar Seal
156
Cargar seal
157
Limpiar Canal
Luego de editar la onda, se mostrar en el panel principal del generador una grfica de lo
que sera un buffer completo de salida. En la grfica de las ondas de salida la seal del
canal 0 es de color azul y la del canal 1 de color verde.
4. INICIE LA GENERACIN
158
Figura B.14 Indicadores del Estado de generacin
Lo primero que debe hacer el usuario es verificar si la tarjeta de adquisicin de datos est
correctamente instalada y configurada. Esto en el caso que vaya a ejecutar la aplicacin
de tiempo real. El de simulacin no la requiere. Luego debe revisar la presencia de los
archivos que contienen los subprogramas de los que hace uso la aplicacin. Estos se
muestran con sus respectivos tamaos en disco en la Tabla B.2
159
VarGlob1.vi 82 kB
Tiempo real.vi ocupa 189 kB en disco duro y simulacion.vi ocupa 137 kB.
160
Figura B.15. Panel frontal de Tiempo real.vi.
Seccin de Grficas:
Seccin de interruptores
161
Cerrar: Termina la ejecucin del programa.
Men
Indicadores de Muestreo
Este subvi permite ingresar los parmetros de adquisicin como: frecuencia de muestreo,
nmero de muestras, tamao del buffer y el rango lmite de la seal de entrada. El usuario
no tiene control sobre algunos parmetros como el dispositivo de adquisicin de datos y el
canal de adquisicin. Estos permanecen fijos en el algoritmo y corresponden al dispositivo
1 y el canal 0.
162
El panel frontal de la presente aplicacin se exhibe en la Figura B.16.
Este panel contiene cuatro controles que determinan la adquisicin de la seal. Estos son:
frecuencia de muestreo, nmero de muestras a leer, tamao del buffer y lmites de
entrada.
Frecuencia de muestreo
Muestras a leer
163
El tamao del buffer determina la cantidad de memoria principal que se destina para el
buffer de adquisicin. Se recomienda que sea el doble del nmero de muestras a leer.
Lmites de entrada
Este control determina el rango de voltaje al que la TAD limita la seal de entrada, es
decir que, si la seal sobrepasa estos lmites, la tarjeta de adquisicin satura la seal
en los lmites establecidos.
DISEO IIR
La rutina implementada para disear filtros IIR est organizada en dos secciones:
coeficientes y especificaciones. La seccin coeficientes permite disear a partir de los
coeficientes de la ecuacin en diferencias del filtro. La seccin de especificaciones
permite disear a partir de parmetros como: las frecuencias de corte, el orden, el tipo de
filtro y la topologa.
Este panel est dividido en dos partes: La seccin de diseo (izquierda) y la seccin de
Grficas (derecha).
164
Figura B.17. Panel frontal del diseo IIR.
En la seccin de grficas se pueden observar las curvas de magnitud y fase del filtro
diseado.
Las especificaciones desarrolladas en este proyecto para disear filtros IIR son dos: las
bsicas y las opcionales. Las especificaciones bsicas son: la topologa, el tipo de filtro
(pasa bajas, pasa altas, pasa banda, rechaza banda), el orden, las frecuencias de corte y
la atenuacin en las bandas de paso y rechazo por causa del rizado. Ver Figura B.18.
165
Figura B.18. Especificaciones bsicas de diseo IIR. Tomada de LabVIEW.
Topologa
La topologa del filtro es la funcin matemtica que se utiliza para disear el filtro. Las
ms conocidas y que se encuentran disponibles en esta aplicacin son: Butterworth,
Chebyshev, Chebyshev inversa, Elptica y Bessel.
Tipo
El tipo de filtro puede ser pasa bajas, pasa altas, pasa banda o rechaza banda.
Orden
El orden del filtro se estableci como un valor entre 1 y 2500 para evitar el colapso
del programa al utilizar valores superiores a este.
166
Frecuencia superior de corte
Ao( f )
Atenuacin = 20 * log10 (B.4)
Ai ( f )
167
Figura B.19. Especificaciones opcionales de diseo IIR.
168
Este valor contiene la ganancia a la cual se encuentran las frecuencias de la banda de
paso.
Escala de Magnitud
Escala Fase
Este tipo de diseo consiste en introducir los coeficientes de los polinomios numerador y
denominador de H(Z), en dos vectores columna. Los controles que se utilizan en esta
aplicacin, para ingresar los coeficientes, se muestran en la Figura B.20.
169
Figura B.20. Controles para introducir los coeficientes de H(Z).
Cada casilla del vector tiene un formato numrico de punto flotante con 10 decimales, con
el fin de ofrecer al usuario, la posibilidad de tener una precisin alta en el valor de cada
coeficiente.
DISEO FIR
La rutina implementada para disear filtros FIR est organizada en dos secciones:
coeficientes y especificaciones. La seccin coeficientes permite disear a partir de los
coeficientes de la ecuacin de diferencias del filtro. La seccin de especificaciones
170
permite disear a partir de parmetros como: las frecuencias de corte, el orden, el tipo de
filtro y la topologa. El panel frontal se muestra en la Figura B.21.
Topologa
La topologa del filtro es el mtodo que se utiliza para disear el filtro. Esta aplicacin
comprende dos mtodos: ventaneado y rizado constante. Hay una topologa llamada
FIR by specification que implementa el mtodo de rizado constante y permite hallar
el orden del filtro a partir de los requerimientos de ganancia y frecuencia del filtro.
171
Figura B.22. Especificaciones bsicas de diseo FIR. Tomada de LabVIEW
Nmero de coeficientes
El diseo por coeficientes se hace de la misma manera que en el diseo IIR con la
diferencia de que slo se debe introducir el vector numerador.
172
ANEXO C: TEORA DE SISTEMAS DISCRETOS
El tema principal de este proyecto son los FILTROS DIGITALES, los cuales extraen o
modifican alguna caracterstica de la seal de entrada; que se ve reflejada en su espectro
de frecuencia, por ejemplo se habla del paso de una determinada banda del espectro de
la seal de entrada. Por lo tanto, los filtros digitales se definen como sistemas discretos
que modifican caractersticas en frecuencia de una seal digital.
Las seales discretas en el tiempo surgen en la mayora de los casos (Steiglitz, 1965;
Oppenheim y Jonson, 1972) si el sistema involucra la operacin de muestreo peridico de
seales en tiempo continuo, como se explica a continuacin.
Sea xC(t) una seal continua en el dominio del tiempo como se observa en la Figura C.1.,
entonces se obtiene una secuencia de muestras:
173
Figura C.2. Seal xC(nT)
SOLUCIN EN MATLAB
A=0:20;T=1/1000;
Y=0.5*sin((2*pi*100*(A*T)+pi/6));
stem(A*T,Y)
174
1
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0.018 0.02
Donde T{.} es el operador de transformacin que convierte una secuencia de entrada x[n]
en una secuencia de salida y[n].
175
SISTEMAS CAUSALES
SISTEMAS ESTABLES
Definicin:
176
LINEALIDAD
INVARIANZA EN EL TIEMPO
T{x[n-nO]} = y[n-nO]
Un sistema es lineal e invariante con el tiempo cuando cumple con las condiciones de
linealidad e invarianza, esta clase de sistemas es de particular importancia y se
caracteriza por su respuesta al impulso.
177
Y [n] = X [k ]h[n k ] Suma de convolucin
k =
Los sistemas que se tratan en este proyecto estn orientados a sistemas LTI (sistemas
lineales e invariantes con el tiempo).
Las seales en tiempo discreto pueden aparecer de muchas formas, sin embargo la forma
ms comn de que aparezcan es mediante el muestreo de seales en tiempo continuo.
MUESTREO PERIDICO
La forma tpica de obtener una representacin de una seal en tiempo discreto de una
seal en tiempo continuo es mediante el muestreo peridico de la seal en tiempo
continuo.
En general el muestro es una operacin no invertible, es decir dada una seal en tiempo
discreto x[n], no es posible reconstruir exactamente la seal analgica de la cual provino,
existen muchas seales en tiempo continuo que pueden producir la misma secuencia de
178
muestras, sin embargo para reducir esta ambigedad se limita la entrada de seales al
sistema de muestreo (seales de banda limitada).
S(t)
179
Figura C.9 Tren de impulsos en el dominio del tiempo de periodo T la mitad del periodo
de la seal xC(t)
Figura C.10. Seal xC(t) modulada con tren de impulsos en el dominio del tiempo
x[n]
De las Figuras C.8 a la C.11 podemos observar que la diferencia fundamental entre Xs(t)
y x[n] es un escalamiento en el eje de las x, tambin ntese que x[n] no proporciona
ninguna informacin acerca de la frecuencia de muestreo (fs).
180
Xc (j)
-N N
S (t ) = (t nT ) Siendo (t) la funcin impulso unidad.
n =
2
S ( j ) =
T
( k
k =
s )
X s (t ) = X c (t ) S (t ) = X c (t ) (t nT ) = X c (nT ) (t nT )
n = n =
1 1
X s ( j ) = X c ( j) S ( j) = X c ( j ( k s )) = X c (nT )e jnT
2 T k = n =
181
Transformada continua de Fourier de Xs(t).
182
Como x[n] = xc(nT) y la transformada de Fourier de x[n] es
X (e jw ) = X [n]e
n =
jwn
X s ( j) = X (e jw ) w=T = X (e jT )
1 1 w 2. .k
X ( e j T ) =
T k =
X c ( j ( k s )) Y X ( e jw
) =
T k =
X c ( j(
T T
))
Al reconstruir una seal a partir de sus muestras lo primero a tener en cuenta es que al
sistema de muestreo debe entrar una seal de banda limitada, esto significa que se debe
conocer el valor de la frecuencia mxima (fN) de la seal a muestrear, esta limitante
depende del sistema en general como por ejemplo de la velocidad de muestreo de la
tarjeta de adquisicin de datos. Teniendo en cuenta estos aspectos se debe disear y
construir un filtro antialiasing, que garantice un valor mximo de frecuencia, de esta forma
podremos definir un valor de frecuencia de muestreo, que satisfaga todas las seales de
entrada. Bajo este supuesto podemos reconstruir una seal a partir de sus muestras con
183
un filtro pasa bajas ideal de frecuencia de corte como se ilustra en la Figura C.17., el
T
proceso en general esta caracterizado como se indica en la Figura C.16.
X[n]
xS(t) = (t - nT)
n =
, ahora si este tren de impulsos es la entrada a un filtro de
X r (t ) = X [n]h r (t nT )
184
La transformada inversa de Fourier de Hr(j) es una Sinc de amplitud T como se muestra
en la ecuacin:
t
sen( )
hr (t ) = T
t
T
(t nT )
sen
X r (t ) = X [n] T
(t nT )
T
( )
X r ( j ) = x[n]H ( j )e
n =
r
jTn
= H r ( j ) X e j T
185
La salida del conversor C/D es x[n] = xC(nT) y su transformada de Fourier es
1 w 2. .k
X (e jw ) =
T k =
X c ( j(
T T
))
(t nT )
sen
La salida del conversor D/C es Yr (t ) = Y [n]
T
n = (t nT )
T
Yr ( j ) = H r ( j )Y (e jT )
= T Y(ejWT), | |< y cero en el resto
T
Y (e jT ) = H (e jw )X (e jw )
Remplazando se tiene
Yr ( j ) = H r ( j )H (e jw )X (e jw )
( )
Yr ( j ) = H e jw X c ( j ) . para |w| <
T
y cero en le resto.
TRANSFORMADA Z
186
La transformada Z constituye la herramienta ms utilizada en el anlisis y diseo de
sistemas en tiempo discreto, siendo la operacin anloga a la transformada de Laplace
para el estudio de sistemas en tiempo continuo.
Para un sistema discreto se puede tener una caracterizacin a travs de una ecuacin de
diferencias. Para determinar la respuesta del sistema a una entrada previamente aplicada,
es necesario resolver la ecuacin de diferencias. Con el mtodo de la transformada Z, la
solucin de la ecuacin de diferencias se convierte en un problema de naturaleza
algebraica. Por consiguiente, el empleo de la transformada Z permite hacer un anlisis de
las caractersticas de un determinado filtro definido en tiempo discreto, lo que se traduce
en que ste mtodo facilita el anlisis y diseo de sistemas a travs de funciones de
transferencia en el dominio Z, en general un sistema representado en el dominio de Z se
caracteriza por
Y ( z ) = X ( z )H ( z )
X (z ) = X [n]z
n =
n
Donde z-n es un operador que transforma una secuencia en una funcin X(z), siendo z
una variable compleja.
187
X (z ) = X [n ]z n
n=0
Z= rejw
PLANO Z
188
El conjunto de valores de Z para los cuales la transformada converge se denomina
Regin de convergencia.
/ X [n]// z /
n =
n
<
La transformada Z tiene toda su utilidad cuando se puede expresar mediante una funcin
cerrada de Z. Entre las transformadas Z ms importantes se destacan aquellas que se
pueden expresar de forma racional, es decir,
P( z )
X(z) =
Q( z )
Los valores de Z para los cuales la ecuacin es cero e infinito se denominan ceros y polos
de X(z), respectivamente.
a n u[n]z n = (az 1 )
X (z ) = X [n]z n
n
n = = n = n=0
| (az ) |
1 n
<
n=0
189
Por lo tanto la transformada Z ser el conjunto de valores que cumplan que |z|>|a| y su
transformada es,
X ( z ) = (az 1 ) =
n 1 z
1
= , |z|>|a|
n =0 1 az za
Ahora tenemos una funcin continua y una regin de convergencia, con un cero en z=0 y
un polo en z=a.
De la Figura C.20 se observa que el valor de (a) determina la regin de convergencia, por
ejemplo si (a) es menor que 1, entonces la regin de convergencia de la transformada z
incluye la circunferencia unidad o lo que es lo mismo la transformada de Fourier converge,
por el contrario si (a) es mayor que 1 la regin de convergencia no incluye la transformada
de Fourier.
190
= a n z n = a n z n = 1 (a 1 z )
1
a u[ n 1]z
n n n
X(z) =
n = n = n =1 n=0
De los Ejemplos se observa que dos secuencias pueden tener la misma transformada Z
excepto por su regin de convergencia.
191
Si x[n] es una secuencia de duracin finita, entonces la regin de convergencia es
todo el plano Z excepto tal ves en Z=0 o en Z=
para que un sistema sea estable, entonces h[n] debe ser absolutamente sumable,
es decir debe tener transformada de Fourier, lo que significa que la regin de
convergencia de la transformada Z debe incluir la circunferencia unidad.
Para que un sistema sea causal entonces h[n] debe ser limitada por la izquierda, lo
que significa que la regin de convergencia se extiende desde el polo mas exterior
hasta z =
LA TRANSFORMADA Z INVERSA
192
1
X [n] = X ( z )z n 1dz
2 j
Mtodo de inspeccin
Existen casos donde por simple inspeccin o por ayuda de las tablas, no es posible
encontrar la transformada inversa, sin embargo si se pueden expresar los trminos de
forma simple se pueden encontrar ms fcilmente las secuencias correspondientes a
cada trmino, este es el caso de las funciones racionales, donde por medio del mtodo
matemtico de descomposicin en fracciones parciales es posible descomponer los
trminos racionales en una suma de fracciones simples.
5 5
3 Z 1 3 Z 1
Y (z ) 6 6
H(z) = = =
X ( z ) 1 7 Z 1 + 1 Z 2 1 1 1 1
1 Z 1 Z
12 12 4 3
193
Se observa que la transformada Z de la funcin de transferencia tiene 2 polos ubicados
en z = 1/4 y z = 1/3, respectivamente.
1
1 Z 1
Entonces la respuesta del sistema para cuando la entrada es un escaln es
5
3 Z 1
1 6
Y(z) = *
1 Z 1 1 1 1 1
1 Z 1 Z
4 3
1/ 3 1 13 / 3
Y(z) = - - +
(1 1/ 4Z ) (1 1/ 3Z ) 1 Z 1
1 1
n n
1 1 1 13
+ u[n]
3 4 3 3
Resolucin en Matlab
u=ones(1,20);% vector escaln de 20 puntos
x=0:19;
y=filter([3,-5/6],[1,-7/12,1/12],u);% calculo de la salida cuando la entrad es un escaln
stem(x,y); grafica de 20 puntos de la salida
194
4.5
3.5
2.5
1.5
0.5
0
0 2 4 6 8 10 12 14 16 18 20
PROPIEDADES DE LA TRANSFORMADA Z
LINEALIDAD
DESPLAZAMIENTO EN EL TIEMPO
195
z
z on X [n] X
z
, la regin de convergencia es |z |R y z es rejwo una
0 X 0
zo
exponencial compleja.
DIFERENCIADOR DE X(z).
dX ( z )
nX [n ] z
z
, la regin de convergencia es RX
dz
CONVOLUCIN DE SECUENCIAS.
N M
ak Y [n k ] = bm X [n m]
k =0 m=0
Para los sistemas caracterizados por la anterior ecuacin la salida se puede calcular
directamente o recursivamente, si el sistema es causal o no causal respectivamente,
adems si el sistema es causal tambin ser lineal e invariante en el tiempo.
196
De lo anterior se entiende que la ecuacin de diferencias, la respuesta al impulso y la
funcin de transferencia son todas caracterizaciones equivalentes de la relacin entrada-
salida de un sistema discreto, lineal e invariante en el tiempo, cuando se trabaja en un
sistema digital por ejemplo un computador, es necesario transformar estas expresiones en
un algoritmo aplicable a la tecnologa que se tenga, para el caso de los computadores las
ecuaciones de diferencias son de gran utilidad ya que se pueden formar con operaciones
bsicas como la suma, la multiplicacin por una constante y el retardo
bo + b1 z 1
H (z ) =
1 az 1 , |z| >a
Su respuesta al impulso es
Y [n] aY [n 1] = bo X [n] + b1 X [n 1] ,
Y [n] = aY [n 1] + bo X [n] + b1 X [n 1]
197
Para este algoritmo si se suponen condiciones iniciales de reposo el sistema ser causal
lineal e invariante en el tiempo. Este sistema ya se puede realizar en un sistema de
computador con operaciones lgicas como la suma y espacio en memoria como el
retardo.
198
ANEXO D: ESPECIFICACIONES DE LA TARJETA DE
ADQUISICIN DE DATOS PCI 1200 DE NATIONAL INSTRUMENTS
REQUERIMIENTOS
Figura D.1. Requerimientos de la TAD PCI 1200. Tomada de PCI 1200 User Manual.
199
CONFIGURACIN DE PINES
De la Figura D.2 se describen en la Tabla D.1 los pines 1, 9, 10, 11 y 12 los cuales fueron
los pines utilizados en este proyecto para la generacin analgica y la adquisicin de
seales en tiempo real.
200
Tabla D.1. Descripcin de los terminales de la TAD utilizados en el proyecto.
Nmero
Nombre Referencia Descripcin
de pin
1 ACH0 AGND Canal cero de entrada analgica
Tierra de entrada anloga. Conectada a AGND en
modo RSE(Modo de entrada simple referenciada,
9 AIGND AGND
por sus siglas en ingls). Este modo de entrada
fue el utilizado en el proyecto
10 DAC0OUT AGND Canal cero de salida analgica
Tierra anloga. Referencia para seales de salida
11 AGND -
voltaje analgicas.
12 DAC1OUT AGND Canal uno de salida analgica
201
202
203
204
205
206
207