Introducción al DSP

Download Report

Transcript Introducción al DSP

PROCESAMIENTO
DE SEÑALES
Universidad Técnica
Particular de Loja
Escuela de Electrónica
y Telecomunicaciones
Carlos Carrión Betancourth
EQBYTE.INC
[email protected]
[email protected]
Presentación
• Objetivo general
Presentar una introducción a los conceptos básicos de DSP, como
las perspectivas de desarrollo de aplicaciones relacionadas.
• Temática





Introducción al procesamiento digital de señales.
Convolución y correlación.
Ecuaciones en diferencia y transformada Z.
DFT y FFT.
Osciladores digitales.
• Metodología
Se realizará presentaciones, se hará discusión sobre el tema de
presentación, se realizará prácticas con Matlab/Simulink y
elementos relacionados.
Contenido de la presentación
• Introducción al procesamiento digital de
señales.
• Convolución y correlación.
• Ecuaciones en diferencias y transformada
Z.
• Transformada discreta de Fourier.
• Osciladores digitales.
• Introducción a filtros digitales.
• Diseño e implementación de filtros digitales.
Aplicaciones de DSP
(1960-1970s) DSP limitado a: radar y sonar,
medicina y exploración del espacio.
(1980-1990s) La revolución de la
microelectrónica causó un gran crecimiento
en las aplicaciones de los DSPs.
Aplicaciones de DSP
(2000s-actualidad) La tendencia actual de
esta tecnología es hacia aplicaciones de
comunicaciones inalámbricas, así como
para multimedia. La producción a gran
escala de chips tiende a una reducción de
costos. Además de los nuevos dispositivos
cuánticos.
Aplicaciones de DSP
Procesamiento de Imágenes
• Reconocimiento de Patrones
• Visión Robótica http://cavr.korea.ac.kr/
Aplicaciones Militares
• Comunicaciones seguras
• Procesamiento de radar
• Guía de misiles
Instrumentación y control
• Reducción de ruido
• Análisis espectral
Procesamiento de Audio
• Reconocimiento de voz
• Síntesis de voz
Medicina
• Monitoreo de pacientes
• Procesamiento de señales ECG, EEG, imágenes
Procesamiento digital de señales
Diagrama de bloques de un Sistema de
Procesamiento digital de señales:
Acondicionamiento
de señal
A/D
Procesamiento
Digital
D/A
Adecuación
Procesamiento: convolución, correlación, DFT
Dispositivos para el procesamiento digital: PC,
microprocesadores, microcontroladores, DSPs (Digital
Signal Processors), ASICs (Application Specific
Integrated Circuit)
Dispositivos Procesamiento - Generalidades
•
•
•
•
GPP, General Purpose Processor
DSP, Digital Signal Processor
FPGA, Field Programmable Gate Array
ASIC, Application Specific Integrated Circuit
Cada uno con unas características propias para
determinadas aplicaciones.
El mejor dispositivo depende de la aplicación.
Dispositivos Programables - GPP
Características principales
• Flexibilidad
• Tecnología conocida
• Gran desempeño en aplicaciones de control
de flujo
Desarrollo
• Extensiones para manejo vectorial
• Capacidades de procesamiento digital de
señales
• Tecnología superescalares: varias
instrucciones por ciclo de reloj.
Dispositivos Programables - DSP
Evolución
• En 1982 TI introduce el primer DSP
comercial (TMS32010) para aplicaciones en
Telecomunicaciones
y[n] = x[n]a0 + x[n-1]a1 + x[n-2]a3
• En 1996 TI introduce el primer DSP con
tecnología VLIW (Very Large Instruction
Word), Familia TMS320C62XX, con 8
unidades de ejecución independientes.
Berkeley Design Technology, Inc.
Dispositivos Programables - GPP Vs VLIW
• GPP
• VLIW
Memoria
Memoria Programa
Progama + Datos
ALU, Registros
L1 S1 M1 A1
L2 S2 M2 A2
Registros
Registros
Memoria Datos
L:ALU S:Shift M:Multiply A:Address
Berkeley Design Technology, Inc.
Dispositivos Programables - FPGAs
Características principales
• Flexibilidad
• Bajo tiempo de desarrollo de aplicaciones
• Bajos volúmenes
• Aplicaciones de alto nivel de paralelismo
Características DSP
• Herramientas para el diseño de sistemas DSP
(Altera: DSP Builder, Xilinx: System Generator).
• Memoria Embebida
• Multiplicadores embebidos 18x18 (Altera: hasta
150 a 250MHz, Xilinx: hasta 512 a 500 MHz).
http://www.xilinx.com/products/virtex4/capabilities/xtremedsp.htm
http://www.altera.com/technology/dsp/devices/dsp-devices_features.html
Dispositivos Programables - ASICs
Características
• Alto desempeño
• Bajo consumo de potencia
• Alta velocidad de procesamiento
• Alto tiempo de desarrollo de aplicaciones
• Altos volúmenes
• No son flexibles
Desarrollo
• HardCopy de Altera: desarrollo del diseño y
depuramiento empleando herramientas de
FPGAs, emplea el mismo proceso de fabricación
de FPGAs.
http://www.altera.com/products/software/flows/asic/qts-structured_asic.html
Dispositivos Programables - Comparación
Desempeño Costo
Potencia
Flexibilidad
Esfuerzo de
diseño
ASIC
Alto
Alto
Baja
Baja
Alta
DPS
Medio
Medio
Media
Media
Media
GPP
Bajo
Bajo
Medio
Alta
Baja
HR
Medio
Medio
Alta
Alta
Media
Reconfigurable Computing for DSP: a survey. INAOE.
Contenido de la presentación
• Introducción al procesamiento digital de
señales.
• Convolución y correlación.
• Ecuaciones en diferencias y transformada
Z.
• Transformada Discreta de Fourier.
• Osciladores.
• Introducción a Filtros Digitales.
• Diseño e implementación de filtros digitales.
Convolución discreta
La convolución discreta se aplica a secuencias causales LTI.
x(n)
h(n)
y(n)
x(n): secuencia de entrada
h(n): respuesta del sistema al impulso
y(n): secuencia de salida
y[n] 


k  
k  
 x[n  k ]h[n]   x[k ]h[n  k ]
Convolución discreta – Sistemas LTI
h(n) = {0, 1, 1, 0}
x(0) = 1
T
0
1
2
3
n
0
Para: x(n) = {1, 2}
1
2
3
Matlab conv()
4
2
3
4
x(1) = 2
y(n) = {0, 1,3, 2, 0}
0
1
n
n
0
1
2
3
4
Suma 0
1
3
2
0
n
Correlación cruzada
Para dos secuencias x1(n), x2(n): Matlab xcorr()
N 1
r12   x1(n) x2(n)
Dependiente del número de datos y
del desfase
n 0
1
r12 
N
N 1
 x1(n) x2(n)
n 0
1
r12( j ) 
N
12( j ) 
Dependiente del desfase
N 1
 x1(n) x2(n 
j)
n 0
r12( j )
1 

2
2
x
1
(
n
)
x
2
(
n
)




N  n 0
n 0

N 1
N 1
1/ 2
Normalizada
Autocorrelación
Es cuando x1[n] = x2[n]
1 N 1
r11 ( j )   x1 (n) x1 (n  j )
N n 0
1 N 1
1 N 1 2
x1 (n) x1 (n)   x1 (n)
Cuando j=0 r11 (0) 

N n 0
N n 0
r11(0) es la energía normalizada
Autocorrelación normalizada
Ejercicios
• Realice la correlación de las siguientes
señales:
– Señales senoidales con frecuencia 10Hz,
frecuencia de muestreo 360Hz, desfase 60°.
– Dos señales de distribución de probabilidad
gausiana.
– La autocorrelación de una señal de distribución
de probabilidad gausiana.
Contenido de la presentación
• Introducción al procesamiento digital de
señales
• Convolución y correlación
• Ecuaciones en diferencias y transformada Z
• Transformada Discreta de Fourier
• Osciladores
• Filtros Digitales
• Empleo de Simulink
Transformada Z

 x ( n) z
X ( z) 
 n z: variable compleja
n  
ROC
Ejemplos
1. x(n) = {1 2 -1 -8}
X(z) = 1 + 2z-1 - z-2 – 8z-3; ROC: todo valor de z excepto z=0
2. x(n) = 0.5n u(n)

 0.5
n
z
n
n 0
ROC: |0.5/z| < 1

 0.5 z 

n 0
=> |z| > 0.5
1 n
1

1  0.5 z 1
Transformada Z de primer orden
h(n) = an u(n)
H ( z) 

a
n 0
n
z
n

 az 

1 n
n 0
x
x
x
x
x
x
1

1  az1
Propiedades de la Transformada Z
• Linealidad:
ax1(n) + bx2(n) - > aX1(z) + bX2(z)
• Desplazamiento
x(n-m) = z-mX(z)
• Convolución
Y(z) = X(z) H(z)
Ecuación en Diferencias
y(n) = b0x(n) + b1x(n-1) + b2x(n-1) - a1y(n-1)
Propiedades de Z
• Linealidad: ax1(n)+bx2(n) -> aX1(z)+bX2(z)
• Desplazamiento: x(n-m) = z-mX(z)
Y(z) = b0X(z) + b1X(z) z-1+b2X(z) z-2-a1Y(z) z-1
Y(z) (1 + a1z-1) = X(z) (b0 + b1z-1 + b2z-2)
1
b0  b1 z  b2 z
Y ( z)
H ( z) 

1
X ( z)
1  a1 z
2
Ecuación en Diferencias
Especifican la operación que debe realizar un sistema:
N
a
k 0
M
k
y (n  k )   bk x(n  k )
k 0
N
M
k 1
k 0
y (n)   ak y (n  k )   bk x(n  k )
Para pasar a Z (propiedad del desplazamiento):
N
M
k 1
k 0
y (n)   ak z  k Y ( z )   bk z  k X ( z )
Un sistema descrito por E. D (coef constantes) es LTI
Transformadas Z del seno y el coseno
sin(nT)
zsen(T )
z 2  2 z cos(T )  1
cos(nT)
z 2  z cos(T )
z 2  2 z cos(T )  1
Contenido de la presentación
• Introducción al procesamiento digital de
señales
• Convolución y correlación
• Ecuaciones en diferencias y transformada Z
• Transformada Discreta de Fourier
• Osciladores
• Filtros Digitales
• Empleo de Simulink
Series de Fourier
En 1822 Fourier descubrió las series de Fourier.
Las sen(not) y cos(not) conjunto ortogonal donde:
o: frecuencia fundamental o del primer armónico.
no: armónicos
Expansión en series de Fourier:


f (t )  a 0   a n cos(n0 t)  b n sen(n0 t)
 n 1

Series de Fourier: señales periódicas
Transformada de Fourier: señales de energía finita
Exponencial y sinusoidal en tiempo discreto
1. Una senoidal discreta es periódicas solo si la frecuencia
es racional:
f0= k/N
2. Dos sinusoides separadas en D = 2p son idénticas
Exponenciales relacionadas armónicamente con f0=1/N,
El conjunto de exponenciales:
exp(j2pk f0n)
está conformado solo por N exponenciales discretas:
exp(j2pkn/N), k=0,1,2...N-1
son periódicas de periodo N.
DFT Transformada Discreta de Fourier
DFT
X (k ) 
N 1
 j 2pkn / N
x
(
n
)
e

n 0
IDFT
1
x ( n) 
N
N 1
j 2pkn / N
X
(
k
)
e

k 0
x(n) se asume de periodo N
X(k) es de periodo N.
Ejemplo DTF
N 1
Ejemplo: x[n] = {1 0 0 1}: X (k )   x(n)e  j 2pkn / N
n 0
3
3
n 0
n 0
X (0)   x(n)e  j 0   x(n)  1  0  0  1  2
3
X (1)   x(n)e  j 2pn / 4  1  0  0  1e  j 3p / 2  1  j
n 0
3
X (2)   x(n)e  j 4pn / 4  1  0  0  1e  j 3p  0
n 0
3
X (3)   x(n)e  j 6pn / 4  1  0  0  1e  j 9p / 2  1  j
n 0
Complejidad DFT
Para x(n) con 3 valores:
X [k ]  n 0 x[n] exp(  j (2p / N )kn )
3
WN = e-j2p/N
X (k )  x(0)W  x(1)W  x(2)W
0
N
k
N
2k
N
 x(3)W
3k
N
Para calcular cada punto: 4 multiplicaciones complejas y 3 sumas.
Para N puntos: N2 multiplicaciones y N(N-1) sumas. Alta
complejidad.
Hay redundancias, por ejemplo:
Para k=1, n=2: WN2
Para k=2, n=1: WN2
FFT
Peden aprovecharse las redundancias.
El primer algoritmo fue el de Cooley y Tukey
(1965).
N
DFT
X
+
X
+
X
(DFT/FFT)
2
4
2
1
2
4
1
128
16384
16256
448
896
36.6
18.1
4192256
11264 22528
372.4
186.1
2048 4194304
FFT
8192 67108864 67100672 53248 106496 1260.3
+
(DFT/FFT)
630
Relación entre Fourier y Z
Transformada
de Fourier
Transformada Z
X ( ) 

 jn
x
(
n
)
e

n  
X ( z) 

n
x
(
n
)
z

n  
La relación entre Fourier y Z:
z = re jq = e j
Que es la transformada z alrededor del
círculo unitario.
Ejemplo
Un sistema con respuesta al impulso:
h(n) = 0.5nu(n)
Términos de la respuesta al impulso:
h(n) = {1, 0.5, 0.25, 0.125….}
Que tipo de filtro es (LPF, HPF, BPF)?

 0.5
n
n 0
z
n

 0.5 z 

n 0
x
1 n
1

1  0.5 z 1
Como implementar el filtro
en un DSP?
Ejercicios
Hallar los primeros 5 términos de la respuesta al
impulso de un sistema con la siguiente función de
transferencia:
1  z 1
H ( z) 
1  0.5 z 1
Hallar la ecuación en diferencias para un sistema
que tiene los siguientes polos y ceros:
z=0
z=0.5
p=-1
p=1
Contenido de la presentación
• Introducción al procesamiento digital de
señales
• Convolución y correlación
• Ecuaciones en diferencias y transformada Z
• Transformada Discreta de Fourier
• Osciladores
• Filtros Digitales
• Empleo de Simulink
Relación señal a ruido
Resultado de la precisión finita:
SNR (ideal) = 6.02n + 1.76 dB
Puede mitigarse el efecto de truncar la fase
añadiendo a la fase una secuencia aleatoria
removiendo la periodicidad en la fase reduciendo
los espurios
Osciladores
Tipos de osciladores
• Look-up-table
• CORDIC
• Transformada z
• Series de Taylor
Look-up-table
Consiste en acumular incrementos de fase
para emplearlos como dirección de una
ROM.
• ROM completa: la ROM almacena los 360°
de las señales seno y coseno. Emplea
mucha memoria y pocos elementos lógicos.
• ROM pequeña: almacena solo una porción
de los valores de las señales seno y
coseno. Los demás valores son derivados.
Programa en Matlab - LUT
clear all;
fs = 2000;
fo = 20;
N = 2048;
paso = 2*pi/(N+1);
tabl = sin(0:paso:2*pi-paso);
Nspcy = fs/fo;
thpas = N/(Nspcy-1)
ang = 1;
x = [];
for k = 0:floor(Nspcy)-1,
x = [x tabl(floor(ang))];
ang = ang + thpas;
end
plot(x)
res = paso*180/pi
%frecuencia de muestreo
%frecuencia de la señal
%valores en la tabla
Antes y después de añadir ruido - LUT
CORDIC
Empleado cuando no se dispone de suficiente
memoria para implementar una tabla.
El algoritmo emplea multiplicaciones por 2,
sumas, restas y una tabla de un tamaño
pequeño.
Transformada Z
sin(nT)
zsen(T )
z 2  2 z cos(T )  1
cos(nT)
z 2  z cos(T )
z 2  2 z cos(T )  1
Programa Matlab
fs = 100; f = 20; w = 2*pi*f/fs;
%Sin:
a1s = sin(w); b1s = 2*cos(w);
%Cos:
a1c = cos(w); b1c = 2*cos(w);
ys = []; y1s = 0; y2s = 0; x1s = 0; xs = 1;
yc = []; y1c = 0; y2c = 0; x1c = 0; xc = 1;
for k = 1:10,
yy = b1s*y1s - y2s + a1s*x1s;
xx = b1c*y1c - y2c + a1c*x1c + xc;
ys = [ys yy]; y2s = y1s; y1s = yy; x1s = xs; xs = 0;
yc= [yc xx]; y2c = y1c;
end
subplot(2,1,1); stem(ys)
subplot(2,1,2); stem(yc)
y1c = xx;
x1c = xc;
xc = 0;