matlab 7 introduccion

46
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)

Upload: francela10

Post on 12-Aug-2015

69 views

Category:

Documents


0 download

DESCRIPTION

introduccion a Matlbal

TRANSCRIPT

Page 1: Matlab 7 Introduccion

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)

Page 2: Matlab 7 Introduccion

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

Page 3: Matlab 7 Introduccion

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

Page 4: Matlab 7 Introduccion

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

Page 5: Matlab 7 Introduccion

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:vozbiomédicasaudiovideo, imágenesradar

Page 6: Matlab 7 Introduccion

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

Page 7: Matlab 7 Introduccion

11. Procesamiento de Señales

Desventajas:

Velocidad y costo

Tiempo de diseño

Longitud de palabra finita

Page 8: Matlab 7 Introduccion

11. Procesamiento de Señales

Áreas de aplicación:Procesamiento de imágenes

reconocimiento de patronesvisión de robotsanimaciónenriquecimiento de imágenes imágenes por satélite

Page 9: Matlab 7 Introduccion

11. Procesamiento de Señales

Instrumentación/Control

análisis espectral

control de posición

reducción de ruido

compresión de datos

Page 10: Matlab 7 Introduccion

11. Procesamiento de Señales

Voz/Audio

reconocimiento de voz

síntesis de voz

text to espeech

audio digital

ecualización

Page 11: Matlab 7 Introduccion

11. Procesamiento de Señales

Militares

comunicaciones seguras

radar

sonar

guía de misiles

Page 12: Matlab 7 Introduccion

11. Procesamiento de Señales

Telecomunicaciones

cancelación de eco

ecualización adaptiva

espectro disperso

video conferencias

comunicaciones de datos

Page 13: Matlab 7 Introduccion

11. Procesamiento de Señales

Biomedicina

monitoreo de pacientes

scaners

EEG

ECG

almacenamiento/enriquecimiento

de rayos x

Page 14: Matlab 7 Introduccion

11. Procesamiento de Señales

En MATLAB:

Toolbox Signal

Otros Archivos-m

Blockset dspblks

Page 15: Matlab 7 Introduccion

11. Procesamiento de Señales

Representación de señalesSeñ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 puntosb) Graficar 20 puntosc) Graficar 150 puntos

Page 16: Matlab 7 Introduccion

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)

Page 17: Matlab 7 Introduccion

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

Page 18: Matlab 7 Introduccion

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);

Page 19: Matlab 7 Introduccion

11. Procesamiento de Señales

Formas de onda comunessawtooth: diente de sierrasquare: cuadradaEjemplo. 1.5 seg. De una onda cuadrada de 50

Hz con una razón de muestreo de 10 KHzToFs = 10000;t = 0:1/Fs:1.5;x = sawtooth(2*pi*50*t);plot(t,x), axis([0 0.2 –1 1])

Page 20: Matlab 7 Introduccion

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

Page 21: Matlab 7 Introduccion

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 spectrogramspecgram(y,256,1000,256,250)Frequency

Page 22: Matlab 7 Introduccion

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)

Page 23: Matlab 7 Introduccion

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

Page 24: Matlab 7 Introduccion

11. Procesamiento de Señales

Sacando la transformada Z

)()(

)()()(

nhnxk

knhkxny

naznaazaa

nbznbbzbbzHzXzY

)1(1)2()1()1(1)2()1(

)()()(

Page 25: Matlab 7 Introduccion

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

)()1(1)2()1()1(1)2()1(

)()()(

zxnaznaazaa

nbznbbzbbzHzXzY

Page 26: Matlab 7 Introduccion

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

Page 27: Matlab 7 Introduccion

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)];

naznaazaa

nbznbbzbbzXzYzH

)1(1)2()1()1(1)2()1(

)()()(

Page 28: Matlab 7 Introduccion

11. Procesamiento de SeñalesCon 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)

Page 29: Matlab 7 Introduccion

11. Procesamiento de Señales

Por ejemplo: un filtro pasabajas es:b = 1; % numeradora = [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

Page 30: Matlab 7 Introduccion

11. Procesamiento de Señales

Para implementar un filtro se requiere de una estructura

Page 31: Matlab 7 Introduccion

11. Procesamiento de Señales

Respuesta al impulsoEs 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)

Page 32: Matlab 7 Introduccion

11. Procesamiento de Señales

Dominio de la frecuenciaSe usan las transformadas discretas

Fourier: •transformada de Fourier de tiempo

discreto •transformada discreta de Fourier

(DFT)•transformada rápida de Fourier (FFT)

Transformada z

Page 33: Matlab 7 Introduccion

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

Page 34: Matlab 7 Introduccion

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

njen

nxjeX

][)(

Page 35: Matlab 7 Introduccion

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:

Page 36: Matlab 7 Introduccion

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

1,...1,0,][

|)()(

/21

0

/2

Nkenx

eXkX

NkN

n

Nkj

Page 37: Matlab 7 Introduccion

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:

Page 38: Matlab 7 Introduccion

11. Procesamiento de Señales

La transformada rápida de Fourier (FFT)es un algoritmo que implementa la DFTes muy eficiente, reduce el número de

operaciones aritméticasusa el hecho de que la DFT tiene simetríasexisten varios algoritmosEn MATLAB la función que realiza la FFT es fft,

mientras que ifft implementa la transformada rápida inversa

Page 39: Matlab 7 Introduccion

11. Procesamiento de Señales

Respuesta en frecuenciaLa 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

jenaajeaa

jenbbjebbjeH

)1()2()1()1()2()1()(

Page 40: Matlab 7 Introduccion

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

Page 41: Matlab 7 Introduccion

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);

Page 42: Matlab 7 Introduccion

11. Procesamiento de SeñalesNormalización en frecuenciaNormalmente 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)

Page 43: Matlab 7 Introduccion

11. Procesamiento de Señales

Magnitud y FaseLa respuesta en frecuencia de sistemas como

los filtros suelen ser cantidades complejasPara 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

Page 44: Matlab 7 Introduccion

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)

Page 45: Matlab 7 Introduccion

11. Procesamiento de Señales

Obtención de los coeficientes de filtros digitales

En MATLAB existen las funciones:buttord, buttercheb1ord, cheby1cheb2ord, cheby2ellipord, ellipfir1, fir2remezord, remez

Page 46: Matlab 7 Introduccion

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