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)