You are on page 1of 40

Instrumentacin Electrnica

con Microprocesador II:


Procesadores Avanzados
Marta Ruiz Llata
Acondicionamiento digital de
seales
Introduccin
Transductor
Acond.
digitalizacin
Procesamiento de
datos:
Almacenamiento
Visualizacin
Comunicacin
Sistema de instrumentacin: esquema de bloques
2
Sistema embebido
Transductor
Acond.
seal
digitalizacin Comunicacin
Tratamiento de
datos
Extraccin de
informacin
ndice
Tcnicas digitales de linealizacin
Conversin AD no lineal
LUT (look-up table)
Linealizacin a trozos
Clculo o estimacin de la funcin caracterstica
Compensacin de magnitudes de influencia (temperatura)
3
Procesamiento digital del seales
Repaso de seales y sistemas (tiempo continuo y tiempo discreto)
Filtros digitales
Implementacin de filtros en microcontroladores
Linealizacin
La linealidad de un sensor es una caracterstica de su curva de calibracin esttica.
Describe cuanto se aleja esta de la curva de calibracin ideal (lnea recta).
Las fuentes de no linealidad en el sistema son el propio sensor, los circuitos analgicos de
acondicionamiento (amplificadores, filtros), el ADC
8
9
Aproximacin por
S
a
l
i
d
a

(
q
)
4
0 2 4 6 8 10
Magnitude (m)
0
1
2
3
4
5
6
7
Aproximacin por
mnimos cuadrados
Aproximacin a los
extremos del rango
Magnitud (m)
S
a
l
i
d
a

(
q
)
Caracterstica de un termistor NTC (Negative Temperature Coeficient)
|
|

\
|

=
0
1 1
0
T T
t
e R R

T es la temperatura
T
0
=298K
R
0
es la resistencia a T
0
es la constante del termistor (2000 4000 K)
5
0
5
10
15
20
25
30
0 20 40 60 80 100
R

t
e
r
m
i
s
t
o
r

(
K
)
Temperatura (C)
Se puede linealizar la respuesta del termistor mediante circuitos de acondicionamiento
analgicos. Un mtodo sencillo consiste en formar un divisor resistivo.
+Vs
R
t
1,5
2
2,5
3
3,5
4
4,5
5
T
e
n
s
i

n

d
e

s
a
l
i
d
a

(
V
)
= 3000 K
= 2000 K
= 4000 K
6
R
0
Para R
0
= 5K y = 3000 K, y V
S
= 5 V:
V
0
(-20C) = 0.38 V
V
0
(10C) = 1.13 V
V
0
(40C) = 2.24 V
V
0
= 0.75 V
V
0
= 1.11 V
0
0,5
1
1,5
-20 -10 0 10 20 30 40 50 60 70 80 90 100
T
e
n
s
i

n

d
e

s
a
l
i
d
a

(
V
)
Temperatura
= 4000 K
Tcnicas digitales de linealizacin
Conversin AD no lineal
LUT (look-up table)
Linealizacin a trozos
Clculo o estimacin de la funcin caracterstica
7
Conversin AD no lineal
Utilizado en sensores con interfaz digital. Proporcionan un cdigo digital lineal con el
parmetro de medida sensado a travs de un transductor no lineal.
transductor
m
AD no
lineal
Vin
8
AD lineal AD no lineal
1 2 3 4 5 6
000
001
010
011
100
101
110
Vin
1 2 3 4 5 6
000
001
010
011
100
101
110
Vin
LUT
Es una tabla que almacena los valores digitales correspondientes a los datos
proporcionados por el sensor.
Mtodo rpido porque no requiere clculos. La tabla se consulta directamente con los
resultados de la conversin AD.
La resolucin (incremento mnimo de la entrada para que se aprecie un incremento a la
entrada) depende del tamao de la tabla
9
entrada) depende del tamao de la tabla
La resolucin no es constante en todo el rango
Ejemplo de clculo de una LUT
Variable de entrada m en el rango 0-50 (Vo = 0-5 V)
Resolucin 3 bits
O = sqrt (m)
Tensin (V) ADC Cdigo LUT (Hex) LUT (dec)
0 000 0 00h 0
10
0 000 0 00h 0
0.71 001 1 01h 1
1.42 010 2 04h 4
2.13 011 3 09h 9
2.84 100 4 10h 16
3.55 101 5 19h 25
4.26 110 6 24h 36
4.97 111 7 31h 49
Linealizacin a trozos
Se divide el rango del parmetro de entrada en N segmentos iguales (o distintos) y se
aproxima de manera lineal cada tramo.
Para cada medida el micro evala una ecuacin lineal.
La resolucin se puede hacer constante.
El error depender del nmero de tramos.
11
El error depender del nmero de tramos.
Clculo de una ecuacin
Directamente la caracterstica esttica del sensor si es conocida (ejemplo SHT75)
Clculo de una funcin aproximada
Tcnicas de interpolacin
Tcnicas estadsticas
Redes neuronales
12
V
i
W
11
W
12
W
13
W
21
W
22
W
23
O
Compensacin de parmetros (temperatura)
S
a
l
i
d
a

(
o
)
T
1
T
2
S
a
l
i
d
a

(
o
)
T
1
T
2
13
Magnitud (m)
T
3
Magnitud (m)
T
2
T
3
m o
s
=
( ) T
T s
+ = 1
0
Compensacin de temperatura en un sistema embebido
El efecto de la temperatura sobre el transductor suele ser no lineal. Los sistemas
basados en microprocesador presentan ventajas respecto a compensacin mediante
circuitos en cuanto a flexibilidad y calibracin.
Vin (m,T)
Correccin
de offset
PGA ADC
14
Vin (m,T)
Ajuste
rango DAC
PGA
Micro
Vs (T)
ADC
ADC
DAC
Procesamiento de seales
Filtro
S&H Cuantific. Codificacin
Seal de tiempo continuo Seal de tiempo discreto
15
Filtro
antialiasing
S&H Cuantific. Codificacin
DSP
(muestras
digitales)
Repaso de seales y sistemas
Descripcin de seales en el dominio del tiempo
Descripcin en el dominio de la frecuencia
Amplitud
Desfase
Seal formada por 2 tonos (tecla 8), 852 Hz, 1336 Hz
16
Misma magnitud
(misma potencia en ambas frecuencias)
0 0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009 0.01
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Tiempo [s]
A
m
p
l
i
t
u
d

[
a
u
]
0 500 1000 1500 2000 2500 3000 3500 4000
Frecuencia [Hz]
M
a
g
n
i
t
u
d
Magnitud y fase en el dominio de la frecuencia
Son necesarias las dos variables para definir la seal.
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04
-1
0
1
1
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04
-1
0
1
1
100 Hz
200 Hz
+
17
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04
-1
0
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04
-2
0
2
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04
-1
0
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04
-2
0
2
Tiempo [s] Tiempo [s]
200 Hz
El desfase de una seal se refleja en un desplazamiento en el tiempo
f
t
d

=
Desfase ()
18
La magnitud y la fase se representan de manera conjunta utilizando nmeros complejos
Eje real
E
j
e

j
N = 3 + 4j
rad 927 . 0
5
=
=
N
N
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04
Tiempo [s]
Descripcin de sistemas
En el dominio del tiempo (respuesta al impulso, respuesta al escaln)
Funcin de transferencia H(j) (describe el comportamiento estacionario)
h(t)
Seal de
entrada
Seal de
salida
19
Funcin de transferencia H(j) (describe el comportamiento estacionario)
Respuesta en amplitud:|H(j )|
Respuesta en fase
Funcin del sistema H(s)
s es una frecuencia compleja
j s + =
) cos( ) (

+ = t Ae t x
t
H(s)
Seal de
entrada
Seal de
salida
Funcin del sistema H(s)
s es una frecuencia compleja
j s + =
) cos( ) (

+ = t Ae t x
t
Plano s
Eje imaginario (j)
20
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
-40
-30
-20
-10
0
10
20
30
-50
-40
-30
-20
-10
0
10
20
30
40
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
Eje real ()
Eje imaginario (j)
Filtros
Caractersticas en rgimen estacionario (dominio de la frecuencia)
Respuesta en amplitud
Respuesta en fase
Estabilidad
Caractersticas dinmicas (dominio del tiempo)
Tiempo de subida
Tiempo de establecimiento
Sobreoscilacin
21
Sobreoscilacin
Tipos de filtros
Paso alto
Paso bajo
Paso banda
Notch
Paso todo (modifica slo la fase de la seal)
Especificacin de la respuesta en amplitud
-15
-10
-5
0
M
a
g
n
i
t
u
d
e

(
d
B
)
Magnitude Response (dB)
22
Frecuencia de corte (fc)
Rizado en banda paso (Ap)
Atenuacin mnima (As)
Corte banda de paso (Fp)
Corte banda de rechazo (Fs)
Parmetros de un filtro paso bajo:
0 5 10 15 20
-25
-20
Frequency (kHz)
Especificacin de la respuesta en amplitud
-10
-5
0
M
a
g
n
i
t
u
d
e

(
d
B
)
Magnitude Response (dB)
23
Frecuencia central
Ancho de banda
Factor Q
Parmetros de un filtro paso banda:
0 0.5 1 1.5 2
-20
-15
Frequency (kHz)
Especificacin de la respuesta en fase (desfase lineal)
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6
-30
-25
-20
-15
-10
-5
0
Frequency (kHz)
M
a
g
n
i
t
u
d
e

(
d
B
)
Magnitude Response (dB)
24
Filtro de fase lineal
Frequency (kHz)
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6
-14
-12
-10
-8
-6
-4
-2
0
Frequency (kHz)
P
h
a
s
e

(
r
a
d
i
a
n
s
)
Phase Response
Resumen de seales y sistemas analgicos
Las seales analgicas son continuas en el tiempo y en los valores de amplitud. Se
pueden describir en el dominio del tiempo en el dominio de la frecuencia (amplitud, en
dB, y desfase frente a frecuencia en escala logartmica)
H(j) describe el comportamiento de un sistema en el dominio de la frecuencia. H(s)
tambin utilizando una frecuencia compleja.
La funcin H(s) puede descomponerse en polos (races del denominador) y ceros (races
del numerador). La representacin de los polos y los ceros de un sistema en el plano s es
una herramienta muy til para visualizar la respuesta del sistema.
25
una herramienta muy til para visualizar la respuesta del sistema.
Un filtro es un ejemplo de sistema que se disea para modificar la amplitud (y/o fase) de
una seal.
Seales y sistemas de tiempo discreto
Una seal de tiempo discreto toma valores en puntos del tiempo (intervalos regulares)
pero puede tener valores continuos. Se obtiene por muestreo de una seal analgica.
Una seal digital es discreta en el tiempo y cuantificada.
Fs frecuencia de muestreo
Ts=1/Fs periodo de muestreo
26
Seal de de 600 Hz muestreada a Fs = 3 KHz
Seal de 600 Hz muestreada a Fs = 1 KHz
Aliasing a 400 Hz
Eleccin de la frecuencia de muestreo
La frecuencia de muestreo afecta el contenido de frecuencias de la seal discreta
Los componentes de frecuencia por encima de la frecuencia de Nyquist (Fs/2) se
trasladan a otra frecuencia dentro del rango 0 Fs/2.
(

+
=
s
s
s a
F
F F
F F F
2
F /2
Rangos de espectro invertido
27
F
r
e
c
u
e
n
c
i
a

d
e

a
l
i
a
s
i
n
g
Frecuencia
F
s
/2 F
s
3F
s
/2 2F
s
F
s
/2
-F
s
/2
A B
C D
A
B
C
D
Eleccin de la frecuencia de muestreo (ejemplo 1)
M
a
g
n
i
t
u
d
M
a
g
n
i
t
u
d
Presin Red Radio
Presin
Red
Radio
28
Filtro antialiasing !
900 KHz 60 Hz 20 Hz
Frecuencia
M
a
g
n
i
t
u
d
Frecuencia (Hz)
M
a
g
n
i
t
u
d
10 20 25 = F
s
/2
Undersampling: Se puede muestrear una seal analgica para tener aliasing del rango
de frecuencias de inters. Cuidadosa eleccin de la frecuencia de muestreo para no
hacer el espectro discontinuo o invertido.
Eleccin de la frecuencia de muestreo (ejemplo 2)
M
a
g
n
i
t
u
d
29
Conversin
de
frecuencia
analgica a
digital
Filtro antialiasing
(ideal)
M
a
g
n
i
t
u
d
F
s
/2 F
s
nF
s
F
s
/2
-F
s
/2
(n+1/2)F
s
Descripcin de seales y sistemas en tiempo discreto
Frecuencia normalizada ()
[rad]
s
T =
BW
30
0
BW
Fs/2 Fs -Fs/2 -Fs -3Fs/2 3Fs/2 F [Hz]
0 2 - -2 -3 3 [rad]
H(e
j
) representa la respuesta en frecuencia (amplitud y fase del sistema)
H(z) es la funcin del sistema. La descomposicin en polos y ceros en el plano z da una
descripcin del comportamiento del sistema
E
j
e

j
Plano z
Polos inestables:
|z|>1
Eje j
31

=
j
re z
r z =
Eje real
= z
0 1 -1
Polos estables:
|z|<1
Eje real
|z|=1
z=0 z=
Paso de H(z) a ecuacin en diferencias
Una ecuacin en diferencias relaciona la salida actual del sistema con los valores
anteriores y el actual mediante una combinacin lineal (tarea que va a realizar nuestro
procesador)
2
2
25 . 0 1
1
) 5 . 0 )( 5 . 0 (
) 1 )( 1 (
) (
) (
) (

=
+
+
= =
z
z
j z j z
z z
x X
z Y
z H
32
) 2 ( 25 . 0 ) 2 ( ) ( ) ( + = n y n x n x n y
Filtros digitales
) ( ) 2 ( ) 1 ( ) ( ) 2 ( ) 1 ( ) ( ) (
2 1 2 1 0 p n z n
n n y a n y a n y a n n x b n x b n x b n x b n y
p z
+ + + + = K K
Delay T
s
Delay T
s
Delay T
s
b
0
b
1
b
2
b
n
z
x(n)
33
IIR (Infinite Impulse Response)
y(n)
-a
1
-a
2
-a
n
p
Delay T
s
Delay T
s
Delay T
s
Filtros digitales
) ( ) 2 ( ) 1 ( ) ( ) (
2 1 0 z n
n n x b n x b n x b n x b n y
z
+ + + + = K
Delay T
s
Delay T
s
Delay T
s
b
0
b
1
b
2
b
n
z
x(n)
y(n)
34
FIR (Finite Impulse Response)
y(n)
Se disean para trabajar en lnea (tiempo limitado).
Recursos de memoria limitados.
Operaciones generalmente en punto fijo.
Caractersticas de un sistema embebido
35
Proceso de diseo de un filtro digital
Especificar las caractersticas del filtro
Seleccionar el tipo de filtro (FIR o IIR)
Calcular los coeficientes del filtro
Seleccionar la arquitectura del filtro (ej: secciones de segundo orden en cascada)
Evaluar los efectos de operacin en punto fijo
Generar el cdigo
Verificar
36
Comparativa
Un filtro FIR generalmente requiere mas carga computacional que un filtro IIR para la
misma respuesta en magnitud dada.
Los filtros FIR pueden proporcionar exactamente una respuesta en fase lineal, mientras
que en los filtro IIR dan una respuesta de fase no lineal que puede distorsionar la seal.
En los filtros FIR la estabilidad est garantizada, al contrario que en los IIR.
Los filtros FIR son menos sensibles a la cuantificacin de los coeficientes y ruido de
redondeo en los clculos.
Con un filtro FIR es ms sencillo disearlo para cualquier especificacin arbitraria incluso
37
Con un filtro FIR es ms sencillo disearlo para cualquier especificacin arbitraria incluso
cuando no es posible su equivalente analgico.
La implementacin de los filtros FIR es directa (el hardware de los DSPs la realiza de
manera eficiente). Los filtros IIR requieren un diseo cuidadoso de sus etapas para
obtener prestaciones ptimas.
En caso de los filtros IIR existe su equivalente analgico y los procesos de diseo son
ms sencillos.
Implementacin de filtros en microcontroladores
Es necesario tener en cuenta la arquitectura del procesador.
Las operaciones principales son: multiplicacin, acumulacin (suma), desplazamiento,
saturacin (overflow), direccionamiento indexado y manejo de buffers circulares, y
movimiento de datos.
Programacin en alto nivel o programacin en ensamblador
Los datos se pueden codificar de en distintos formatos segn rango y resolucin (ej: 1.15
para representar datos entre -1 y menor que 1.
Optimizacin del cdigo :
38
Optimizacin del cdigo :
Reducir carga (llamadas a subrutinas, desplazar en lugar de multiplicar, contantes)
Reducir velocidad (registros, bucles, eliminacin de expresiones)
Movimiento de datos (usar punteros, no mover datos)
Optimizacin del uso de memoria
Control de la conversin AD intervalo de muestreo (interrupciones / polling)
Referencias
Manabendra Bhuyan. Intelligent Instrumentation. CRC Press, 2011.
Dale Grover & John R. Deller. Digital Signal Processing and teh Microcontroller. Prentice Hall, 1999
Robert B. Northrop. Introduction to Instrumentation and Measurements. CRC Press, 1997
39
Deberes
Teniendo en cuenta las caractersticas del circuito de captura analgica. Calcular una LUT
para linealizar la respuesta de un termopar tipo de tipo K en el rango de temperaturas -40-
80 C
Las tablas de voltajes termoelctricos datos pueden encontrarse en:
http://srdata.nist.gov/its90/download/type_k.tab
40
Determinar los coeficientes de un filtro notch (banda eliminada) con una resolucin de
16 bits. Los parmetros son F
0
= 50 Hz, Fs = 12.8 KHz
fdatool (Matlab)