Instrumentación Electrónica
con Microprocesador II:
Procesadores Avanzados
Marta Ruiz Llata
Acondicionamiento digital de
señales
Introducción
TransductorAcond.
digitalización
Procesamiento de datos:• Almacenamiento• Visualización• Comunicación
Sistema de instrumentación: esquema de bloques
2
Sistema embebido
TransductorAcond.señal
digitalización • Comunicación
• Tratamiento de
datos
• Extracción de información
Índice
• Técnicas digitales de linealización• Conversión AD no lineal• LUT (look-up table)• Linealización a trozos• Cálculo o estimación de la función característica
• Compensación de magnitudes de influencia (temperatura…)
3
• Procesamiento digital del señales• Repaso de señales y sistemas (tiempo continuo y tiempo discreto)• Filtros digitales• Implementación de filtros en microcontroladores
Linealización
• La linealidad de un sensor es una característica de su curva de calibración estática. Describe cuanto se aleja esta de la curva de calibración ideal (línea recta).
• Las fuentes de no linealidad en el sistema son el propio sensor, los circuitos analógicos de acondicionamiento (amplificadores, filtros…), el ADC…
8
9
Aproximación por
Salid
a (q
)
40 2 4 6 8 10
Magnitude (m)
0
1
2
3
4
5
6
7
Aproximación por mínimos cuadrados
Aproximación a los extremos del rango
Magnitud (m)
Salid
a (q
)
Característica de un termistor NTC (Negative Temperature Coeficient)
−
= 0
11
0TT
t eRRβ
T es la temperaturaT0=298KR0 es la resistencia a T0β es la constante del termistor (2000 – 4000 K)
5
0
5
10
15
20
25
30
0 20 40 60 80 100
R t
erm
isto
r (K
)
Temperatura (ºC)
• Se puede linealizar la respuesta del termistor mediante circuitos de acondicionamiento analógicos. Un método sencillo consiste en formar un divisor resistivo.
+Vs
Rt
1,5
2
2,5
3
3,5
4
4,5
5
Te
nsi
ón
de
sa
lid
a (
V)
β = 3000 K
β = 2000 K
β = 4000 K
6
R0
Para R0 = 5K y β = 3000 K, y VS = 5 V:V0 (-20ºC) = 0.38 VV0 (10ºC) = 1.13 VV0 (40ºC) = 2.24 V
ΔV0 = 0.75 V
ΔV0 = 1.11 V
0
0,5
1
1,5
-20 -10 0 10 20 30 40 50 60 70 80 90 100T
en
sió
n d
e s
ali
da
(V
)
Temperatura
β = 4000 K
Técnicas digitales de linealización
• Conversión AD no lineal• LUT (look-up table)• Linealización a trozos• Cálculo o estimación de la función característica
7
Conversión AD no lineal
Utilizado en sensores con interfaz digital. Proporcionan un código digital lineal con el parámetro de medida sensado a través de un transductor no lineal.
transductorm AD no
linealVin
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
010011100101110
Vin
LUT
• Es una tabla que almacena los valores digitales correspondientes a los datos proporcionados por el sensor.
• Método rápido porque no requiere cálculos. La tabla se consulta directamente con los resultados de la conversión AD.
• La resolución (incremento mínimo de la entrada para que se aprecie un incremento a la entrada) depende del tamaño de la tabla
9
entrada) depende del tamaño de la tabla
• La resolución no es constante en todo el rango
Ejemplo de cálculo de una LUT
• Variable de entrada m en el rango 0-50 (Vo = 0-5 V)• Resolución 3 bits• O = sqrt (m)
Tensión (V) ADC Código 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
Linealización a trozos
• Se divide el rango del parámetro de entrada en N segmentos iguales (o distintos) y se aproxima de manera lineal cada tramo.
• Para cada medida el micro evalúa una ecuación lineal.
• La resolución se puede hacer constante.
• El error dependerá del número de tramos.
11
• El error dependerá del número de tramos.
Cálculo de una ecuación
• Directamente la característica estática del sensor si es conocida (ejemplo SHT75)
• Cálculo de una función aproximada• Técnicas de interpolación• Técnicas estadísticas• Redes neuronales…
12
Vi
W11
W12
W13
W21
W22
W23
O
Compensación de parámetros (temperatura)
Salid
a (o
) T1
T2 Salid
a (o
)
T1
T2
13
Magnitud (m)
T3
Magnitud (m)
T2
T3
mo sα=
( )TTs ααα += 10
Compensación 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 compensación mediante circuitos en cuanto a flexibilidad y calibración.
Vin (m,T)
Corrección de offset
PGA ADC
14
Vin (m,T)
Ajuste rango DAC
PGA
Micro
Vs (T)
ADC
ADC
DAC
Procesamiento de señales
Filtro S&H Cuantific. Codificación
Señal de tiempo continuo Señal de tiempo discreto
15
Filtro antialiasing
S&H Cuantific. Codificación
DSP(muestras digitales)
Repaso de señales y sistemas
• Descripción de señales en el dominio del tiempo• Descripción en el dominio de la frecuencia
• Amplitud• Desfase
Señal 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]
Am
plit
ud
[au
]
0 500 1000 1500 2000 2500 3000 3500 4000
Frecuencia [Hz]
Mag
nitu
d
Magnitud y fase en el dominio de la frecuencia
Son necesarias las dos variables para definir la señal.
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 señal se refleja en un desplazamiento en el tiempo
ftd
θ−=Desfase (θ)
18
• La magnitud y la fase se representan de manera conjunta utilizando números complejos
Eje real
Eje
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]
Descripción de sistemas
• En el dominio del tiempo (respuesta al impulso, respuesta al escalón)
• Función de transferencia H(jω) (describe el comportamiento estacionario)
h(t)
Señal de entrada
Señal de salida
19
• Función de transferencia H(jω) (describe el comportamiento estacionario)• Respuesta en amplitud:|H(j ω )|• Respuesta en fase
• Función del sistema H(s)• s es una frecuencia compleja
ωσ js +=
)cos()( θωσ += tAetx t
H(s)
Señal de entrada
Señal de salida
• Función del sistema H(s)• s es una frecuencia compleja
ωσ js +=
)cos()( θωσ += tAetx 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
• Características en régimen estacionario (dominio de la frecuencia)• Respuesta en amplitud• Respuesta en fase• Estabilidad
• Características dinámicas (dominio del tiempo)• Tiempo de subida• Tiempo de establecimiento• Sobreoscilación
21
• Sobreoscilación
Tipos de filtros
• Paso alto• Paso bajo• Paso banda• Notch• Paso todo (modifica sólo la fase de la señal)
Especificación de la respuesta en amplitud
-15
-10
-5
0
Mag
nitu
de (
dB)
Magnitude Response (dB)
22
• Frecuencia de corte (fc)• Rizado en banda paso (Ap)• Atenuación mínima (As)• Corte banda de paso (Fp)• Corte banda de rechazo (Fs)
Parámetros de un filtro paso bajo:
0 5 10 15 20
-25
-20
Frequency (kHz)
Especificación de la respuesta en amplitud
-10
-5
0M
agni
tude
(dB
)
Magnitude Response (dB)
23
• Frecuencia central• Ancho de banda• Factor Q
Parámetros de un filtro paso banda:
0 0.5 1 1.5 2-20
-15
Frequency (kHz)
Especificación 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)
Mag
nitu
de (dB
)
Magnitude Response (dB)
24Filtro 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)
Pha
se (ra
dian
s)
Phase Response
Resumen de señales y sistemas analógicos
• Las señales analógicas 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 logarítmica)
• H(jω) describe el comportamiento de un sistema en el dominio de la frecuencia. H(s) también utilizando una frecuencia compleja.
• La función H(s) puede descomponerse en polos (raíces del denominador) y ceros (raíces del numerador). La representación 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 diseña para modificar la amplitud (y/o fase) de
una señal.
Señales y sistemas de tiempo discreto
• Una señal de tiempo discreto toma valores en puntos del tiempo (intervalos regulares) pero puede tener valores continuos. Se obtiene por muestreo de una señal analógica.
• Una “señal” digital es discreta en el tiempo y cuantificada.
Fs frecuencia de muestreoTs=1/Fs periodo de muestreo
26
Señal de de 600 Hz muestreada a Fs = 3 KHzSeñal de 600 Hz muestreada a Fs = 1 KHz
Aliasing a 400 Hz
Elección de la frecuencia de muestreo
• La frecuencia de muestreo afecta el contenido de frecuencias de la señal 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
ssa F
FFFFF
2
F /2
Rangos de espectro invertido
27
Frec
uen
cia
de
alia
sin
g
Frecuencia
Fs/2 Fs 3Fs/2 2Fs
Fs/2
-Fs/2
A B
C D
A’
B’
C’
D’
Elección de la frecuencia de muestreo (ejemplo 1)M
agn
itu
d
Mag
nit
ud
Presión Red Radio
PresiónRedRadio
28
¡ Filtro antialiasing !
900 KHz60 Hz20 Hz
Frecuencia
Mag
nit
ud
Frecuencia (Hz)
Mag
nit
ud
10 20 25 = Fs/2
• Undersampling: Se puede muestrear una señal analógica para tener aliasing del rango de frecuencias de interés. Cuidadosa elección de la frecuencia de muestreo para no hacer el espectro discontinuo o invertido.
Elección de la frecuencia de muestreo (ejemplo 2)M
agn
itu
d
29
Conversión de
frecuencia analógica a
digital
Filtro antialiasing(ideal)
Mag
nit
ud
Fs/2 Fs nFs
Fs/2
-Fs/2 (n+1/2)Fs
Descripción de señales y sistemas en tiempo discreto
Frecuencia normalizada (Ω)
[rad] sTω=Ω
BW
30
0
BW
Fs/2 Fs-Fs/2-Fs-3Fs/2 3Fs/2 F [Hz]
0 π 2 π- π-2 π-3 π 3 π Ω [rad]
• H(ej Ω) representa la respuesta en frecuencia (amplitud y fase del sistema)• H(z) es la función del sistema. La descomposición en polos y ceros en el plano z da una
descripción del comportamiento del sistema
Eje
j
Plano z
Polos inestables: |z|>1
Eje j
31
Ω= jrezrz =
Eje real
Ω=∠z
0 1-1
Polos estables: |z|<1
Eje real
|z|=1
∠z=0∠z=π
Paso de H(z) a ecuación en diferencias
• Una ecuación en diferencias relaciona la salida actual del sistema con los valores anteriores y el actual mediante una combinación lineal (tarea que va a realizar nuestro procesador)
2
2
25.01
1
)5.0)(5.0(
)1)(1(
)(
)()( −
−
−−=
−++−==
z
z
jzjz
zz
xX
zYzH
32
)2(25.0)2()()( −+−−= nynxnxny
Filtros digitales
)()2()1()()2()1()()( 21210 pnzn nnyanyanyannxbnxbnxbnxbnypz
−−−−−−−−++−+−+= KK
Delay Ts Delay Ts Delay Ts
b0 b1 b2 bnz
x(n)
33IIR (Infinite Impulse Response)
y(n)
-a1 -a2 -anp
Delay Ts Delay Ts Delay Ts
Filtros digitales
)()2()1()()( 210 zn nnxbnxbnxbnxbnyz
−++−+−+= K
Delay Ts Delay Ts Delay Ts
b0 b1 b2 bnz
x(n)
y(n)
34FIR (Finite Impulse Response)
y(n)
• Se diseñan para trabajar en línea (tiempo limitado).• Recursos de memoria limitados.• Operaciones generalmente en punto fijo.
Características de un sistema embebido
35
Proceso de diseño de un filtro digital
• Especificar las características 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 operación en punto fijo• Generar el código• 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 señal.
• En los filtros FIR la estabilidad está garantizada, al contrario que en los IIR.• Los filtros FIR son menos sensibles a la cuantificación de los coeficientes y ruido de
redondeo en los cálculos.• Con un filtro FIR es más sencillo diseñarlo para cualquier especificación arbitraria incluso
37
• Con un filtro FIR es más sencillo diseñarlo para cualquier especificación arbitraria incluso cuando no es posible su equivalente analógico.
• La implementación de los filtros FIR es directa (el hardware de los DSPs la realiza de manera eficiente). Los filtros IIR requieren un diseño cuidadoso de sus etapas para obtener prestaciones óptimas.
• En caso de los filtros IIR existe su equivalente analógico y los procesos de diseño son más sencillos.
Implementación de filtros en microcontroladores
• Es necesario tener en cuenta la arquitectura del procesador.• Las operaciones principales son: multiplicación, acumulación (suma), desplazamiento,
saturación (overflow), direccionamiento indexado y manejo de buffers circulares, y movimiento de datos.
• Programación en alto nivel o programación en ensamblador• Los datos se pueden codificar de en distintos formatos según rango y resolución (ej: 1.15
para representar datos entre -1 y menor que 1.• Optimización del código :
38
• Optimización del código : • Reducir carga (llamadas a subrutinas, desplazar en lugar de multiplicar, contantes…)• Reducir velocidad (registros, bucles, eliminación de expresiones…)• Movimiento de datos (usar punteros, no mover datos)
• Optimización del uso de memoria• Control de la conversión 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 características del circuito de captura analógica. 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 termoeléctricos 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 resolución de 16 bits. Los parámetros son F0 = 50 Hz, Fs = 12.8 KHz
fdatool (Matlab)