Você está na página 1de 128

UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA

FACULTAD DE INGENIERIA DE PRODUCCION Y SERVICIOS


DEPARTAMENTO ACADEMICO DE INGENIERIA ELECTRONICA
ESCUELA PROFESIONAL DE INGENIERIA DE TELECOMUNICACIONES

CURSO: PROCESAMIENTO DIGITAL


DE SEALES
Apuntes de Aula
Wildor Ferrel Serruto

AREQUIPA PER
2012

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Procesamiento Digital de Seales


1. Introduccin
Definicin
El Procesamiento Digital de Seales (PDS) es la disciplina que estudia los
fundamentos matemticos y algortmicos del tratamiento de seales y de la
informacin que contienen las seales utilizando un sistema electrnico digital como
por ejemplo, un computador, un DSP, un FPGA.
Procesamiento: Realizacin de operaciones de acuerdo a un algoritmo para
transformar los datos o extraer informacin de ellos.
Digital: Sistema electrnico digital como un computador, un DSP, un FPGA.
Seal: Magnitud variable por medio de la cual se transmite informacin.
Hacer procesamiento digital de seales significa
Procesamiento
Realizar operaciones o transformaciones
Digital
mediante un computador u otro circuito electrnico digital
de Seales
sobre funciones del tiempo y/o del espacio.

Clasificacin de las seales


Por el tipo de funcin y el tipo de variable

Seal analgica Funcin continua de variable continua.


Seal de tiempo discreto Funcin continua de variable discreta.
Seal digital Funcin discreta de variable discreta.

Por el nmero de dimensiones:

Seal unidimensional Ejemplo: seal de voz, st


Seal bidimensional Ejemplo: imagen, sx, y

Seal multidimensional Ejemplo: Seal de video en blanco y negro vx, y, t , seal


de video a color ux, y, t r x, y, t g x, y, t bx, y, t

Fundamentos del PDS (Bases matemticas)

Modelado de seales analgicas:


o Transformada de Fourier, transformada de Laplace, filtros analgicos.
Operaciones de convolucin y correlacin.
Modelado de seales y sistemas de tiempo discreto:
o La Transformada Z, la transformada de Fourier de tiempo discreto (DTFT),
la transformada discreta de Fourier (DFT).
o Operaciones de convolucin y correlacin.
o Estructuras bsicas de sistemas de tiempo discreto.
Algoritmos de procesamiento digital de seales.
o Reduccin o incremento de la tasa de muestreo.
o Transformada rpida de Fourier (FFT).
o Diseo de filtros digitales.
1

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Implementacin del PDS


Por software, en computadores de propsito general (Ejemplo: en una PC)
Por hardware (Ejemplo: con FPGAs)
Por software ms hardware especfico para PDS (Ejemplo: con un DSP TMS320C)
Un procesador digital de seal (DSP-Digital Signal Processor), es un dispositivo que
implementa hardware especializado para acelerar la ejecucin de los algoritmos de
procesamiento digital de seales.

Ventajas

Inmunidad a ruido (mayor precisin).


Implementacin por software (mayor flexibilidad).
Realizacin de funciones que no son posibles en procesamiento analgico de
seales

Desventaja

En algunas aplicaciones la desventaja pueden ser el mayor costo y/o el


procesamiento lento.

Comparacin del modelado de un sistema de tiempo continuo y un


sistema de tiempo discreto
Sistema de tiempo continuo

x(t)

y(t)

Filtro
Analgico

x(t)

y(t)

t
Ecuacin diferencial

y t c1

d y t
dt

c N

d N y t
dt

d 0 x t d1

d xt
dt

d M

Funcin de transferencia

H s

Y s
X s

d 0 d1 s d M s M
1 c1 s c N s N
2

d M xt
dt

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Respuesta a una seal de entrada

y t x h t d

Respuesta en frecuencia

H j

0
Sistema de tiempo discreto

x[n]

Filtro
Digital

x[n]

y[n]

y[n]

Ecuacin en diferencias lineales con coeficientes constantes


y n a 1 y n 1 a N y n N b 0 x n b1 x n 1 b M x n M
Funcin de transferencia

Y z b0 b1 z 1 bM z M
H z

X z 1 a1 z 1 a N z N

Respuesta a una seal de entrada

y n x m h n m
m

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Respuesta en frecuencia

H e j

Competencias especficas del curso

Capacidad de analizar y especificar los parmetros fundamentales de un


sistema de procesamiento digital de seales.
Capacidad de analizar e identificar los principales componentes de un sistema
de procesamiento digital de seales.
Capacidad de aplicar el modelamiento matemtico y algortmico al
procesamiento de seales.
Comprensin y dominio de los conceptos bsicos sobre las seales de tiempo
discreto, los sistemas de tiempo discreto, las transformadas relacionadas y su
aplicacin en la resolucin de problemas de procesamiento de seales.

Conocimientos previos
Fundamentos de clculo. Algebra de nmeros complejos. Anlisis de Fourier de
tiempo continuo. Filtros analgicos. Programacin en MATLAB.

Bibliografa
[1] OPPENHEIM A. V., SCHAFER R.W. Segunda Edicin.
Tratamiento de Seales en Tiempo Discreto.
Prentice Hall Iberia, Madrid, 2000
[2] PROAKIS J. G., MANOLAKIS D. G. Tercera Edicin.
Tratamiento Digital de Seales. Principios, algoritmos y aplicaciones.
Prentice Hall, Madrid, 1998
[3] LI TAN.
Digital Signal Processing. Fundamentals and Applications.
Elsevier, DeVry University, Decatur, Georgia, 2008
[4] MARIO ACEBAL J. B. Segunda Edicin.
Tratamiento Digital de la Seal. Una introduccin experimental
Alfaomega, Mxico, 1999

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

2. Conversor Ideal de Tiempo Continuo a


Tiempo Discreto
Diagrama de Bloques de un sistema de Procesamiento Digital de Seales
Analgicas
xsens(t)

x(t)

Filtro
Antisolapamiento

Sensor

x[n]

xc(t)

y[n]
DAC

DSP

ADC

yc(t) Filtro de

Reconstruccin

Procesamiento Digital de Seales Analgicas

x[n]

xc(t)

Sistema de
Tiempo Discreto

C/D

y[n]

yc(t)
D/C

Modelo del Conversor C/D


xc(t)

xs(t)

Conversor de Tren de
Impulsos Ponderados a
Secuencia

s(t)

Dominio Temporal
st

t n T

x s t x c t s t

x[n]

yr(t)

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

x s t x c t t n T
n

x s t x c nT t n T
n

x s t x n t n T
n

Dominio Frecuencial
S j

2
2
k T
T k

X s j

1
X c j S j
2

1
2
X s j
X c j k T ;
T k

s 2
T

1
X s j
X c j k s
T k

Seal con Espectro no Limitado


X C j

-S

X S j

-2S

-S

0
6

2S

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Filtro Antisolapamiento
xc(t)

Filtro
xa(t)
Antisolapamiento

Sistema de
Tiempo
Discreto

x[n]
C/D

y[n]

yc(t)
D/C

Haa(j)
T

Ejemplo 1
La frecuencia de muestreo es 40 kHz. El filtro anti-solapamiento usado es un filtro de
Butterworth pasa-bajas con frecuencia de corte de 8 kHz. El nivel de solapamiento
en la frecuencia de corte debe ser 1%. Determine el orden del filtro antisolapamiento.
Para el filtro de Butterworth la magnitud de la respuesta en frecuencia es:

| (

)|

( )

H j

-S

El nivel de solapamiento en la frecuencia de corte es:

( )
(

n
1
2
3
4
Nivel de solapamiento (%) 34.30 8.82 2.21 0.55

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

3. Seales de Tiempo Discreto


Secuencias bsicas
Impulso unitario

[n]
1

Escaln unitario

u[n]
1
...

Secuencia exponencial
x n A n , n ; A, R;
0 1

A, 0
x[n]

0
x[n]

Secuencia senoidal
x n Asen0n , n

x[n]

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Operaciones bsicas
Sean x1 n y x2 n dos secuencias,
Adicin :

y n x1 n x2 n

Multiplicacin de dos secuencias:


Multiplicacin por un escalar :
Producto interno :

y n x1 n x2 n
y n x2 n

y x1 n x2 n
x1 n x2 n
n

Desplazamiento :
nd 0 y n x1 n nd

x1[n]

n
x1[n - nd]

0
x1[n + nd]

Ejemplo 2
Dadas las secuencias x1 n y x2 n , escribir un programa en MATLAB para
determinar y graficar:
a) La secuencia x3 n que es la suma de las secuencias x1 n , x2 n .
b) La secuencia x4 n como el producto de las secuencias x1 n , x2 n .

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

c) La secuencia x5 n obtenida mediante el desplazamiento de x1 n a la


izquierda en 2 unidades de tiempo.
x1[n]

x2[n]

%************************************************
%
Programa Matlab para el Ejercicio 1
%************************************************
% Reinicializar el ambiente
clear; clf;
% Generar las secuencias
x1=[0 0 0 1 2 3 4 3 2 1 0 0 0];
x2=[0 0 4 3 2 1 0 0 0 0 0 0 0];
% a) Adicion
x3=x1+x2;
% b) Multiplicacion
x4=x1.*x2;
% c) Dezplazamiento a la izquierda en 2 posiciones
x5=zeros(1,13);
nd=2;
x5(1:13-nd)=x1(nd+1:13);
%for m=1:13-nd
% x5(m)=x1(m+2);
%end;
% Graficar x1,x2,x3
subplot(3,1,1);
stem([-6:6],x1);
ylabel('x1'); xlabel('n');
subplot(3,1,2);
stem([-6:6],x2);
ylabel('x2'); xlabel('n');
subplot(3,1,3);
stem([-6:6],x3);
title('Adicion'); ylabel('x3'); xlabel('n');
pause;
% Graficar x1,x2,x4
subplot(3,1,3);
stem([-6:6],x4);
10

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

title('Multiplicacion'); ylabel('x4'); xlabel('n');


pause;
% Graficar x1,x5
subplot(2,1,1);
stem([-6:6],x1);
ylabel('x1'); xlabel('n');
subplot(2,1,2);
stem([-6:6],x5);
title('Dezplazamiento'); ylabel('x5'); xlabel('n');

Relaciones importantes

La secuencia escaln unitario se expresa a travs de la secuencia impulso


unitario de la siguiente forma :
n

u n

A su vez, la secuencia impulso unitario se expresa a travs de la secuencia


escaln unitario en la forma :

n u n u n 1

Toda secuencia puede ser expresada como una suma ponderada de impulsos
unitarios :
xn

x m n m

Clasificacin de las secuencias por su extensin


Secuencia de extensin finita :

n1 / x n 0, n n1

y n2 / x n 0, n n2

n2

n1

Secuencia de extensin infinita :


a) Secuencia derecha

n1 / x n 0, n n1

y n2 / x n 0, n n2

...
n

n1
b) Secuencia izquierda

n1 / x n 0, n n1

y n2 / x n 0, n n2

...
11

n2

Curso: Procesamiento Digital de Seales

c) Secuencia bilateral

n1 / x n 0, n n1

Profesor: Wildor Ferrel Serruto

y n2 / x n 0, n n2

...

...

Secuencia peridica
xn es peridica N / xn xn N n

Periodicidad de la secuencia cosenoidal


En tiempo continuo, la funcin cos 0 t es peridica para cualquier valor real de la
frecuencia. El periodo es:
T

2
0

En tiempo discreto, la relacin


cos 0 n = cos 0 n N
se cumple si 0 N 2 k , donde N y k son enteros
Por lo tanto, la secuencia cos 0 n es peridica si y slo si
0

2 k
N

para algn N y k enteros; caso contrario, cos 0 n no es peridica.


Por ejemplo, la secuencia cos

34 n es peridica con periodo

N 8 . En cambio, la

secuencia cos 3 n no es peridica

La secuencia compleja Ce j 0 n es peridica si e j 0 n N = e


Esto se cumple si 0 N 2 k , donde N y k son enteros.

j 0 n

Las exponenciales complejas con frecuencias 0 y 0 2 r son iguales.

Bajas y altas frecuencias


En tiempo continuo, la funcin cos 0 t oscila ms rpidamente a medida que
aumenta la frecuencia.
En tiempo discreto, puesto que las secuencias cos 0 n y cos 0 2 r n son
iguales, las frecuencias 0 y 0 2 r son equivalentes.
Para la secuencia cos 0 n cuando la frecuencia aumenta de 0 a aumentan
tambin las oscilaciones. Sin embargo, cuando la frecuencia aumenta de a 2 las
oscilaciones se hacen ms lentas.
Las frecuencias en la vecindad de 0 2 k se llaman bajas frecuencias, mientras
que las frecuencias en la vecindad de 0 2 k se dice que son altas
frecuencias.

12

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

4. Sistemas de tiempo discreto


Un sistema de tiempo discreto es una transformacin que hace corresponder a
cada secuencia de entrada una secuencia de salida.
y n T x n
y n

x n

T
Ejemplo. Sistema de diferencia regresiva

y n x n x n 1

x[n]

-2 -1 0 1 2

y[n]

-1 0

Tipos de sistemas
Sistema causal
La salida depende de valores pasados y/o del valor presente de la entrada.

Sistema no causal
La salida depende de valores futuros.
Ejemplo. Sistema de diferencia progresiva:

y n x n 1 x n

Sistema estable.
A toda secuencia limitada de entrada le corresponde una secuencia limitada de
salida.
Lx x n Lx , n Ly y n Ly , n

Sistema inestable
Por lo menos, a una secuencia limitada de entrada le corresponde una secuencia
ilimitada de salida.
Ejemplo. Sistema acumulador :

y n

x k

13

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Sistema lineal
Sistema que cumple con el principio de superposicin.
T ax1 n bx2 n aT x1 n bT x2 n

Sistema invariante en el tiempo


Un desplazamiento en el tiempo de la secuencia de entrada produce el mismo
desplazamiento de la secuencia de salida.

T x n y n T x n nd

yn n
d

Respuesta de un sistema LTI


Respuesta de un sistema al impulso unitario
h n T n
En un sistema LTI, la respuesta a una secuencia de entrada se expresa:

x mh n m

y n
Sistema FIR : h n tiene extensin finita

Sistema IIR : h n tiene extensin infinita

Clculo de la salida por convolucin


x n

y n

h n

y n

x m h n m

Ejemplo 3
La secuencia x n es aplicada a la entrada de un sistema LTI. Encontrar la
secuencia de salida, si la respuesta del sistema al impulso unitario es h n .

h[n]

x[n]
4
3
2

Convolucin lineal
Es la operacin efectuada sobre secuencias :

x1 n x2 n
En sistemas LTI tenemos : y n x n h n

x m x n m

14

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Propiedades de la convolucin

Conmutativa
Asociativa
Distributiva

Conexin en serie de sistemas LTI


h2 n

h1 n

h1 n h2 n

h1 n h2 n

Conexin en paralelo de sistemas LTI


h1 n

+
h2 n

Convolucin por bloques


Mtodo de solapamiento-suma
Definicin de un bloque:
x n rL , 0 n L 1
x r n
0,
c .c.

Secuencia de entrada expresada a travs de los bloques xn xr n rL


r 0

Secuencia de salida:

yn xn* hn ;

yn xr n rL * hn xr n rL* hn;
r 0
r 0

Bloque de salida: y r n x r n * h n

L P 1

yn y r n rL
r 0

Se observa que y r n rL se solapa con y r 1 n r 1 L , y que las muestras de


solapamiento se suman.

Ecuacin en diferencias lineales con coeficientes constantes (LCCDE)


Muchos sistemas lineales e invariantes en el tiempo (sistemas LTI) se describen
mediante la ecuacin:
N

a yn k b xn r
Si hacemos a0 1

k 0

r 0

y n b0 x n b1 x n 1 ...b M x n M
a1 y n 1...a N y n N

15

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Clculo de la salida por recursin


Ejemplo 4
Para el sistema descrito por yn

2
xn 1 2 yn 1 yn 2
2
hallar la salida si xn n, si las condiciones iniciales son: y 1 0 , y 2 0
Solucin:

y0
y1
y2

y3
y4

y5

2
0
2
2
1
2
2
0
2
2
0
2
2
0
2
2
0
2

2 00 0
2
2

2 00

2
0 1
2
2
2
2 1

2
2
2
2
1 0
2
2
2
2 0

2
2
2
yn 2
xn 1 2 yn 1 yn
2
2
ym
xm 1 2 ym 1 ym 2
2
2
yn
xn 1 2 yn 1 yn 2
2
2
2
y 3
x 2 2 y 2 y 1
0 2 00 0
2
2
2

Dada la ecuacin en diferencias:


y n

b 0 x n b1 x n 1 ... b M x n M

(1)

a 1 y n 1 ... a N y n N

Despejamos y n N :
b0

y n N

aN
1
aN

x n

y n

b1
aN

a1
aN

x n 1 ...

y n 1 ...

bM
aN

a N 1
aN

x n M
y n N 1

(2)

Se calculan las muestras de salida a partir de las condiciones iniciales:


, y n 0 2 , y n 0 1 , y n 0 , , y n 0 N 1 , y n 0 N , y n 0 N 1 ,

(2)

Condiciones
iniciales
16

(1)

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Causalidad de un sistema LTI


hn 0, n 0

Estabilidad de un sistema LTI


Un sistema LTI es estable

h n

Suficiencia

h n entonces el sistema es estable

Demostraremos que, si

Sea x n acotada, x n Lx .
Luego,

y n

x k h n k

x n k h k x n k h k Lx h k

y n Lx h k

Si

h n entonces y n es acotada. En

n
.
consecuencia, el sistema es estable.

Necesidad

Demostraremos que, si
Sea x n definida por:

h n entonces el sistema no es estable.

h n , si h n 0

x n h n

si h n 0
0,

x n es acotada, ya que x n 1.
La salida es: y n
Para

x k h n k

n 0 , tenemos:

y 0 x k h k =
k

h k

k h k

h k =

h 2 k

k h k

y 0 h k
k

Si

h n , entonces h k .

Esto significa que y n no es acotada. En consecuencia, el sistema no es estable.


17

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Ejemplo 5
La secuencia
1, 0 n 10,
x n
c. c.
0,

es aplicada a la entrada de un sistema LTI con respuesta al impulso

1 n , n 0
h n 2
.
0,
c. c.

a) Calcular analticamente la secuencia de salida por convolucin lineal. Slo


los grficos obtenerlos con un programa en MATLAB.
b) Compruebe su resultado con la funcin conv del MATLAB y muestre los
grficos de las secuencias.

%****************************************************
%
Programa para el Ejercicio 2 a)
%****************************************************
% Reinicializar el ambiente
clear; clf
% Formar la secuencia de salida con 20 muestras
y0_9=2-(1/2).^[0:9];
y10_19=((2^10)-1)*((1/2).^[10:19]);
y=[y0_9 y10_19];
% Graficar la secuencia de salida
stem([0:19],y);
title('Secuencia de salida');
ylabel('y[n]'); xlabel('n');
%*****************************************************
%
Programa para el Ejercicio 2 b)
%*****************************************************
% Reinicializar el ambiente
clear; clf
% Formar la secuencia de entrada
x=[ones(1,10) zeros(1,10)];
% Formar la respuesta al impulso
h=[(1/2).^[0:19]];
% Efectuar la convolucion
yy=conv(x,h);
% Tomar 20 muestras de la secuencia de salida
y=yy(1:20);
% Graficar x,h,y
subplot(3,1,1);
stem([0:19],x);
grid; title('Secuencia de entrada');
ylabel('x[n]'); xlabel('n');
subplot(3,1,2);
18

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

stem([0:19],h);
grid; title('Respuesta al impulso');
ylabel('h[n]'); xlabel('n');
subplot(3,1,3);
stem([0:19],y);
grid; title('Secuencia de salida');
ylabel('y[n]'); xlabel('n');

Ejemplo 6
Escriba un programa en MATLAB para efectuar las siguientes tareas :
a) Generar una secuencia senoidal x n de 50 muestras con frecuencia 2 25
rad/muestra.
b) Obtener una secuencia x1 n adicionando a la secuencia inicial un ruido
aleatorio uniformemente distribuido en el intervalo -0,25 a 0,25.
c) Obtener la secuencia y n recursivamente filtrando la secuencia x1 n con un
sistema promedio mvil de tamao 5.

%****************************************************
%
Programa para el Ejercicio 3
%****************************************************
% Reinicializar el ambiente
clear; clf
% Formar la secuencia de entrada
N=50;
x=sin(2*pi*[0:N-1]/25);
% Formar la secuencia con ruido aditivo
x1=x+0.5*(rand(1,N)-0.5);
% Calcular la secuencia de salida para el sistema de
% promedio movil de tamano 5
for n=1:N
y(n)=mean(x1(max(n-4,1):n));
end;
% Graficar las secuencias
subplot(3,1,1);
stem([0:N-1],x);
grid; ylabel('x[n]'); xlabel('n');
subplot(3,1,2);
stem([0:N-1],x1);
grid; ylabel('x1[n]'); xlabel('n');
subplot(3,1,3);
stem([0:N-1],y);
grid; ylabel('y[n]'); xlabel('n');

19

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Correlacin cruzada
Para las secuencias x n e y n , la secuencia

r xy n x k n y k

r xy n x k y k n
k

se llama correlacin cruzada de x n e y n .


La correlacin cruzada de y n e x n es:

r yx n y k x k n =
k

y k n xk

Se cumple que r xy n r yx n .

Comparando la expresin de la convolucin x n y n x k y n k con


k

r xy n x k y k n podemos escribir r xy n x n y n
k

Autocorrelacin

Para la secuencia x n la secuencia de autocorrelacin es r xx n x k x k n


k

En MATLAB se usa la funcin xcorr:

x=[ 4 2 1 0];
y=[-1 -1 1 1];
Rxy=xcorr(x,y)
Ryx=xcorr(y,x)
Rxx=xcorr(x)
Ryy=xcorr(y)

Correlacin de secuencias peridicas


Para las secuencias peridicas x n e y n la correlacin cruzada se define en la
forma:
M
1
r xy n lim
xk y k n
M 2 M 1 k M
La autocorrelacin de x n ser:

M
1
xk xk n
M 2 M 1 k M

r xx n lim

Si las secuencias x n e y n tienen un mismo perido igual a N, el promedio en un


intervalo infinito es igual al promedio en un nico intervalo mayor o igual al periodo,
es decir, siendo MN:
1 M 1
1 M 1
r xy n
r xx n
xk y k n
xk x k n
M k 0
M k 0
Las secuencias r xy n y r xx n son peridicas y tienen el mismo periodo N.
20

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Aplicacin de la correlacin en la determinacin de la distancia de blancos


sn xn D wn

rsx n tiene un pico en n D

Aplicacin de la correlacin en la identificacin de una seal peridica oculta en


una seal con ruido
Sea la secuencia y n de la forma:

y n x n w n
x n es una secuencia peridica con periodo desconocido N ,
w n es un ruido aleatorio.

Se desea determinar el periodo N.


Para ello calculamos la autocorrelacin de y n :
r yy n

1 M 1
y k y k n =
M k 0

1 M 1
x k w k x k n w k n =
M k 0

1 M 1
1 M 1
xk xk n +
x k w k n +
M k 0
M k 0
1 M 1
1 M 1
+
w k x k n +
w k w k n =
M k 0
M k 0

= r xx n r xw n rwx n rww n

Ejemplo 7
Escriba un programa en MATLAB que realice las siguientes tareas:
a) Genere la seal [ ]
(
)
(
) con 500 muestras.
b) Forme la seal [ ] adicionando a [ ] un ruido aleatorio, uniformemente
distribuido, con amplitud 1 y una media de 0.
c) Calcule [ ] como la autocorrelacin peridica de [ ].
[ ] como la autocorrelacin peridica de [ ].
d) Halle
[ ], determine el periodo de [ ].
e) A partir de
f) Forme un tren de impulsos [ ] con el periodo encontrado.
[ ] como la correlacin cruzada peridica de [ ] con el tren
g) Determine
de impulsos.
[ ] como la auto-correlacin peridica de
[ ].
h) Determine

21

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

%********************************************
% Aplicacion de la correlacion en la
% identificacion de una seal peridica
% oculta en una seal con ruido
%********************************************
close all; clear all;
N=500;
n=[0:N-1];
x=0.5*cos((pi/26)*n)+0.5*cos((pi/13)*n);
w=2*(rand(1,N)-0.5);
y=x+w;
Rx=xcorr(x,'biased');
Ry=xcorr(y,'biased');
RRy=xcorr(Ry,'biased');
%Determinamos el periodo
[max1,pos1] = max(RRy)
[min2,pos2] = min(RRy(pos1+1:length(RRy)))
[max3,pos3] = max(RRy(pos1+pos2+1:length(RRy)))
periodo=pos2+pos3
% Formamos el tren de impulsos
s=zeros(1,length(y));
m=1;
while m<length(y)
s(m)=1;
m=m+periodo;
end
% Hallamos la correlacin de y con el tren de impulsos
Rys=periodo*xcorr(y,s, 'biased');
RRys=8*xcorr(Rys,'biased');
% Graficamos
subplot(311);
plot(n,x);grid;
title('Secuencia original');
subplot(312);
plot(n,y);grid;
title('Secuencia con ruido');
subplot(313);
stem(n,s);grid;
title('Tren de impulsos');
pause;
NRx=length(Rx);
nRx=[0:NRx-1]-((NRx-1)/2);
subplot(311);
22

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

plot(nRx,Rx);grid;
title('Rx - Autocorrellacion de x ');
NRy=length(Ry);
nRy=[0:NRy-1]-((NRy-1)/2);
subplot(312);
plot(nRy,Ry);grid;
title('Ry - Autocorrellacion de y ');
NRRy=length(RRy);
nRRy=[0:NRRy-1]-((NRRy-1)/2);
Ninicio=((NRRy-1)/2)-((NRy-1)/2);
Nfin=((NRRy-1)/2)+((NRy-1)/2);
subplot(313);
plot(nRy,RRy(Ninicio:Nfin));grid;
title('RRy - Autocorrelacion de Ry');
pause;
subplot(311);
plot(n,x);grid;
title('Secuencia original');
subplot(312);
NRys=length(Rys);
Ninicio=(NRys-1)/2;
plot(Rys(Ninicio:Ninicio+N-1));grid;
title('Rys - Correlacion cruzada de y con el tren s');
subplot(313);
NRRys=length(RRys);
Ninicio=(NRRys-1)/2;
plot(RRys(Ninicio:Ninicio+N-1));grid;
title('RRys - Autocorrelacion de Rys');

23

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto


Secuencia original

1
0.5
0
-0.5
-1

50

100

150

200

250

300

350

400

450

500

300

350

400

450

500

300

350

400

450

500

100

200

300

400

500

100

200

300

400

500

100

200

300

400

500

300

350

400

450

500

300

350

400

450

500

300

350

400

450

500

Secuencia con ruido


2
1
0
-1
-2

50

100

150

200

250
Tren de impulsos

0.5

50

100

150

200

250

Rx - Autocorrellacion de x
0.6
0.4
0.2
0
-0.2
-500

-400

-300

-200

-100

0
Ry - Autocorrellacion de y

0.6
0.4
0.2
0
-0.2
-500

10

x 10

-400

-300

-200

-100

-3

0
RRy - Autocorrelacion de Ry

5
0
-5
-500

-400

-300

-200

-100

Secuencia original
1
0.5
0
-0.5
-1

50

100

150

200

250

Rys - Correlacion cruzada de y con el tren s


2
1
0
-1

50

100

150

200

250
RRys - Autocorrelacion de Rys

1
0.5
0
-0.5

50

100

150

200

250

24

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

5. La Transformada Z
Clculo por medio de transformadas
La secuencia exponencial compleja: x n z n
se llama auto secuencia porque:

zn
y n =

A z n

h k x n k =

h k z n k =

h k z k

n
z

H z = h k z k
k

y n = H z z n
H z es el autovalor, se llama funcin de transferencia del sistema y es la
transformada Z de la respuesta al impulso
El clculo de la salida se puede hacer como sigue:

x[n]

X(z)

h[n]

H(z)

Y(z)

y[n]

Transformadas usadas en el anlisis y diseo de sistemas de tiempo discreto:


Transformada Z
Transformada de Fourier de tiempo discreto (DTFT)
Transformada de Fourier discreta (DFT)
Transformada rpida de Fourier (FFT)

x [n]

h [n]

Transformada Z directa :

X z

xnz

Transformada Z inversa :

xn

1
X z z n 1dz

2j C

25

y [n]

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Ejemplo 8
x [n]

3
1

X z x0 z x1 z x2 z 2 x3 z 3
0

2 z 0 1 z 1 3 z 2 2 z 3
X z 2 z 1 3 z 2 2 z 3
Se debe indicar la regin de convergencia (RC).
RC: Plano z completo excepto z = 0

Ejemplo 9
x [n]

Hallar la transformada Z de la secuencia


n

8
xn un
9

...

Solucin:

8
X z unz n
n 9

1
8
1 z 1
9

1
X z
8
1 z 1
9

1
1

Im{z}
8 1
z 1
9

RC : z

8
9

8
9

RC

Clculo de la transformada Z inversa

n 0

8
z n
n 0 9

8
z 1

n 0 9

Inspeccin mas propiedades.


Expansin en fracciones parciales.
Expansin en serie de potencias.

26

Re{z}

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Inspeccin mas propiedades

Ejemplo 10
Encontrar la secuencia cuya transformada Z es :

X z

1
z

1
2

RC : z

1
2

Solucin

X z

1
1 z

1
1 12 z 1

1
2

xn

z 1

a n u n

12 n u n

1
1 az

,z a

xn n d X z z nd

12 n1 u n 1

Expansin en fracciones parciales

Ejemplo 11
Hallar la transformada z inversa de la funcin

( )

Im z

| |

mediante la expansin en fracciones parciales.


Solucin

12

Re z

2
RC

( )

(
(
(

)(

)
)

( )
( )

( )
[ ]

[ ]

[ ]

( )

[ ]

Ejemplo 12
Hallar la respuesta al impulso del sistema causal con funcin de transferencia
( )
Haga la expansin en fracciones parciales mediante la funcin residuez del MATLAB.
27

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Solucin
Corremos el programa
b =[1
-1
-6];
a =[1 -1.5
-1];
[R,P,K]=residuez(b,a)
En la ventana de comandos del matlab obtenemos:
R =
-0.8000
-4.2000
P =
2.0000
-0.5000
K =
6
( )
Luego,
[ ]
( ) [ ]
(
) [ ]
Por tanto, [ ]

Expansin en serie de potencias


Encontrar la secuencia cuya transformada Z es:

X z

1
1 az

RC : z a

Solucin

az 1 1

1 a 1 z

a 1 z a 2 z 2 a 3 z 3

a 1 z
a 1 z a 2 z 2
a 2 z 2
a 2 z 2 a 3 z 3
a 3 z 3

A partir de la condicin de la RC tenemos: a 1 z

n m

X z a 1 z a 2 z 2 a 3 z 3 a m z m ,
m1

X z

z
1
a

z n

n 1

x n a n u n 1

28

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Propiedades de la Regin de Convergencia


Secuencia derecha :

z 0 RC

Si z z 0

Secuencia izquierda :

z 0 RC

Si z z 0

La RC no puede contener polos


Secuencia derecha

z RC
z RC
pk RC

RC : z max pk

Im{z}

Re{z}

...
n

n1

RC

Secuencia izquierda

RC : z min pk

Im{z}

Re{z}
}

...
Secuencia bilateral

...

n2

RC

n
Im{z}

...

Re{z}

RC
29

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Funcin de Transferencia
Transformada Z de su respuesta impulsional

H z Z hn

A partir de la LCCDE

Y z b0 b1 z 1 bM z M
H z

X z 1 a1 z 1 aN z N

Los polinomios del numerador y del denominador se representan


respectivamente

H z

B(z) y A(z)

B z
Az

Estabilidad

hn

hnz n

z 1

Im{z}

La RC de la funcin de transferencia de un
sistema estable contiene a la circunferencia de
radio unitario

Re{z}

RC
Causalidad
La RC de la funcin de transferencia de un sistema causal es el exterior de una
circunferencia y contiene al punto z = .

Im{z}

Re{z}

RC

30

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Ejemplo 13
Un sistema LTI causal tiene funcin de transferencia :

3 4 z 1
H z
1 3.5 z 1 1.5 z 2
1) Determine manualmente la RC y la respuesta impulsional.
Es estable el sistema?
2) Compruebe los resultados anteriores usando MATLAB
Solucin

3 1 43 z 1
3z z 43
3 4 z 1
H z

1 3.5 z 1 1.5 z 2 1 3z 1 1 0.5 z 1 z 3z 0.5

Ceros :

Im{z}
Polos :
La RC es :

0.5 4/3

Re{z}

RC
No es estable el sistema.
( )

)(

( )
[ ]

[ ]

( )

[ ]

%************************************************
% Determinar el diagrama de polos y ceros
% y la respuesta impulsional
% de un sistema de tiempo discreto
%************************************************
% Reinicializar el ambiente
close all; clear all;
% Funcion de Transferencia
31

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

B = [3 -4
0 ];
A = [1 -3.5 1.5];
% Diagrama de polos y ceros
ceros=roots(B)
polos=roots(A)
zplane(B,A); grid;
pause;
% Respuesta impulsional
[h,n]=impz(B,A);
subplot(2,1,1);
stem(n,h);
grid; ylabel('h[n]'); xlabel('n');
title('Respuesta Impulsional segun impz');
% Respuesta impulsional analitica
%n=[0:11];
hh=((1/2).^(n))+2*((3).^(n));
subplot(2,1,2);
stem(n,hh);
grid; ylabel('hh[n]'); xlabel('n');
title('Respuesta Impulsional analitica');

1.5

0.5
Imaginary Part
0

-0.5

-1

-1.5

-1

-0.5

0.5

1
Real Part

32

1.5

2.5

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

ceros =
0
1.3333
polos =
3.0000
0.5000

x 10 5

Respuesta Impulsional segun impz

3
h[n]
2
1
0
0
4

x 10 5

6
8
n
Respuesta Impulsional analitica

10

12

10

12

3
hh[n]
2
1
0
0

6
n

33

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

6. Transformada de Fourier de Tiempo


Discreto (DTFT)
A partir de la Transformada Z

X e j X z z e j

Im{z}

z e j ,

x[n] e

X e

Re{z}

jn

Esta es la DTFT directa

Existencia de la DTFT
Condicin suficiente:
Si la secuencia es absolutamente sumable, la DTFT existe.
Es decir, si

x n , la DTFT existe.

La DTFT inversa
xn

1
X e
2

e jn d

Ejemplo 14
Determinar la DTFT de la secuencia impulso unitario x n n .
Solucin:

X e j n e jn 1
n

X e j

[n

]1

Ejemplo 15

Graficar la magnitud y la fase de la DTFT de la secuencia [ ] ( )


Solucin
La secuencia es absolutamente sumable, por tanto, la DTFT existe,
(

( )|
34

[ ]

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

close all; clear all;


w=[-2*pi:2*pi/200:2*pi];
j=sqrt(-1);
X=1./(1-(1/2)*exp((-1)*j*w));
subplot(211);
plot(w/pi,abs(X));grid;
title('Magnitud');
subplot(212);
plot(w/pi,180*angle(X)/pi);grid;
ylabel('');title('Fase');
Magnitud
2
1.8
1.6
1.4
1.2
1
0.8
-2

-1.5

-1

-0.5

0.5

1.5

0.5

1.5

Fase
30
20
10

0
-10
-20
-30
-2

-1.5

-1

-0.5

Interpretacin de la DTFT

|X(Z)|
Im{Z}

e j

|H(ej)|

Re{Z}

35

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Respuesta en Frecuencia
Es la DTFT de la respuesta impulsional :

H e j

Magnitud de la Respuesta en Frecuencia :

H e j

ganancia del sistema)


Fase de la Respuesta en Frecuencia :
desplazamiento de fase del sistema)
A partir de la Funcin de Transferencia :

(Respuesta en amplitud o

H e j

(Respuesta en fase o

H e j H z z e j

Significado de la Respuesta en Amplitud y la Respuesta en Fase.


Ejemplo 16
Dado el sistema de tiempo discreto causal con funcin de transferencia:

0.0042 z -1 0.0147 z -2 0.0034 z -3


H z
1 - 3.1582 z -1 4.0820 z -2 - 2.5235 z -3 0.6279 z -4
Obtener experimentalmente el grfico de la respuesta en amplitud y la respuesta en
fase del sistema.

Solucin

x[n]

y[n]

H(z)

%************************************************
% Obtencin Experimental de la Respuesta
% en amplitud y la Respuesta en fase de un
% Sistema de Tiempo Discreto
%************************************************
% Reinicializar el ambiente
close all; clear all;
36

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

% Funcin de Transferencia
B = [0.0000 0.0042 0.0147 0.0034 0.0000]
A = [1.0000 -3.1582 4.0820 -2.5235 0.6279]
% Respuesta impulsional
[h,n]=impz(B,A);
stem(n,h);
grid; ylabel('h[n]'); xlabel('n');
pause;
% Obtencin Experimental de la Respuesta en magnitud
% y la Respuesta en Fase
%N=length(n);
N=1000;
n=1:N-1;
W=[0*pi:pi/800:pi]; % Vector de Frecuencias
Nw=length(W)
for m = 1:Nw
x=sin(W(m)*n);
% Secuencia de entrada
y=filter(B,A,x); % Obtencion de la salida
x=x(N-900:N-1);
y=y(N-900:N-1);
% Salida estable
ganancia(m)= max(y)/max(x);
xh = hilbert(x);
yh = hilbert(y);
fase(m)=wrapToPi( angle(yh(800)) - angle(xh(800)) );
end
% Con freqz
H=freqz(B,A,W);
Hdecibelios=20*log10(abs(H));
% Graficos
subplot(2,2,1);
plot(W/pi,20*log10(ganancia)); grid;
xlabel('w/pi'); ylabel('|H(e^jw)|,db');
title('Respuesta en amplitud obtenida experimentalmente');
subplot(2,2,3);
plot(W/pi,Hdecibelios); grid;
xlabel('w/pi'); ylabel('|H(e^jw)|,db');
title('Con la funcion freqz');
subplot(2,2,2);
plot(W/pi,180*fase/pi); grid;
xlabel('w/pi'); ylabel('<H(e^jw),');
title('Respuesta en fase obtenida experimentalmente');
subplot(2,2,4);
plot(W/pi,180*angle(H)/pi); grid;
xlabel('w/pi'); ylabel('<H(e^jw),');
title('Con la funcion freqz');
37

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

0.25

0.2

0.15

0.1
h[n]
0.05

-0.05

-0.1

50

100

150

n
Respuesta en amplitud obtenida experimentalmente

Respuesta en fase obtenida experimentalmente

20

200

0
100
w)|,db
-20

w),
j <H(e

j |H(e

-40
-100
-60

-80

-200
0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

0.1

0.2

0.3

0.4

w/pi

0.5

0.6

0.7

0.8

0.9

0.7

0.8

0.9

w/pi

Con la funcion freqz

Con la funcion freqz

20

200

0
100
w)|,db
-20

w),
j <H(e

j |H(e

-40
-100
-60

-80

-200
0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

0.1

0.2

0.3

w/pi

0.5
w/pi

Ejemplo 17
Para el sistema de promedio mvil de tamao N
1) Determine analticamente la respuesta en frecuencia.
2) Grafique la magnitud y la fase para N=5.
3) Compruebe los resultados anteriores usando MATLAB.
Solucin

h[n]

0.4

1/N

38

0.6

Curso: Procesamiento Digital de Seales

hne

He

Profesor: Wildor Ferrel Serruto

N 1

j n

e
n0

1
N

j N2 j N2
e
e
e

N1

j
j
j
e 2 e 2 e 2

He

N
2

j n

j N
1

e
N1
1e j

1 R1

1
r 0
R

N j N 1
sen
2
2
N1
e
sen 2

sen 52 j 2

sen 2
1
5

%******************************************
% Respuesta Frecuencial del
% Sistema Promedio Mvil N=5
%******************************************
% Reinicializar el ambiente
close all; clear all;
% 1) Funcin H hallada analiticamente
N=5;
w=[(-1)*pi:(2*pi)/800:pi];
j=sqrt(-1);
H=(1/N).*((sin(w.*(N/2)))./(sin(w./2)))...
.*exp(((-1)*j).*(w./2).*(N-1));
% 2)Grficos de la solucin analtica
% Graficar la magnitud de H(e^jw)
subplot(2,2,1);
plot(w/pi,abs(H));
grid; title('Magnitud calculada analiticamente');
ylabel('|H(e^jw)|'); xlabel('w/pi');
% Graficar la fase de H(e^jw)
subplot(2,2,2);
plot(w/pi,angle(H));
grid; title('Fase calculada analticamente');
ylabel('< H(e^jw)'); xlabel('w/pi');
% 2)Comprobacion con freqz
B=[1/5 1/5 1/5 1/5 1/5];
A=[1
0
0
0
0];
H=freqz(B,A,w);
% Graficar la magnitud de H(e^jw)
subplot(2,2,3);
plot(w/pi,abs(H));
grid; title('Magnitud (Comprobacion con freqz)');
39

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

ylabel('|H(e^jw)|'); xlabel('w/pi');
% Graficar la fase de H(e^jw)
subplot(2,2,4);
plot(w/pi,angle(H));
grid; title('Fase (Comprobacion con freqz)');
ylabel('< H(e^jw)'); xlabel('w/pi');
Magnitud calculada analiticamente

Fase calculada analticamente

3
2

0.8

1
w)
H(e
0

w)| 0.6

j<

j |H(e

0.4
-1
0.2

-2

0
-1

-0.8

-0.6

-0.4

-0.2

0
w/pi

0.2

0.4

0.6

0.8

-3
-1

-0.8

-0.6

Magnitud (Comprobacion con freqz)

-0.4

-0.2

0
w/pi

0.2

0.4

0.6

0.8

0.4

0.6

0.8

Fase (Comprobacion con freqz)

3
2

0.8

1
w)
H(e
0

w)| 0.6

j<

j |H(e

0.4
-1
0.2

-2

0
-1

-0.8

-0.6

-0.4

-0.2

0
w/pi

0.2

0.4

0.6

0.8

-3
-1

-0.8

-0.6

-0.4

-0.2

0
w/pi

0.2

Filtros clsicos

|H(ej)|

Filtro pasa bajas

|H(ej)|

Filtro pasa altas

40

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

|H(ej)|

Filtro pasa banda

|H(ej)|

Filtro supresor de banda

-
Filtros Ideales Clsicos

Filtro pasa bajas

[ ]

H(ej)

Filtro pasa altas

[ ]

[ ]

-c

H(ej)
)

-c

Ejemplo 18
1) Generar una secuencia senoidal x[n] de 80 muestras con frecuencia 2/25
rad/muestra.
2) Obtener una secuencia x1[n] adicionando a la secuencia inicial un ruido aleatorio
uniformemente distribuido en el intervalo -0,25 a 0,25.
3) Obtener la secuencia y[n] filtrando la secuencia x1[n] con un sistema promedio
mvil de tamao 5 recursivamente usando la funcin filter.
4) Lo mismo del punto 3 usando la funcin fft.
41

Curso: Procesamiento Digital de Seales

x [n]

Tamao=84

h [n]

Profesor: Wildor Ferrel Serruto

y [n]
Tamao=84

Tamao=84

%*****************************************
% Filtrado con el Sistema de Promedio
% Movil de Tamao 5
%*****************************************
% Reinicializar el ambiente
close all; clear all;
% 1) Formar la secuencia de entrada
N=80;
n=[0:N-1];
x=sin(2*pi*n/25);
% 2) Formar la secuencia con ruido aditivo
x1=x+0.5*(rand(1,N)-0.5);
% 3) Calcular la salida usando la funcin filter
B=[1/5 1/5 1/5 1/5 1/5];
A=[1
0
0
0
0 ];
y1=filter(B,A,x1);
% 4) Usando la funcin fft
% El tamao de h, x1 debe ser N+5-1=N+4
h=[1/5 1/5 1/5 1/5 1/5 zeros(1,N-1)];
x2=[x1 zeros(1,4)];
H=fft(h);
X2=fft(x2);
Y2=H.*X2;
y2=ifft(Y2);
y2=real(y2);
% Graficar las secuencias
subplot(4,1,1); stem(n,x);
grid; ylabel('x[n]'); xlabel('n');
subplot(4,1,2); stem(n,x1);
grid; ylabel('x1[n]'); xlabel('n');
subplot(4,1,3); stem(n,y1);
grid; ylabel('y1[n]'); xlabel('n');
title('Salida obtenida empleando la funcion filter');
subplot(4,1,4); stem(n,y2(1:N));
grid; ylabel('y2[n]'); xlabel('n');
title('Salida obtenida empleando la funcion fft');
42

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

1
x[n]

0
-1

10

20

30

10

20

30

10

20

30

10

20

30

40
n

50

60

70

80

40
n
Salida obtenida empleando la funcion filter

50

60

70

80

40
n
Salida obtenida empleando la funcion fft

50

60

70

80

50

60

70

80

2
x1[n]
0
-2

2
y1[n]

-2

2
y2[n]
0
-2

40
n

DTFT con funciones impulso


Sea una DTFT representada en la forma:

X e

1
-0

X e j 0 0

1
j
e jn d =
X e
2
1
jn
=
0 0 e d =
2
1
1
jn
=

0 e d
0 e
2
2

xn =

jn

d =

1 j 0 n
1 j 0 n
e

e
=
2
2
1
e j 0 n e j 0 n
=
2
1
= cos 0 n
=

cos 0 n
e

j 0 n

0 0 con periodo

2 0 con periodo
43

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

7.Anlisis en el Dominio Transformado


El retardador ideal
La respuesta al impulso del retardador ideal es:

hid n n nd

Su respuesta en frecuencia es
(
)
cuya magnitud y la fase son: | (
)|
;
(
)
Se observa que la fase es funcin lineal de la frecuencia.

Filtros clsicos ideales con retardo


El filtro pasa-bajas ideal con retardo tiene respuesta en frecuencia:
| |
(
) {
y respuesta al impulso
(

[ ]

))

Retardo de grupo
Es una medida de la linealidad de la fase:
( )

)}

Significado del retardo de grupo


xn sn cos0 n

; yn ?

x n

H (e

X (e j )

y n

)
-

Y e j X e j H e j


S e H e e S e H e e

j
12 S e j 0 12 S e j 0 H e j e jH e

1
2

j 0

jH e j

1
2

j 0

-0

jH e j

H (e j )

-0
-

-0

0
0

44

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Aproximamos H e j en 0 : H e j 0 0
Aproximamos H e j en 0 : H e j 0 0

Y e j 12 S e j 0 H e j0 e j 0 0 12 S e j 0 H e j0 e j 0 0

Y e j S e j 0 e j 0 H e j0 12 e j0 S e j 0 e j 0 H e j0 12 e j0

yn sn 0 e j0 n 0 H e j0 12 e j0 sn 0 e j0 n 0 H e j0 12 e j0

yn H e j0 sn 0 cos0n 0 0 0
Interpretacin grfica de la respuesta en frecuencia
| (

)|

| (

)|

Filtro Resonador Digital


Filtro pasabanda de banda estrecha. Se puede implementar con dos polos
conjugados complejos situados cerca de la circunferencia de radio uno.

Filtro resonador con ceros en el origen.


H z
Para

que

1 r e
se

j 0

b0
b0
H e j
j 0
j 0
1
j
z 1 r e
z ,
1 r e e 1 r e j0 e j
1

cumpla

H e j0 1

b0 1 r 1 r 2 2r cos20 .

45

el

coeficiente

b0

debe

ser

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

La frecuencia de resonancia es r arccos 1 r cos 0 . El ancho de banda de 3 db


2

2r

es 21 r .

Ejemplo 19
Hallar la funcin de transferencia de un resonador digital con ganancia pico unitaria
a 50 Hz, un ancho de banda de 3 db de 6 Hz, sabiendo que la frecuencia de
muestreo es 300 Hz.
clf; clear;
f0=50; deltaf=6; fs=300;
w0=f0*2*pi/fs
deltaw=deltaf*2*pi/fs
r=1-0.5*deltaw
b0=(1-r)*sqrt(1+r*r-2*r*cos(2*w0))
B=[b0 0 0]
j=sqrt(-1);
A=conv([1 (-1)*r*exp(j*w0)],[1 (-1)*r*exp((-1)*j*w0)])
W=[0:0.5:150]*2*pi/fs;
subplot(1,2,1);
H=freqz(B,A,W);
plot(W*fs/(2*pi),abs(H));grid;
subplot(1,2,2);
W=([45:0.1:55]*2*pi)/fs;
H=freqz(B,A,W);
plot(W*fs/(2*pi),abs(H));grid;

1.4

1.2

1.2

1.1

0.8

0.9

0.6

0.8

0.4

0.7

0.2

0.6

0 0

50

100

0.545 46 47 48 49 50 51 52 53 54 55

150

Filtro resonador con ceros en z 1 y z 1.


H z b0

1 z 1 z
1 r e z 1 r e
1

j 0

j 0

H e j b0

1 e j 2
e j 1 r e j0 e j

z 1 ,
1 r e j0
Ejercicio 1. Para ambos tipos de resonador, graficar con MATLAB la magnitud y la
fase en el intervalo de a ; para 0 3 , r 0.8 y para 0 3 , r 0.95 .
1

46

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Filtro Ranura
Filtro con uno o ms cortes profundos en su respuesta en frecuencia.
Para implementar un filtro ranura se pueden tomar dos ceros complejos conjugados
sobre la circunferencia de radio uno.

H z b0 1 e j0 z 1 1 e j0 z 1

Para reducir el ancho de banda del corte se pueden introducir dos polos
conjugados complejos
1 e j0 z 1 1 e j0 z 1
H z b0
1 r e j0 z 1 1 r e j0 z 1

Ejemplo 20
Para el filtro ranura de dos ceros y dos polos, graficar con MATLAB la respuesta en
amplitud en el intervalo de a para 0 4 , r 0.85 .
Solucin

close all; clear all;


w0=pi/4;
r=0.85;
j=sqrt(-1);
b0=((1-r*exp(j*w0))*(1-r*exp((-1)*j*w0)))/...
((1-exp(j*w0))*(1-exp((-1)*j*w0)));
B=b0*conv([1 (-1)*exp(j*w0)],[1 (-1)*exp((-1)*j*w0)]);
A=conv([1 (-1)*r*exp(j*w0)],[1 (-1)*r*exp((-1)*j*w0)]);
W=[0:pi/400:pi];
H=freqz(B,A,W);
plot(W/pi,abs(H));grid;
title('Respuesta en amplitud de un filtro ranura');
Respuesta en amplitud de un filtro ranura
1.4

1.2

0.8

0.6

0.4

0.2

0.1

0.2

0.3

0.4

0.5

47

0.6

0.7

0.8

0.9

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Filtro Peine
Su respuesta en magnitud consiste en una serie de picos regularmente espaciados,
cuya figura es semejante a la de un peine.
El sistema promedio mvil es un ejemplo sencillo de filtro peine. yn

H z
Si

1
M 1

, H z

k 0

reemplazamos

H L e j

1
M 1

M 1

1
M 1

1 z
1 z 1

, H e j

por

1
M 1

zL

sen M21 L j M2 L
e
sen2L

1
M 1

sen j M2
e
.
sen2

xn k
k 0

M 1
2

tenemos

H L z

1
M 1

1 z L M 1
,
1 zL

Ejemplo 21
Para el filtro peine con
y
magnitud y en fase en el intervalo de
Solucin

a .

graficar con MATLAB la respuesta en

close all; clear all;


% Respuesta en frecuencia
L=10;
M=3;
w=[0:(2*pi)/800:pi];
j=sqrt(-1);
H=(1/(M+1)).*((sin(w.*(L*((M+1)/2))))./(sin(w.*(L/2))))...
.*exp(w.*((-1)*j*M*L*(1/2)));
% Grafico de la magnitud de H(e^jw)
subplot(2,1,1);
plot(w/pi,abs(H));
grid; title('Respuesta en amplitud de un Filtro Peine');
ylabel('|H(e^jw)|'); xlabel('w/pi');
% Grafico de la fase de H(e^jw)
subplot(2,1,2);
plot(w/pi,angle(H));
grid; title('Respuesta en fase de un Filtro Peine');
ylabel('< H(e^jw)'); xlabel('w/pi');

48

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto


Respuesta en amplitud de un Filtro Peine

|H(ejw)|

0.8
0.6

0.4
0.2

0.1

0.2

0.3

0.4

0.5
w/pi

0.6

0.7

0.8

0.9

0.7

0.8

0.9

Respuesta en fase de un Filtro Peine


3
2

< H(ejw)

1
0
-1
-2
-3

0.1

0.2

0.3

0.4

0.5
w/pi

0.6

Ejercicio 2. Para el sistema con funcin de transferencia


1 z 16
H z 14
1 z 4
1. Dibujar el diagrama de polos y ceros y determinar la ROC
2. Hallar la respuesta impulsional
3. Hallar y graficar la magnitud de la respuesta en frecuencia
4. Qu tipo de filtro es?

Sistema inverso
Para un sistema LTI su sistema inverso es aquel que al conectrsele en cascada da
por resultado un sistema identidad

H z G z 1
Gz

1
H z
Ver ejemplo 5.4 y ejemplo 5.5 de Oppenheim

Sistema pasa todo


Es el sistema cuya respuesta en frecuencia tiene magnitud constante igual a la
unidad.

H e j 1
z 1 a
1 a z 1
j
e j a
j
j 1 a e
H ap e

= e
1 a e j
1 a e j

Ejemplo, H ap z

En un sistema pasa-todo cada polo est emparejado con un cero conjugado


recproco.

z 1 a
1
Si a es real: H ap z
. Polo: z a
1 . Cero: z
1 a z
a
49

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto


Im{z}

Re{z}
1

Sistema de fase mnima


Un sistema estable y causal se llama sistema de fase mnima si su sistema inverso
tambin es causal y estable. Los polos y los ceros de un sistema de fase mnima
deben estar dentro de la circunferencia unitaria.

Descomposicin en pasa todo y fase mnima


Un sistema estable y causal siempre se puede expresar como la conexin en
cascada de un sistema de fase mnima y un sistema pasa todo.

H z H min z H ap z

Ejemplo 22
1 2 z 1
H z
1 0.2 z 1 1 0.7 z 1
Para el sistema:
Hallar la descomposicin en pasa todo y fase mnima

Im{z}

Re{z}
0.2

0.7

Im{z}

0.5
0.2

50

0.7

Re{z}

Curso: Procesamiento Digital de Seales

H z

Profesor: Wildor Ferrel Serruto

1 2 z 1
1 0.5 z 1
1 0.5 z 1
1 2 z 1

1 0.2 z 1 1 0.7 z 1 1 0.5 z 1 = 1 0.2 z 1 1 0.7 z 1 1 0.5 z 1

z 1 a
H ap z
;
1 a z 1
1
1 0.5 z 1
1 1 2 z
H z 2

1 0.2 z 1 1 0.7 z 1 2 1 0.5 z 1

H z 2

1 0.5 z 1
z 1 0.5

1 0.2 z 1 1 0.7 z 1 1 0.5 z 1

Sistema con fase lineal


Un sistema LTI se dice que tiene fase lineal si:

H e j

= H e j e j

Un sistema LTI es de fase lineal generalizada si:


j
e j
H e j = A e

Ae
- Es una funcin real.
Para que un sistema causal de funcin de transferencia racional tenga fase lineal
generalizada su respuesta al impulso de tamao N debe ser real, FIR, simtrica (
h n h N 1 n ) o anti-simtrica ( h n h N 1 n ).
N impar N par
h n simtrica
Tipo I
Tipo II
h n anti-simtrica Tipo III
Tipo IV

x [n]

x [n]

Tipo I

Tipo II

x [n]

x [n]

Tipo III

Tipo IV

Para el filtro de tipo II, tenemos

H e j

N
1
2

N 1

h n e jn + h n e jn ;

n0

m N 1 n; n N 1 m

N
n
2

51

Curso: Procesamiento Digital de Seales

H e j

H e j
N
1
2

=
=

N
1
2

N
1
2

n0

m0

N
1
2

N
1
2

n0

m0

Profesor: Wildor Ferrel Serruto

h n e jn + h N 1 m e j N 1m ; h m h N 1 m

h n e jn + h m e j N 1 m

N
1
2

j
= h n e jn e j N 1 n = h n e

n0
n0

N
1

N 1
2
N 1
j =
2 h n cos 2 n e j 2
H e
n0

H e

= H r e e
j

N21n e j N21n e j N21

N 1
2

N impar
Tipo I

h n simtrica
h n anti-simtrica Tipo III

Tipo

H r e j

o H i e j

N 1

II

N
1
2

N 1
2

N 1
n
2

N
1
2

H e j0

H e j

N 1
h
+ 2hn
2 n 0
N 1
2

N
2

2 hn

n0

N 1
n
2

N 1
n
2

j 2 h n sen
n0

N 1
n
2

Tipo IV

j 2 h n sen
n0

IV

2 h n cos

n0

III

N 1 2
h
+ 2 h n cos
2 n0

N par
Tipo II

Conclusiones:
Los filtros de tipo II no pueden ser pasa altas ni supresores de banda.
Los filtros de tipo III slo pueden ser filtros pasa banda.
Los filtros de tipo IV no pueden ser pasa bajas ni supresores de banda.
Los filtros de tipo I puede implementar cualquier filtro. Es el nico tipo capaz de
realizar filtros supresores de banda.
Los ceros de la funcin de transferencia de un sistema de fase lineal se presentan en
pares conjugados recprocos.

52

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

8. Relacin entre la DTFT y la CTFT


x[n]

xc(t)

C/D
X

X e

C/D

T
(1)
(2)

x[n]

xc(t)
2

x n x c nT

X e

1
jt
xc t
X c j e d
2
xn

1
jnT
d ,
X c j e
2
T ,

jn d
xn
X c j T e
T
2

d
, d
T
T

2 k 1
1
1
xn
X c j e jn d ,

T
2 k 2 k 1 T
2 k , 2 k , d d
1 1
2 k
xn
T X c j T e j 2 k n d
2 k

1 1
2 k
xn
T X c j T
2 k

(3)

1
xn
X e
2

e j n d

e jn d

La relacin entre las transformadas es:

X e

T1

Xc j

54

2 k
T

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Interpretacin grfica

Para k 0 :

1
X 0 e j X c j ;
T
T

Para k 1:

2
1
X 1 e j X c j

Para k 1:

2
1
X 1 e j X c j

, T
T

Xc j

-S

-M

X e j

X 1 e j

-2

X 0 e j

1
T

-MT

X 1 e j

M T

X S j

1
T

X S j X e j T

-M 0

-S

j T

T X e
X c j

55

c .c .

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Estructura del conversor D/C ideal

X c j X e jT H r j
x[n]

Conversor de
secuencia en tren de
impulsos
ponderados
T

xs(t)

Filtro de
reconstruccin

H r j

H r j
T

Relacin entre la seal reconstruida y la secuencia


X c j x n e jTn
n

H r j

x c t x n t nT * h r t
n

senT t
hr t
T t

sen Tt n
xc t xn
Tt n
n

56

xc(t)

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Conversor D/C prctico


x[n]

X e

xa(t)

Retenedor de
orden cero

X a j

x[n]

xc(t)
xa(t)

n
p (t)

x a t x n p t nT

X a j x n P j e jnT
n

X a j P j x n e jnT
n

X a j P j X e jT

P j p t e jt dt

P j e jt dt
0

P j

1
e jt
j

P j

1
j

T
0

e jT 1

T
T
j T j T
1 j 2 j 2
2e
2
P j
e
e

e
j

P j 2

57

sen

2T

T
2

Curso: Procesamiento Digital de Seales

X a j P j X e jT

X a j 2

sen 2T

X a j T

X e jT T1

sen 2T
T
2

T
2
T
2

sen

X c j X e

jT

j T2

X e jT

j T2

X e jT

Profesor: Wildor Ferrel Serruto

j T2

X a j

H j
r

1
T

T
2
T
2

sen

j T2

X a j H r j

2T
j 2T

e
X a j T T

X c j sen 2T

0
c.c.

2T
j 2T

H rr j sen 2T

0
x[n]

X e

Retenedor de
orden cero
j

T T
c.c.

Filtro de
reconstruccin

xa(t)

xc(t)

H rr j

X c j

X a j

H rr j

58

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Ejemplo 23
Graficar la respuesta en amplitud del filtro de reconstruccin, conectado en
cascada con el retenedor de orden cero, para la frecuencia de muestreo de 8
kHz.

2T
j 2T

H rr j sen 2T

T T
c.c.

% Reinicializar el ambiente
close all; clear all;
% Hallamos la funcin Hrr
fs=8000;
T=1/fs;
W=[(-1)*2*pi/T:(2*pi/T)/400:2*pi/T];
N=length(W);
j=sqrt(-1);
for i=1:1:N
if abs(W(i))<pi/T
x=W(i)*T/2;
Hrr(i)=(x/(sin(x)))*exp(j*x);
else
Hrr(i)=0;
end
end
% Graficamos la Magnitud de Hrr
plot(W/(2*pi),abs(Hrr));
grid; title('Respuesta en Amplitud del Filtro');
ylabel('|Hrr(jW)|'); xlabel('f');
Respuesta en Amplitud del Filtro
1.6
1.4
1.2
1
|Hrr(jW)|
0.8
0.6
0.4
0.2
0 -8000

-6000

-4000

-2000

0
f

59

2000

4000

6000

8000

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

9. Cambio de la Tasa de Muestreo


Reduccin de la frecuencia de muestreo en un factor entero
Sistema compresor
x n x c nT
x d n x c nT x c nMT
x d n x nM

X e

T1

Xc j

2 k
T

X e

2 r
1
X d e j
X c j MT

MT r

r i kM , 0 i M 1, k
2 i 2kM
1 M 1 1
X d e j
T X c j

MT


M i 0 k

2 i
1 M 1 j M
X d e j
X e
M i 0

j
Si M 2 , X d e j 1 X e 2
2

j 2
Xe 2

Ver Figura 4.21 y Figura 4.22 de Oppenheim

Sistema diezmador
Filtro pasabajas
Ganancia = 1
Corte = /M

60

X d e j

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Incremento de la frecuencia de muestreo en un factor entero


x n x c nT

TL

x i n x c nT x c n

Sistema expansor

xe n xk n k L
k

X e e j x k n k L e jn

n k

X e e j x k n k L e jn
n

X e e j x k e jk L
k

X e jL

Xe e

Ver Figura 4.25 de Oppenheim

Sistema interpolador
Filtro pasabajas
Ganancia = L
Corte = /L

61

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Cambio de la tasa de muestreo en un factor no entero


Filtro pasa-bajas
Ganancia=L
Corte=
min(/L, /M)

Procesamiento digital de seales analgicas


Sistema de
tiempo discreto

H e j
X

X e

Y e j

Y r j

Y r j T Y e j T ,
T

T1 X c j TT , T T

Y r j T H e j T X e j T ,
T

Y r j T H e j T

Y r j H e j T X c j ,
T

H e j T

H eff j
0

62

T
T

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Ejemplo 24
Dado el sistema

Sistema de
tiempo
discreto

H e j

X e

donde,

Y e j

Y r j

Xc j

-2 1000

2 1000

1
H e j
0

c
c.c.

Cul es la frecuencia mnima para que al muestrear la entrada no se


produzca solapamiento?
Si c , Cul es la frecuencia mnima de muestreo que asegura que
2
y r t xc t ?
j

Para c y una frecuencia de muestreo igual a 2000 Hz, graficar X e


,

Y e j ,

Y r j , y hallar H eff j

63

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Aplicacin del diezmado en la conversin A/D

Sistema de
tiempo
discreto

Filtro
antisolapamiento

Xc j

-N

H aa j

-M1

-N

M1

Filtro antisolapamiento
exacto
Corte=/M

Filtro antisolapamiento
simple

64

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Xc j

-4N

-N

4N

4N

4N

H aa j

-4N

-N

X a j

-4N

-N

X e j
T

-2

NT

H e j

-2

X d e j

1
T

-2

T MT

0
65

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

10. Cuantizacin
Cuantizacin por redondeo:
Unipolar
- Tamao de paso de cuantizacin

Bipolar:

, -

, -

66

, -

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

f e

Potencia del ruido (varianza):

( )

Error RMS de cuantizacin:


D - Intervalo dinmico
L Nmero de niveles

Razn seal ruido de cuantizacin:


(

La SQNR mejora en 6 dB por cada bit adicional.


La SQNR se reduce si el intervalo dinmico excede la rms de la seal.

Ejemplo 25
Una seal vara en el intervalo -2.5V a +2.5V. Cul debe ser la cantidad de bits
para que el error rms de cuantizacin sea menor que 5mV?
D=5V;
;

; B=9 bits.

67

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

11. Estructuras de Sistemas de Tiempo


Discreto

Forma directa I
Forma directa II
Forma serial
Forma paralela
Directa
I, II

Serial

Paralela

Inmunidad a los efectos de


aritmtica de precisin finita
Facilidad de clculo

Smbolos

x2[n]

x1[n]

x[n]

x[n]

x1[n]+ x2[n]
a
a x [n]

z-1
x [n-1]

Ejemplo 26
Para el sistema con funcin de transferencia

dar la representacin en la forma directa I, forma directa II, forma serial y forma
paralela.
Solucin

y[n] = b0x[n]+ b1x[n-1]+ b2x[n-2] - a1y[n-1] a2y[n-2]


y[n] = 0.5x[n]-0.5x[n-2] 1.3y[n-1] 0.36y[n-2]
68

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Forma directa I

y[n] = 0.5x[n]-0.5x[n-2] 1.3y[n-1] 0.36y[n-2]

y[n]

x[n]

x[n]

y[n]

0.5
z-1

z-1
-1.3

0
z-1

-0.36

-0.5

z-1

Forma directa II

x[n]

y[n]

0.5
z-1

z-1

-1.3
-0.36

0
z-1

z-1

w[n]

x[n]

-0.5

0.5

z-1
-1.3
-0.36

0
z-1
-0.5

wn xn 1.3wn 1 0.36wn 2
yn 0.5wn 0.5wn 2

69

y[n]

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Forma serial

w1[n]

x[n]

y1[n]

0.5

w2[n]

z-1

z-1
-0.4

-0.9

-0.5

w1n xn 0.4w1n 1
y1n 0.5w1n 0.5w1n 1
w2 n y1 n 0.9w2 n 1
yn w2 n w2 n 1
Forma paralela

-1.39

x[n]

w2[n]

y2[n]

2.1

z-1
-0.4
w3[n]

-0.21

z-1
-0.9
y1n 1.39 xn
w2 n xn 0.4w2 n 1
y2 n 2.1w2 n

w3 n xn 0.9w3 n 1

y3 n 0.21w3 n

yn y1n y2 n y3 n
70

y3[n]

y[n]

y[n]

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Forma directa I
y n b 0 x n b1 x n 1 ... b M x n M
a1 y n 1 ... a N y n N

x[n]

H z

b 0 b1 z 1 ... b M z M
1 a1 z 1 ... a N z N

y[n]

b0
z-1

z-1
-a1

b1

z-1

z-1
-aN-1

bM-1

z-1

z-1
-aN

bM
v n b 0 x n b1 x n 1 ... b M x n M

y n a1 y n 1 ... a N y n N v n

V z b 0 b1 z 1 ... b M z M X z
Y z

1
1 a1 z

... a N z

V z

Forma directa II

y[n]

x[n]

b0
z-1
-a1

b1
z-1

-aN-1

bM-1
z-1

-aN

bM

w n a1 w n 1 ... a N w n N x n

y n b 0 w n b1 w n 1 ... b M w n M

W z

1
1 a1 z 1 ... a N z N

Y z b 0 b1 z 1 ... b M z M W z

X z

71

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Forma serial
M1

H z b0

1 g k z

k 1
N1

1 h k z 1 1 h k* z 1
M2

k 1
N2

1 c k z 1 1 d k z 1 1 d k* k z 1

k 1

Ns

1 b1 k z 1 b 2 k z 2

k 1

1 a1 k z 1 a 2 k z 2

H z b0

k 1

b0

y0 n xn

w k n a 1 k w k n 1 a 2 k w k n 2 y k 1 n
y k n w k n b1 k w k n 1 b 2 k w k n 2
y n b0 y N s

72

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Forma paralela
M N

H z Ck z

N1

Ak

k 11 c k

k 0

z 1

N2

N2

Bk

k 11 d k

z 1

N1 N 2 N
M N

H z Ck z
k 0

Ns

b 0 k b1 k z 1

k 1

1 a1 k z 1 a 2 k z 2

b01

b11

b02

b12

b03
b13

w k n a1 k w k n 1 a 2 k w k n 2 x n

y k n b 0 k w k n b1 k w k n 1
M N

Ns

k 0

k 1

y n C k x n y k n

73

B k*

k 11 d k* z 1

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Representacin de sistemas de tiempo discreto en el espacio de


estados
Ejemplo 27
Para el sistema con funcin de transferencia,

Hallar la representacin en el espacio de estados en la forma:


, ,
, , ,
, Solucin
Las ecuaciones de la forma directa II son:
, , ,
,
, , ,
-

, -

( , -

, , -

, ,
, -

]
-

1[

,
0

-[
1;

,
,

,
,

,
,

]
-

]
-

-)
, -

, -

0 1 , , -

0 1

-;

En matlab escribimos:

b=[0.5 0 -0.5]
a=[1 1.3 0.36]
[A,B,C,D]=tf2ss(b,a)

74

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

12. La Serie de Fourier Discreta


Una secuencia peridica ~
x n con periodo N se puede expresar a travs de la
serie de Fourier discreta (DFS):
2
N 1 ~
j kn
1
~
x n
X k e N

N k 0
La DFS es la descomposicin de ~
x n en una suma de N exponenciales

complejas armnicamente relacionadas. Los valores de los coeficientes de la


DFS se calculan con la frmula:
2
N 1
j kn
~
X k ~
x n e N
n0

Ejemplo 28
~
Hallar los coeficientes de la DFS de la secuencia peridica x n
esta secuencia como una serie de Fourier Discreta

...

...
0

, -

, -

Solucin

, , , -

, -

, -

, -

, -

, , -

, , -

, -

, -

, -

, , -

, -

/
(

, .
.

/
/

, , -

)
/

, , 75

y expresar

Curso: Procesamiento Digital de Seales

, -

Profesor: Wildor Ferrel Serruto

La DFS y la DTFT
Para la secuencia peridica ~
x n con periodo N los coeficientes de la DFS son:
N 1
j
~
X k ~
x n e

2
kn
N

n0

Definimos la secuencia de extensin finita


~
x n , 0 n N 1
xn
c .c .
0,
La DTFT de la secuencia x n es:


X e j =

N 1

n0

X e j = x n e jn = x n e jn
N 1

~x n e jn

n0

Se observa que se cumple

~
X k X e j

Ejemplo 29

2
k
N

Hallar la DTFT de la secuencia

X e j

0
=

x n e jn

1 e j 0 1 e j1 1 e j

Si comparamos esta DTFT con los coeficientes de la DFS del ejemplo anterior
vemos que se cumple la relacin:

~ k 1 e j 23 k X e j
X

23 k

La convolucin peridica
Dadas las secuencias peridicas ~
x1 n , ~
x 2 n ambas con periodo N, se define
la convolucin peridica como la operacin:
~
x1 n

N 1

~
x2 n ~
x1 m ~
x2 n m
m0

Ejemplo 30
Hallar la convolucin peridica de las secuencias ~
x1 m y ~
x2 m
N 1

~
x3 n ~
x1 m ~
x2 n m
m 0

76

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

~
x1 m
4

0
~
x2 m

0
~
x2 m

m
~
x 2 1 m

0
~
x3 0 7
~
x 1 5
3

~
x3 2 3
~
x3 3 6
~
x 4 9
3

Ver Tabla 8.1 de Oppenheim

77

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

13. La Transformada Discreta de Fourier


(DFT)
Dada una secuencia de extensin finita de longitud N
xn

N-1

Para encontrar x n a partir de su DTFT, deben ser suficientes N muestras de

X e j en las frecuencias

0 , 1 , ..., N 1 .

Puesto que la DTFT est dada por la expresin

X e j = x n e jn
n

tenemos N ecuaciones con N incgnitas

= x 0 x 1e j x 2 e j 2 ... x N 1e j N 1

= x 0 x 1e j x 2 e j 2 ... x N 1e j
X e j
X e j 0

N 1

N 1

N 1 N 1

N 1

Este sistema de ecuaciones tiene solucin nica si slo si las frecuencias


0 , 1 , ..., N 1 son distintas.
Si escogemos

2
N

k , k 0 ,1,..., N 1 , las N muestras de

Transformada Discreta de Fourier (DFT)


2
N 1
j kn
x n e N , 0 k N 1
X k n0

0,
c .c .

y su transformada inversa es:


2
1 N 1
j kn
X k e N , 0 n N 1
x n N k 0

0,
c .c .

Usando el factor Twiddle


(

N 1
kn
xn WN , 0 k N 1
X k n0

0,
c .c .

y su transformada inversa es:


78

X e j

se llaman

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

1 N 1
kn
X k W N , 0 n N 1
x n N k 0

0,
c.c.

Operacin n mdulo N
n

Re siduo de ,
n0

N
nN
Re siduo de n N , n 0

La DFT y la DFS

x n x n r N , entonces
Si definimos ~

~
X k X k ,

0 k N 1.

r
Esto significa que X k corresponde a un periodo de la DFS de una secuencia
peridica ~
x n obtenida por la repeticin de x n .

Tambin, podemos escribir que, si ~


x n x n N , entonces
La DFT y la DTFT

X e j
, 0 k N 1
2

k
X k
N

0
,
c .c .

La DFT y la Transformada Z
2
j
k
X z
, 0 k N 1
z e N
X k

0,
c.c.

Desplazamiento Circular
xn

0 1 2 3 4
x n 3 5

0 1 2 3 4
79

~
X k X k N

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

La convolucin circular
Dadas las secuencias x1 n ,
circular como la operacin:
x1 n

x2 n

de extensin finita, se define la convolucin

N 1

x 2 n x1 m x 2 n m N
m 0

0 n N 1

Ejemplo
Hallar la convolucin circular de las secuencias

x1 n , x 2 n .
5

x1 m

x2 m
3
2

0
5

x 2 m 5

3
2
1

0
x 2 1 m 5

5
4

x1 m 5

x2 m

2
12

1
10

9
8

x 2 2 m 5

5
4
3
2
1

m
80

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

La convolucin circular y la convolucin lineal


Si

x1 n

x2 n

tiene extensin M N , entonces


x1 n N x 2 n x1 n x 2 n para M 1 n N 1 .

Ejemplo
La convolucin lineal de las secuencias del ejemplo anterior es:
x1 n x 2 n
12
9
9

6
5
3
1

0
Si

x1 n

tiene extensin
x1 n

x2 n

tiene extensin N 2 , entonces


x 2 n x1 n x 2 n si N N 1 N 2 1 .

N1

Ejemplo
La convolucin circular de longitud 7 de las secuencias
convolucin lineal.
5

x2 n
3
2

es igual a la

x1 n

x1 n , x 2 n

Ver Tabla 8.2 de Oppenheim

81

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

14. Complejidad del clculo de la salida


1. Por convolucin
x n

y n

h n

y n x m h n m
m

Sean las secuencias x n , h n de extensin finita de longitud M


Operaciones

1+2+...+M-1+M+M-1+...+2+1
0+1+...+M-2+M-1+M-2+...+1+0

Total
M2
(M-1)2

2. Mediante la DFT de longitud 2M-1


x[n]

X[k]

h[n]

H[k]

M 1

X k xn e

Y[k]

2
kn
N

n0

k 0 ,1,..., N 1

N 2M 1

Por cada muestra de

X k

Operaciones

Total
M
M-1

Operaciones

Total
M (2M-1)
(M-1) (2M-1)

Para una DFT

Para el producto

X k H k

Operaciones

Total
2M-1
0

82

y[n]

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Para la IDFT
2

j kn
1 2 M 2
Y k e N ,

2 M 1 k 0

yn

Por cada muestra de y n


Operaciones

0 n 2M 2

Total
2M-1
2M-2

Para toda la IDFT


Operaciones

+
Total mediante DFT
Operaciones

Total
(2M-1)2
(2M-2) (2M-1)

2M(2M-1) + (2M-1) + (2M-1)


2(M-1) (2M-1) + (2M-2) (2M-1)

Total Aprox.
8M2
8(M-1)2

La Transformada Rpida de Fourier (FFT)


Mediante diezmado en el tiempo
N 1

X k xn e

2
N

k n

n 0

X k x n e

2
k n
N

n par

N
1
2

X k x 2 r e
r 0

, 0 k N 1

x n e

2
k n
N

n impar

2
k 2 r
N

N
1
2

x 2 r 1 e
r 0

83

2
k 2 r 1
N

Curso: Procesamiento Digital de Seales

N
1
2

2
N
2

Profesor: Wildor Ferrel Serruto

k r

X k x 2 r e
r 0

2
N
j k r
2
1
N
j k 2
e N x 2 r 1 e 2
r 0

DFT de muestras pares

X k G k N

2
k
N H k N

Usando la notacin W N e

X k G k N

DFT de muestras impares

2
N

W k H k N
N

DFT de N/2
puntos

DFT
de de
N/2
DFT
puntos
N/2
puntos

84

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Nmero de operaciones en cada etapa


Operaciones
Total
N

+
N
Nmero de etapas: log 2 N
Total Operaciones por FFT:
Operaciones

+
Estructura Mariposa

Total
N log 2 N
N log 2 N

85

Curso: Procesamiento Digital de Seales

WN

N
2

2
N

Profesor: Wildor Ferrel Serruto

r N2 W r

Nmero de operaciones:
Operaciones

Total
(N/2) log 2
N log 2 N

Complejidad del clculo de la salida


Operaciones
2M

3
log 2 2 M 2 M

Total
M 5 3 log 2 M

3 2 M log 2 2 M

6 M 1 log 2 M

Ejemplo
Para N=256
Operaciones

Clculo por convolucin


M2 = 65536
(M-1)2 = 65025

Clculo con FFT


M 5 3 log 2 M = 7424
6 M 1 log 2 M = 13824

Clculo de la salida mediante la DFT


x[n]

X[k]

h[n]

H[k]

1
86

Y[k]

y[n]

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Filtrado FIR por solapamiento y suma con DFT


L

x1 n

P1
ceros
x2 n

P1
ceros
x3 n

y1 n

P 1 puntos
que se suman
y 2 n

P 1 puntos
que se suman
y 3 n

87

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Filtrado FIR por solapamiento y almacenamiento con DFT

x1 n

P-1

P1
ceros

x2 n

x3 n

y1 n

P1
puntos
que se
desprecian

y 2 n

P1
puntos
que se
desprecian

y 3 n

P1
puntos
que se
desprecian

88

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

15. Diseo de Filtros Digitales


El objetivo es determinar los coeficientes de la ecuacin en diferencias de
forma que el filtro cumpla un esquema de tolerancias

y n b0 x n b1 x n 1 ...b M x n M
a1 y n 1...a N y n N

Al disear un filtro pasa bajas se puede exigir que la curva de la magnitud de la


respuesta en frecuencia cumpla las especificaciones dadas en el esquema

|H(ej)|
1+p
1
1-p
r
0

H e j

dB

-p

-r

89

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Mtodos de Diseo de Filtros


Filtros IIR
A partir de filtros analgicos
Invarianza impulsional
Transformacin bilineal
Aproximacin de derivadas
Mtodo directo
Minimizacin del error cuadrtico medio
Filtros FIR
Por enventanado
Por optimizacin
Por muestreo de la respuesta frecuencial

Diseo de un filtro digital a partir de un filtro analgico

Esquema de Tolerancias del Filtro Digital

Paso 1
Esquema de Tolerancias del Filtro Analgico

Paso 2
Funcin de Transferencia del Filtro Analgico
Ha(s)

Paso 3
Funcin de Transferencia del Filtro Digital
H(z)

Paso 4
Ecuacin en Diferencias
90

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Filtro de Butterworth

|H(j)|, dB
p

-p

-r

10r

10 1
log p

10
10 1

N
r

2 log

p

p
p

10
10 1

1
2N

sk C
sk

N 1 k 2

2N
k 0,1,2,..., N 1

H a s

|Ha(j)|
1

CN

1
2

s s
k

k 1

0
91

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Filtro de Chebyshev

|H(j)|, dB
p
0

10

10

1
1
cosh

p
10
10 1

N

cosh 1 r

p

-p

-r
p

10 10 1

a 12 N
1

1 1 2
N1

b 12 N
1

N1

sk a p cos k j b p sen k

N 1 k 2
2N

; k 0,1,..., N 1

K:
1
, N par

2
1
H a 0
1,
N impar

|Ha(j)|
1
1-p

H a s

K
N

s s
k

k 1

92

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Clculo del Coeficiente K de la Funcin de Transferencia

K:

|Ha(j)|
1

1
, N par

H a 0 1 2
1,
N impar

1-p

0
H a s

H a j 0

1
, N par

1 2
1,
N impar

s s

1
, N par

H a 0 N
1 2
N impar
sk 1,

k 1

k 1

N
1
sk , N par

2
K N1 k 1
s ,
N impar
k
k 1

Invarianza Impulsional
Se basa en el muestreo de la respuesta impulsional del filtro analgico

h n T h a nT
Paso 1
Al pasar de las especificaciones del filtro digital a las especificaciones del filtro
analgico basta hacer :

Relacin entre los polos del filtro analgico y los polos del filtro digital
N

H a s

Ak

k 1 ss k

ha t Ak e sk t u t
k 1

93

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

h n T h a nT T A k e s k nT u nT
k 1

T A k e s k T
k 1

n u n

Ak

H zT

k 1 1e s k T

z 1

Los polos del filtro digital son :

s
p k e k T e T Re S k e jT Im S k

Si Resk 0

pk 1

En consecuencia, si el filtro analgico es estable, entonces el filtro digital ser


tambin estable.
Como Ha(j) nunca es perfectamente limitada en frecuencia, se produce
superposicin espectral. Por ello, este mtodo no se aplica a filtros pasa altas ni
supresores de banda.

Paso 3

Ba s

H a s

H z

Aa s
Residue()

H a s

Ak

h a t Ak e
k 1

s k t

A z

Residuez()

Ak

H zT

k 1 1e s k T z 1

k 1 ss k

B z

h n T A k e s k T

u t

k 1

94

n u n

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Ejemplo 31
A partir de un filtro analgico de Butterworth disear un filtro digital IIR pasa
bajas, por Invarianza Impulsional, con las especificaciones :

H e j , dB

0,2 0,3

0
-1

-15

r 15

p 1

H a j

0.2
T

p r

0.3
T

r
H a s

CN

N 5.89

s s

N 6

k 1

s1, 6

0.703 j 180 75
e
T

s2 , 5
95

0.703
T

0.703 j 180 45
e
T

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

0.703 j 18015
e
T
6
0.703

H a s
s s1 ... s s6

s3, 4

H a s

A6
A1
...
s s1
s s6

A1, 6 0.144 j 0.249 T


A2,5 1.07 T
A3, 4 0.927 j1.61 T

A6
A1
H z T
...
1 z z 1
1 z 6 z 1

z1, 6 e

s1, 6T

0.649 j 0.524

z 2,5 e

s 2 , 5T

0.535 j 0.290

z 3, 4 e

s3 , 4T

0.499 j 0.092

%****************************************************
% Diseo de un filtro digital a partir de un filtro
% analogico de Butterworth por Invarianza Impulsional
%****************************************************
% Reinicializar el ambiente
clear;clf;
ap=1;
ar=15;
wp=0.2*pi;
wr=0.3*pi;
% PASO 1
T=1;
Wp=wp/T;
Wr=wr/T;
% PASO 2
% Hallamos la orden del filtro
N=(log10(((10^(ar/10))-1)/((10^(ap/10))-1)))...
/(2*log10(Wr/Wp));
N=ceil(N);
N=N
% Hallamos la frecuencia de media potencia
Wc=(Wp)/(((10^(ap/10))-1)^(1/(2*N)));
% Hallamos los polos del filtro analogico
theta= (pi*(N+1)+2*pi*[0:N-1])./(2*N);
j=sqrt(-1);
sk=Wc*cos(theta)+j*Wc*sin(theta);
% Funcion de transferencia del filtro analogico
96

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

B=[ Wc^(N)];
A=poly(sk);
% PASO 3
% Expandimos en fracciones parciales
[R,P,K] = residue(B,A);
% Hallamos los polos del filtro digital
pk=exp(P*T);
[b,a] = residuez(R,pk,K);
% PASO 4
b=real(b)
a=real(a)
% Graficar la magnitud de la respuesta en frecuencia
W=[0:pi/50:0.35*pi];
H=freqz(b,a,W);
Hdecibelios=20*log10(abs(H));
plot(W/pi,Hdecibelios);
grid; title('Respuesta en frecuencia');
ylabel('|H(e^jw)|, db'); xlabel('w/pi');
Respuesta en frecuencia

|H(e^jw)|, db

-5

-10

-15

-20

-25
N =
b =
a =
yn

0.05

6
0.0000 0.0006
1.0000 -3.3635
= 0.0000*xn +
+ 0.0161*xn-3
+ 0*xn-6 +
+ 3.3635*yn-1
- 2.1066*yn-4

0.1

0.15

w/pi

0.2

0.25

0.3

0.35

0.0101 0.0161 0.0041 0.0001 0


5.0684 -4.2759 2.1066 -0.5706 0.0661
0.0006*xn-1 + 0.0101*xn-2 +
+ 0.0041*xn-4 + 0.0001*xn-5 +
- 5.0684*yn-2 + 4.2759*yn-3 +
+ 0.5706*yn-5 - 0.0661*yn-6

97

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Transformacin Bilineal
Para obtener la funcin de transferencia del filtro digital a partir de la funcin
de transferencia del filtro analgico se aplica la transformacin

H z H a s

1 z 1
s T2
1 z 1

Correspondencia entre el plano S y el plano Z

2
T

Plano S

Plano Z

El eje imaginario del plano S es mapeado en la circunferencia unitaria del


plano Z :
j
j

2
2
T
2
T
j

ze

j j T2 tan2
Paso1

1 e
1 e

j tan

2
tan
T
2
|H(ej)|

|Ha(j)|

0
98

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

La transformacin bilineal inversa es :

1 T s
2
1 T
2

A cada polo y a cada cero de Ha(s) aplicamos esta transformacin y


encontramos los polos y los ceros de H(z)
N

H z A

z z
k

k 1
N

z p
k

k 1

El coeficiente A se calcula de la condicin :

H e j

H a j

Clculo del coeficiente A al usar el Filtro Analgico de Chebyshev de tipo I

H e j

H a j

H 1 H a 0

1
, N par

H 1 H a 0 1 2
1,
N impar
N

1 z

1
, N par

H 1 A
1 2
N impar
1 pk 1,
k

k 1
N

k 1

1 pk

k N1
, N par
2
1
1 zk

k 1
A N
1 pk
k 1
,
N impar
N
1 z k
k 1

99

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Ejemplo 32
A partir de un filtro analgico de Chebyshev tipo I disear un filtro digital IIR
pasa bajas, por Transformacin Bilineal, con las especificaciones :

H e j , dB

0,2 0,3

0
-1

-15

p 1

r 15
H a j

0.2 0.650
p T2 tan
T
2
0.3 1.02
r T2 tan
T
2

p r

100

Curso: Procesamiento Digital de Seales

H a s

Profesor: Wildor Ferrel Serruto

N 3.02

K
N

s s

N 4
0.044
K
T4

k 1

s1, 4

0.219 j 0.265
T

s2 , 3

0.091 j 0.640
T

0.044
T4
H a s
s s1 s s2 s s3 s s4

H z H a s s 2 1 z
T

s sk

2
T

1 z 1

z 1
sk
z 1

2
T

2
T

1 z 1
1 z 1

2
T

z 1
z 1

z 1 T s k z 1
2

z 1

1 T s k z 1 T s k
2
2
2
z 1

0.044
T4

Hz

1 T2 s k z 1 T2 s k

16 4

4
T k 1

Hz

z 1

0.044
z 1 z 1 z 1 z 1
4
T

1 T2 s k z 1 T2 s k

16 4

4
T k 1

Los polos del filtro digital son :


Los ceros del filtro digital son :

pk

1 T s k
2
1 T s k
2

z 1 , 2 , 3 , 4 1
101

1 T s
2
1 T s
2

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

%******************************************
% Diseno de un filtro digital
% a partir del filtro de Chebyshev I
% por transformacion bilineal
%******************************************
% Reinicializar el ambiente
clear;clf;
ap=1;
ar=15;
wp=0.2*pi;
wr=0.3*pi;
% PASO 1
Wp=2*tan(wp/2);
Wr=2*tan(wr/2);
% PASO 2
% Hallamos el orden del filtro
N=acosh(sqrt((10^(ar/10)-1)...
/ (10^(ap/10)-1))) / acosh(Wr/Wp);
N=ceil(N);
N=N
% Hallamos los polos del filtro analogico
epsilon=sqrt(10^(ap/10)-1);
j=sqrt(-1);
angulos=( pi*(N+1) + [0:N-1]*2*pi )./(2*N);
alfa=(epsilon^(-1)) + sqrt(1+epsilon^(-2));
aa=(1/2)*( (alfa^(1/N)) - (alfa^(-1/N)) );
bb=(1/2)*( (alfa^(1/N)) + (alfa^(-1/N)) );
sk=aa*Wp*cos(angulos)+j*bb*Wp*sin(angulos);
% Hallamos la constante multiplicativa k preliminar
if rem(N,2)==1
K=1;
else
K=1/sqrt(1+epsilon^2);
end
% PASO 3
% Hallamos los polos y zeros del filtro digital
pk=(1+sk/2)./(1-sk/2);
zk=-1*ones(1,N);
A=K*prod(ones(1,N)-pk)/prod(ones(1,N)-zk);
% PASO 4
% Coeficientes del filtro digital
b=A*poly(zk);
a=poly(pk);
a=real(a)
b=real(b)
102

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

% GRAFICO
W=[0:pi/50:0.45*pi];
H=freqz(b,a,W);
Hdecibelios=20*log10(abs(H));
plot(W/pi,Hdecibelios);
grid; title('Respuesta en frecuencia');
ylabel('|H(e^jw)|, db');
xlabel('w/pi');
Respuesta en frecuencia
0
-5
-10

|H(e^jw)|, db

-15
-20
-25
-30
-35
-40
-45
0

N
b
a
y

0.05

0.1

0.15

0.2

0.25
w/pi

0.3

= 4
=
0.0018
0.0073
0.0110
0.0073
=
1.0000
-3.0543
3.8290
-2.2925
n = 0.0018*xn+0.0073*xn-1+0.0110*xn-2+
+0.0073*xn-3+0.0018*xn-4+
+3.0543*yn-1-3.8290*yn-2+
+2.2925*yn-3-0.5507*yn-4

103

0.35

0.0018
0.5507

0.4

0.45

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Mtodo de Enventanado
Un filtro pasa bajas ideal tiene respuesta en frecuencia:

Hi (e j)
1

-C

La respuesta impulsional es :

hi [n]
1/4

hi n

senC n
n

...

...
n

hi [n]

1/4

...

...
0
w [n]

Ventana
Rectangular

hn hi n wn

h [n]

1/4

104

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Operacin en el Dominio Temporal

senC n
n
1, N21 n N21
wn
0, c.c.

hn hi n wn

hi n

Ventana Rectangular
Respuesta al impulso real

senC n

, N21 n
hn n
0, c.c.

N 1
2

Operacin en el Dominio Frecuencial


Hi (ej)

W (ej)

-C

H (ej)

H e j H i e j W e j

W e j

senN 2
sen 2
-

DTFT de la Ventana

|W (ej)|

A
-

105

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

- Ancho del lbulo principal


A - Amplitud mxima de los lbulos secundarios, relativa al lbulo principal
En la ventana rectangular tenemos :
A= -13 dB
4
N

Aproximacin de la Respuesta Frecuencial Ideal

|H (ej)|

|Hi (ej)|

1+
1-

W (e j( - ) )

Cuando aumenta el tamao de la ventana se reduce la banda de transicin;


sin embargo, la amplitud del risado no disminuye (efecto de Gibbs).
- Error mximo entre H(ej) y Hi (ej) para cualquier valor de N es = -21 dB

Ejemplos de ventanas

w [n]

Ventana Rectangular

wn 1, 0 n N 1

w [n]

Ventana de Bartlett o Triangular

2Nn11 ,
wn
2 n 1
2

,
N 1

0n
N 1
2

N 1
2

n N 1
106

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

w [n]
1

Ventana de Hanning

wn 12 12 cos

2 n 1
N 1

, 0 n N 1
w [n]
1

Ventana de Hamming

wn 0,54 0,46 cos

, 0 n N 1
2 n
N 1

w [n]

1
Ventana de Blackman

wn 0,42 0,5 cos

2 n 1
N 1

0,08 cos

4 n 1
N 1

w [n]

=4

Ventana de Kaiser
0

2
I 0 1 n
, 0 n N 1
wn
I 0

N 1 2,

I 0 . es funcin de Bessel

107

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Tabla comparativa

A, dB

, dB

Rectangular

-13

4/N

-21

1,81/N

Bartlett

-25

8/N

-25

1,33

2,37/N

Hanning

-31

8/N

-44

3,86

5,01/N

Hamming

-41

8/N

-53

4,86

6,27/N

Blackman

-57

12/N

-74

7,04

9,19/N

Ventana

p/ Kaiser de Kaiser

Procedimiento de diseo por enventanado buscando utilizar la ventana ms


simple
1. Dado el esquema de tolerancias, se especifica la magnitud de la respuesta
en frecuencia ideal

|Hi (ej)|
1+p
1-p
r
0
2.
3.
4.
5.
6.

Hallar hi [n]
Escoger una ventana con error mximo inferior a las tolerancias
Calcular N y redondear hacia arriba
Obtener el filtro h [n] = hi [n] wi [n]
Verificar si las tolerancias son satisfechas:
o Si no satisface, aumentar N e ir al paso 5 hasta que satisfaga
o Si satisface, reducir N e ir al paso 5 mientras satisface

108

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Ejemplo 33
Disear un filtro pasa-bajas que cumpla las especificaciones

|Hi (e j)|

1 + 0,02
1 - 0,02
0,01
0

0,2

0,3

1. Trazamos la magnitud de la respuesta en frecuencia ideal

|Hi (e j)|

1 + 0,02
1 - 0,02
0,01
0
2. Hallamos hi [n] :

0,2

0,3

C p r 2

hi n

sen0.25n
n

3. Escogemos una ventana con error mximo inferior a las tolerancias :

min r , p 0,01

20 log 0,01 40dB


Hanning, Hamming o Blackman
4. Calculamos N:
N r8 p
8N r p ;

N 80

%********************************************
% Diseo de un filtro digital por Enventanado
%********************************************
% Reinicializar el ambiente
clear;clf;
% PASO 1
deltap=0.02;
deltar=0.01;
wp=0.2*pi;
wr=0.3*pi;
% PASO 2
wc=(wp+wr)/2;
% PASO 3
delta=min(deltar,deltap);
deltadB=20*log10(delta)
109

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

% PASO 4
N=8*pi/(wr-wp);
N=ceil(N);
if rem(N,2)==1 %Para filtros LP no es necesario
N=N
else
N=N+1
end
%N=N-20
% PASO 5
% Formamos la Ventana de Hanning
w = hanning(N);
w=w';
n=[0:N-1];
stem(n,w);
grid; title('Ventana de Hanning');
ylabel('w[n]'); xlabel('n');
% Respuesta Impulsional Ideal
pause;
hi=(sin(wc*(n-(N-1)/2)))./((n-(N-1)/2)*pi);
hi(((N-1)/2)+1)=wc/pi;
stem(n,hi);
grid; title('Respuesta Impulsional Ideal');
ylabel('hi[n]'); xlabel('n');
% Respuesta Impulsional del Filtro
pause;
h=hi.*w;
stem(n,h);grid;
title('Respuesta Impulsional del Filtro');
ylabel('h[n]'); xlabel('n');
% Formamos los coeficientes de la Ecuacin
b=h;
a=zeros(1,N);
a(1)=1;
% Graficamos la magnitud de la
% respuesta en frecuencia
W=[0:pi/400:0.4*pi];
H=freqz(b,a,W);
Hdecibelios=20*log10(abs(H));
pause;
plot(W/pi,Hdecibelios);
grid; title('Respuesta en frecuencia');
ylabel('|H(e^jw)|, db'); xlabel('w/pi');

110

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Ventana de Hanning

1
0.9
0.8

w[n]

0.7
0.6
0.5
0.4
0.3
0.2
0.1
0

10

20

30
n
Respuesta Impulsional Ideal

40

50

60

0.25
0.2

hi[n]

0.15
0.1
0.05
0

-0.05
-0.1

10

20

30
n

40

50

60

40

50

60

Respuesta Impulsional del Filtro


0.25

0.2

h[n]

0.15

0.1

0.05

-0.05

10

20

30
n

111

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Respuesta en frecuencia
20

|H(e^jw)|, db

-20

-40

-60

-80

-100

0.05

0.1

0.15

0.2
w/pi

0.25

0.3

0.35

0.4

b =
0.0000
-0.0001
0.0000
0.0003
0.0008
0.0008
0.0000
-0.0015
-0.0028
-0.0025
0.0000
0.0039
0.0066
0.0056
0.0000
-0.0079
-0.0131
-0.0108
0.0000
0.0147

0.0243
0.0202
0.0000
-0.0283
-0.0483
-0.0422
0.0000
0.0733
0.1575
0.2245
0.2500
0.2245
0.1575
0.0733
0.0000
-0.0422
-0.0483
-0.0283
0.0000
0.0202

0.0243
0.0147
0.0000
-0.0108
-0.0131
-0.0079
0.0000
0.0056
0.0066
0.0039
0.0000
-0.0025
-0.0028
-0.0015
0.0000
0.0008
0.0008
0.0003
0.0000
-0.0001

0.0000

Diferencias entre Filtros FIR e IIR

Los filtros IIR producen en general distorsin de fase, es decir la fase no es


lineal con la frecuencia.
Los filtros FIR son de fase lineal.
El orden de un filtro IIR es mucho menor que el de un filtro FIR para una
misma aplicacin.
Los filtros FIR son siempre estables.

112

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Diseo mediante la ventana de Kaiser


2
I 0 1 n
, 0 n N 1
wn
I 0

N 1 2,

I 0 . es funcin de Bessel

Para calcular el parmetro de forma hacemos:


(
) Parmetro de ondulacin.
( ) - Atenuacin real en la banda de supresin.
(
)
{
(
)
(
)

%******************************************************
% Diseo de un filtro pasa-bajas empleando la ventana de Kaiser

%******************************************************
close all; clear all;
%PASO 1
wp=0.2*pi
wr=0.3*pi
deltap=0.02
deltar=0.01
delta=min(deltap,deltar)
%PASO2
wc=(wp+wr)/2
%PASO3
deltaw=wr-wp
A=(-1)*20*log10(delta)
if A<21 beta=0
elseif A<=50
beta=0.5842*((A-21)^(0.4))+0.07886*(A-21)
else
beta=0.1102*(A-8.7)
end
N=((A-8)/(2.285*deltaw))+1
N=ceil(N)
if rem(N,2)==1
N=N
else
N=N+1
end
alfa=(N-1)/2
%PASO 4
wkaiser=kaiser(N,beta)
w=wkaiser'
113

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

n=0:N-1;
hi=(sin(wc*(n-alfa)))./(pi*(n-alfa))
hi(((N-1)/2)+1)=wc/pi;
x=length(hi)
y=length(w)
h=hi.*w
% Formamos los coeficientes de la Ecuacin
b=h;
a=zeros(1,N);
a(1)=1;
% Graficamos la magnitud de la
% respuesta en frecuencia
W=[0:pi/400:0.4*pi];
H=freqz(b,a,W);
Hdecibelios=20*log10(abs(H));
plot(W/pi,Hdecibelios);
grid; title('Respuesta en frecuencia');
ylabel('|H(e^jw)|, db'); xlabel('w/pi');
Respuesta en frecuencia
10

-10

|H(ejw)|, db

-20

-30

-40

-50

-60

-70

-80

0.05

0.1

0.15

0.2
w/pi

0.25

0.3

0.35

0.4

%******************************************************
%Diseo de un filtro pasa-altas empleando la ventana de Kaiser

%******************************************************
close all; clear all;
%PASO 1
wp=0.5*pi
wr=0.35*pi
deltap=0.021
deltar=0.021
delta=min(deltap,deltar)
%PASO2
wc=(wp+wr)/2
%PASO3
deltaw=wp-wr
A=(-1)*20*log10(delta)
if A<21 beta=0
114

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

elseif A<=50
beta=0.5842*((A-21)^(0.4))+0.07886*(A-21)
else
beta=0.1102*(A-8.7)
end
N=((A-8)/(2.285*deltaw))+1
N=ceil(N)
if rem(N,2)==1
N=N
else
N=N+1
end
alfa=(N-1)/2
%PASO 4
wkaiser=kaiser(N,beta)
w=wkaiser'
n=0:N-1;
hi=(sin(wc*(n-alfa)))./(pi*(n-alfa))
%hi(((N-1)/2)+1)=wc/pi;
hi=(-1)*hi
hi(((N-1)/2)+1)=1-(wc/pi)
h=hi.*w
% Formamos los coeficientes de la Ecuacin
b=h;
a=zeros(1,N);
a(1)=1;
% Graficamos la magnitud de la
% respuesta en frecuencia
W=[0.2*pi:pi/400:pi];
H=freqz(b,a,W);
Hdecibelios=20*log10(abs(H));
plot(W/pi,Hdecibelios);
grid; title('Respuesta en frecuencia');
ylabel('|H(e^jw)|, db'); xlabel('w/pi');

Respuesta en frecuencia
10

-10

-20

|H(ejw)|, db

-30

-40

-50

-60

-70

-80

-90
0.2

0.3

0.4

0.5

0.6
w/pi

115

0.7

0.8

0.9

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Mtodo de muestreo en frecuencia


Se obtiene , - muestreando la respuesta en frecuencia deseada en puntos
equiespaciados en el dominio de la frecuencia.

Ejemplo 34
Disear un filtro pasa-bajas con frecuencia de corte
Solucin
Tomamos 10 muestras (
) dentro de un periodo de la respuesta en
frecuencia ideal:
| , -| *
+
(
)
, Para que la respuesta al impulso , - sea real, , - debe ser conjugada
simtrica con respecto a
.
, , , , , , , , , , , , , , Ahora calculamos la DFT inversa:
clear;clf;
j=sqrt(-1);
H0=1;
H1= exp((-1)*j*0.9*pi);
H2= exp((-1)*j*1.8*pi);
H3=0; H4=0; H5=0; H6=0; H7=0;
H8=conj(H2);
H9=conj(H1);
H=[H0 H1 H2 H3 H4 H5 H6 H7 H8 H9];
h=ifft(H)
W=[0:2*pi/100:2*pi];
H=freqz(h,1,W);
plot(W/pi,abs(H));grid;
1.4
1.2
1
0.8
0.6
0.4
0.2
0 0

0.2

0.4

0.6

0.8

116

1.2

1.4

1.6

1.8

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

El resultado es:

h = [0.0716 -0.0794 -0.1000 0.1558 0.4520 ...


0.4520 0.1558 -0.1000 -0.0794 0.0716]
Cerca a la frecuencia de corte hay una sobre-elongacin; para reducirla
podemos hacer , -

clear;clf;
j=sqrt(-1);
H0=1;
H1= exp((-1)*j*0.9*pi);
H2= 0.5*exp((-1)*j*1.8*pi);
H3=0; H4=0; H5=0; H6=0; H7=0;
H8=conj(H2);
H9=conj(H1);
H=[H0 H1 H2 H3 H4 H5 H6 H7 H8 H9];
h=ifft(H)
W=[0:2*pi/100:2*pi];
H=freqz(h,1,W);
plot(W/pi,abs(H));grid;
1.4
1.2
1
0.8
0.6
0.4
0.2
0 0

0.2

0.4

0.6

0.8

1.2

1.4

1.6

1.8

El resultado es:

h = [-0.0093 -0.0485 0.0000 0.1867 0.3711 ...


0.3711 0.1867 0
-0.0485 -0.0093]

117

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

%Diseo de filtro pasabajas


N=20;
wc=0.8*pi;
gana1=zeros(1,(N/2)+1);
for i=1:(N/2)
if 2*(i-1)*pi/N<wc
gana1(i)=1;
end;
if 2*(i-1)*pi/N==wc
gana1(i)=0.5;
end;
end;
k=[0:N/2];
fase1=((-1)*(N-1)*k*pi)/N;
m=(N/2)-1;
for i=2:(N/2)
fase2(m)=fase1(i);
gana2(m)=gana1(i);
m=m-1;
end;
fase=[fase1 (-1)*fase2];
magnitud=[gana1 gana2];
HH=magnitud.*exp(j*(fase));
h=ifft(HH)
W=[0:2*pi/2000:2*pi];
H=freqz(h,1,W);
plot(W/pi,abs(H));grid;

118

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

Filtro Adaptativo
Cancelacin de ruido con filtro adaptativo

Seal y
Ruido

, -

, -

, -

, -

ADC

+
, -

Ruido

, ADC

Filtro Adaptativo
, , -

Algoritmo LMS
, - , -

%---------------------------------% Filtrado Adaptativo


% Algoritmo LMS
%---------------------------------close all; clear all;
[s, fs] = wavread('arch_voz.wav');
s=s';
N=length(s)
t=0:1:N-1;
t=t/fs;
x=0.8*(rand(1,N)-0.5);
n=filter([0 0 0 0 0 0.5],1,x);
d=s+n;
mu=0.01;
Nw=31;
w=zeros(1,Nw);
y=zeros(1,N);
e=y;
for m=Nw+1:1:N-1
sum=0;
for i=1:1:Nw
sum=sum+w(i)*x(m-i+1);
end
119

DAC

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

y(m)=sum;
e(m)=d(m)-y(m);
for i=1:1:Nw
w(i)=w(i)+2*mu*e(m)*x(m-i+1);
end
end
subplot(2,1,1);
plot(t,s);grid;title('Seal original');
subplot(2,1,2);
plot(t,d);grid;title('Seal original + Ruido');
pause;
subplot(2,1,1);
plot(t,s);grid;title('Seal original');
subplot(2,1,2);
plot(t,e);grid;title('Seal restaurada');
wavwrite(d,'arch_voz_ruid.wav');
wavwrite(e,'arch_voz_rest.wav');
Seal original
0.15
0.1
0.05
0
-0.05
-0.1
0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.5

0.6

0.7

0.5

0.6

0.7

Seal original + Ruido


0.3
0.2
0.1
0
-0.1
-0.2
-0.3
-0.4

0.1

0.2

0.3

0.4

Seal restaurada
0.2
0.1
0
-0.1
-0.2

0.1

0.2

0.3

0.4

120

Curso: Procesamiento Digital de Seales

Profesor: Wildor Ferrel Serruto

ANEXO
Tablas de Transformadas tomadas de
OPPENHEIM A. V., SCHAFER R.W. Tratamiento de Seales en Tiempo Discreto.

121

PROCESAMIENTO DIGITAL DE SEALES - TABLAS DE TRANSFORMADAS

Transformada Z

121

PROCESAMIENTO DIGITAL DE SEALES - TABLAS DE TRANSFORMADAS

122

PROCESAMIENTO DIGITAL DE SEALES - TABLAS DE TRANSFORMADAS

DTFT

123

PROCESAMIENTO DIGITAL DE SEALES - TABLAS DE TRANSFORMADAS

124

PROCESAMIENTO DIGITAL DE SEALES - TABLAS DE TRANSFORMADAS

125

PROCESAMIENTO DIGITAL DE SEALES - TABLAS DE TRANSFORMADAS

DFS

126

PROCESAMIENTO DIGITAL DE SEALES - TABLAS DE TRANSFORMADAS

DFT

127

Você também pode gostar