460 likes | 711 Views
11. Procesamiento de Señales. Procesamiento de señales analógicas tiempo continuo transformadas continuas (Fourier, Laplace) filtros implementados en base a funciones matemáticas: Butterworth, Chebyshev, Elípticos filtros implementados: pasivos, activos, activos sin L, capacitores conmutados
E N D
11. Procesamiento de Señales Procesamiento de señales analógicas • tiempo continuo • transformadas continuas (Fourier, Laplace) • filtros implementados en base a funciones matemáticas: Butterworth, Chebyshev, Elípticos • filtros implementados: pasivos, activos, activos sin L, capacitores conmutados • circuitos aritméticos analógicos (sumadores, multiplicadores)
11. Procesamiento de Señales Procesamiento de señales de tiempo discreto (procesamiento digital de señales) • tiempo discreto • transformadas discretas (Fourier, Z) • Filtros: IIR y FIR • IIR: basados en un filtro prototipo analógico y una transformación AD • FIR: basados en la aproximación a una función de transferencia pasabajas ideal
11. Procesamiento de Señales • Requieren circuitos aritméticos digitales: sumadores, multiplicadores, registros,... • Sistemas implementados: • software: c, c++, matlab • hardware: procesadores, DSP’s, FPGA´s • software/hardware
11. Procesamiento de Señales Procesamiento Digital de Señales y: • Teoría de comunicaciones • Teoría de control • Teoría de información • Probabilidad y estadística • Electrónica analógica • Electrónica digital • Análisis numérico
11. Procesamiento de Señales Señal: cualquier variable o cantidad que lleva algún tipo de información que puede ser tranformada o manipulada Señales de interés: • voz • biomédicas • audio • video, imágenes • radar
11. Procesamiento de Señales Ventajas del procesamiento digital: • Exactitud garantizada • Reproductibilidad perfecta • No dependencia de parámetros físicos (temp.) • Gran flexibilidad (reprogramabilidad) • Rendimiento superior
11. Procesamiento de Señales Desventajas: • Velocidad y costo • Tiempo de diseño • Longitud de palabra finita
11. Procesamiento de Señales Áreas de aplicación: • Procesamiento de imágenes • reconocimiento de patrones • visión de robots • animación • enriquecimiento de imágenes • imágenes por satélite
11. Procesamiento de Señales • Instrumentación/Control • análisis espectral • control de posición • reducción de ruido • compresión de datos
11. Procesamiento de Señales • Voz/Audio • reconocimiento de voz • síntesis de voz • text to espeech • audio digital • ecualización
11. Procesamiento de Señales • Militares • comunicaciones seguras • radar • sonar • guía de misiles
11. Procesamiento de Señales • Telecomunicaciones • cancelación de eco • ecualización adaptiva • espectro disperso • video conferencias • comunicaciones de datos
11. Procesamiento de Señales • Biomedicina • monitoreo de pacientes • scaners • EEG • ECG • almacenamiento/enriquecimiento de rayos x
11. Procesamiento de Señales En MATLAB: • Toolbox Signal • Otros Archivos-m • Blockset dspblks
11. Procesamiento de Señales Representación de señales Señales de tiempo continuo: muestras de ellas, suficientemente cercanas (razón de Nyquist) Graficar 5 periodos de una señal senoidal de amplitud 1 y frecuencia 20 Hz a) Graficar 10 puntos b) Graficar 20 puntos c) Graficar 150 puntos
11. Procesamiento de Señales Señal senoidal de 20 Hz y amplitud 1. N es el número de muestras a graficar N=10; t=0:0.05/N:0.25; y=sin(2*pi*20*t); plot(t,y)
11. Procesamiento de Señales • MATLAB es ideal para señales y sistemas de tiempo discreto • Para señales y sistemas de tiempo continuo se tienen que tomar muestras • Cada señal para que esté representada requiere de dos vectores: • valores de los elementos • tiempos a que corresponden los elementos
11. Procesamiento de Señales • Aquí se muestran algunas secuencias comunes: Vector de tiempos: t = (0:.001:1)'; • Impulso unitario: y = [1; zeros(99,1)]; • Escalón: y = ones(100,1); • Rampa: y = t; • Cuadrado: y = t.^2; • Onda cuadrada: y = square(4*t);
11. Procesamiento de Señales Formas de onda comunes sawtooth: diente de sierra square: cuadrada Ejemplo. 1.5 seg. De una onda cuadrada de 50 Hz con una razón de muestreo de 10 KHzTo Fs = 10000; t = 0:1/Fs:1.5; x = sawtooth(2*pi*50*t); plot(t,x), axis([0 0.2 –1 1])
11. Procesamiento de Señales Funciones para generar formas de onda aperiódicas: gauspuls: genera un pulso senoidal modulado con una gausiana, chirp genera una señal coseno barrida en la frecuencia
11. Procesamiento de Señales Ejemplo: 2 segundos de una señal lineal chirp con una razón de muestreo de 1KHz que comienza en DC y termina en 150 Hz en un segundot = 0:1/1000:2; y = chirp(t,0,1,150); % Plot the spectrogram specgram(y,256,1000,256,250) Frequency
11. Procesamiento de Señales Un filtro digital es un sistema lineal e invariante en el tiempo (LTI) cuya salida es obtenida al atenuar selectivamente componentes de frecuencia, tanto de magnitud como de fase La salida y(n) de un filtro digital está relacionada con su entrada x(n) por la convolución de ésta con la respuesta al impulso h(n) del filtro: y(n)=x(n)*h(n)
11. Procesamiento de Señales • Si h(n) es de longitud finita, se dice que es un filtro FIR (finite impulse response). • Si h(n) es de longitud infinita, se dice que es un filtro IIR (infinite impulse response). Si tanto la respuesta al impulso como h(n) como la señal de entrada x(n) son finitas, entonces el filtro se puede implementar usando la función conv
11. Procesamiento de Señales Sacando la transformada Z
11. Procesamiento de Señales • Y(Z), X(Z) y H(Z) son las transformadas Z de y(n), x(n) y h(n), respectivamente • H(z) es la función de transferencia del filtro • b(i) y a(i) son los coeficientes del filtro
11. Procesamiento de Señales Ejemplo: x = randn(5,1); % vector aleatorio de longitud 5 h = [1 1 1 1]/4; % respuesta al impulso del filtro y = conv(h,x); % señal filtrada
11. Procesamiento de Señales La función de transferencia de un filtro digital tiene la forma: En MATLAB, un filtro se representa por medio de sus coeficientes: B=[b(1) b(2) ... B(nb+1)]; A=[a(1) a(2) ... A(na+1)];
11. Procesamiento de Señales • Con la función filter es fácil implementar un filtro. • Esta función implementa la función de diferencias: y(n)+a(2)y(n-1)+...+a(na+1)y(n-na)= b(1)x(n)+b(2)x(n-1)+...+b(nb+1)x(n-nb) la cual se puede obtener de la función de transferencia H(z)
11. Procesamiento de Señales Por ejemplo: un filtro pasabajas es: b = 1; % numerador a = [1 –0.9]; % denominador los vectores b y a contienen a los coeficientes del filtro en su forma de función de transferencia y = filter(b,a,x); • se obtiene el mismo número de muestras de salida que de entrada (length(y)==length(x)) • si el primer elemento de a no es 1, filter divide los coeficientes de a por a(1) para implementar la ecuación de diferencia
11. Procesamiento de Señales Para implementar un filtro se requiere de una estructura
11. Procesamiento de Señales Respuesta al impulso Es la salida de un sistema cuando la entrada es un impulso unitario En MATLAB, se pueden generar impulsos de varias maneras: imp = [1; zeros(49,1)]; Si se tiene el filtro con b = 1 a = [1 –0.9], su respuesta al impulso es: h = filter(b,a,imp); O, se puede usar la función de MATLAB impz(b,a)
11. Procesamiento de Señales Dominio de la frecuencia Se usan las transformadas discretas • Fourier: • transformada de Fourier de tiempo discreto • transformada discreta de Fourier (DFT) • transformada rápida de Fourier (FFT) • Transformada z
11. Procesamiento de Señales • Las transformadas junto con las transformadas inversas proporcionan la relación entre la representación en el dominio del tiempo y de la frecuencia. • Los dos dominios proporcionan información complementaria de los mismos datos • En algunas aplicaciones suele usarse más la información de un dominio que del otro • En filtrado es particularmente útil la información en el dominio de la frecuencia
11. Procesamiento de Señales • La transformada de Fourier de tiempo discreto de la señal x(n): produce el espectro X(w) de x(n) • si x(n) es periódica ---> serie de Fourier y el espectro es discreto • si x(n) es no periódica ---> transf. de Fourier y el espectro es continuo
11. Procesamiento de Señales En la mayoría de las aplicaciones x(n) es no periódica ---> espectros continuos: • Los espectros continuos no se pueden representar exactamente en una computadora digital • Solo se pueden representar por medio de sus muestras adecuadamente espaciadas • La transformada de Fourier de tiempo discreto no se puede implementar en una computadora digital. Entonces se desarrolla:
11. Procesamiento de Señales La transformada discreta de Fourier (DFT) de x(n) es: • Son N muestras del espectro original que es continuo • Son muestras para valores discretos de frecuencia
11. Procesamiento de Señales • El número mínimo de muestras es N (que es el número de muestras de la señal de tiempo discreto) • Para obtener una buena representación del espectro real, es necesario tener un número suficiente de muestras, normalmente un número mayor que N Como el cálculo de la DFT involucra muchas multiplicaciones, es computacionalmente costoso. Se desarrolló la:
11. Procesamiento de Señales La transformada rápida de Fourier (FFT) • es un algoritmo que implementa la DFT • es muy eficiente, reduce el número de operaciones aritméticas • usa el hecho de que la DFT tiene simetrías • existen varios algoritmos En MATLAB la función que realiza la FFT es fft, mientras que ifft implementa la transformada rápida inversa
11. Procesamiento de Señales Respuesta en frecuencia • La respuesta en frecuencia del filtro con función de transferencia H(z) es: • La función freqz usa un algoritmo basado en FFT based algorithm para calcular la respuesta en frecuencia de un filtro digital
11. Procesamiento de Señales La sentencia: [h,w] = freqz(b,a,n) • regresa n puntos de la respuesta en frecuencia compleja del filtro digital • regresa el vector h de respuesta en frecuencia compleja y el vector w de frecuencias en rad/seg
11. Procesamiento de Señales Ejemplo: Se encuentran 256 puntos de la respuesta en frecuencia de un filtro Chebyshev de orden 12. Se usa en freqz una frecuencia de muestreo de 1000 Hz [b,a] = cheby1(12,0.5,200/500); [h,f] = freqz(b,a,256,1000);
11. Procesamiento de Señales Normalización en frecuencia • Normalmente se usa la convención de que la frecuencia unitaria es la frecuencia de Nyquist • La frecuencia de Nyquist se define como la mitad de la frecuencia de muestreo • La frecuencia de corte de los filtros es normalizada por la frecuencia de Nyquist • Así, para un sistema con una frecuencia de muestreo de 1000Hz, la frecuencia 300 Hz es 300/500 = 0.6 (frecuencia normalizada)
11. Procesamiento de Señales Magnitud y Fase La respuesta en frecuencia de sistemas como los filtros suelen ser cantidades complejas Para analizar su comportamiento es necesario graficar la respuesta en frecuencia Lo que se hace es observar una cantidad real: la magnitud de la respuesta en frecuencia y su fase Para ello se usan las funciones abs y phase
11. Procesamiento de Señales Ejemplo: Filtro Butterworth [b,a] = butter(6,300/500); [h,w] = freqz(b,a,512,1000); m = abs(h); p = angle(h); semilogy(w,m); plot(w,p*180/pi)
11. Procesamiento de Señales Obtención de los coeficientes de filtros digitales En MATLAB existen las funciones: • buttord, butter • cheb1ord, cheby1 • cheb2ord, cheby2 • ellipord, ellip • fir1, fir2 • remezord, remez
11. Procesamiento de Señales Al trabajar con frecuencias normalizadas, el rango de frecuencias para los filtros digitales queda restringido al rango: 0<w<2, o -<w< , en radianes/muestra