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: (Gp:)
Acondicionamiento de señal (Gp:) A/D (Gp:) Procesamiento
Digital (Gp:) D/A (Gp:) 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 En 1996 TI introduce el primer DSP con
tecnología VLIW (Very Large Instruction Word), Familia
TMS320C62XX, con 8 unidades de ejecución independientes.
y[n] = x[n]a0 + x[n-1]a1 + x[n-2]a3 Berkeley Design Technology,
Inc.
Dispositivos Programables – GPP Vs VLIW GPP VLIW (Gp:) Memoria
Progama + Datos (Gp:) ALU, Registros (Gp:) Memoria Programa (Gp:)
L1 (Gp:) S1 (Gp:) M1 (Gp:) A1 (Gp:) L2 (Gp:) S2 (Gp:) M2 (Gp:) A2
(Gp:) Registros (Gp:) Registros (Gp:) Memoria Datos (Gp:) 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
18×18 (Altera: hasta 150 a 250MHz, Xilinx: hasta 512 a 500 MHz).
http://www.altera.com/technology/dsp/devices/dsp-devices_features.html
http://www.xilinx.com/products/virtex4/capabilities/xtremedsp.htm
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 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. (Gp:) x(n) h(n) y(n) x(n):
secuencia de entrada h(n): respuesta del sistema al impulso y(n):
secuencia de salida
Convolución discreta – Sistemas LTI h(n) = {0, 1, 1,
0} 0 1 2 3 n T x(0) = 1 0 1 2 3 4 x(1) = 2 n 0 1 2 3 4 n 0 1 2 3
4 y(n) = {0, 1,3, 2, 0} n Suma 0 1 3 2 0 Para: x(n) = {1, 2}
Matlab conv()
Correlación cruzada Para dos secuencias x1(n), x2(n):
Dependiente del número de datos y del desfase Dependiente
del desfase Normalizada Matlab xcorr()
Autocorrelación Es cuando x1[n] = x2[n] Cuando j=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 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 x(n) = 0.5n
u(n) ROC: |0.5/z| < 1 => |z| > 0.5 z: variable compleja
ROC
Transformada Z de primer orden h(n) = an u(n) (Gp:) x (Gp:) x
(Gp:) x (Gp:) x (Gp:) x (Gp:) x
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)
Ecuación en Diferencias Especifican la operación
que debe realizar un sistema: Para pasar a Z (propiedad del
desplazamiento): Un sistema descrito por E. D (coef constantes)
es LTI
Transformadas Z del seno y el coseno sin(wnT) cos(wnT)
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(nwot) y cos(nwot) conjunto ortogonal donde: wo:
frecuencia fundamental o del primer armónico. nwo:
armónicos Expansión en series de Fourier: 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 Dw = 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 x(n) se asume de periodo N
X(k) es de periodo N. DFT IDFT
Ejemplo DTF Ejemplo: x[n] = {1 0 0 1}:
Complejidad DFT 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 WN = e-j2p/N Para x(n) con 3
valores:
FFT Peden aprovecharse las redundancias. El primer algoritmo fue
el de Cooley y Tukey (1965).
Relación entre Fourier y Z La relación entre
Fourier y Z: z = re jq = e jw Que es la transformada z alrededor
del círculo unitario. Transformada de Fourier Transformada
Z
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)? (Gp:) x
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: 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; %frecuencia de
muestreo fo = 20; %frecuencia de la señal N = 2048;
%valores en la tabla 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
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(wnT) cos(wnT)
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; y1c = xx; x1c = xc; xc
= 0; end subplot(2,1,1); stem(ys) subplot(2,1,2); stem(yc)