Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2019-B-PDS-CAP-01-Señales y Sistemas PDF
2019-B-PDS-CAP-01-Señales y Sistemas PDF
Ventajas
Inmunidad a ruido (mayor precisión).
Implementación por software (mayor flexibilidad).
Realización de funciones que no son posibles en procesamiento analógico de
señales
Desventaja
Pérdida de información por muestreo
Error de redondeo por cuantización
Velocidad de adquisición de datos y procesamiento
1
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto
0
0 2
Competencias específicas
De las clases de teoría:
Conocer, comprender y aplicar modelos, algoritmos y herramientas matemáticas
que se usan para describir el comportamiento de sistemas de procesamiento
digital de señales.
Conocimientos previos
Fundamentos de cálculo. Algebra de números complejos. Análisis de Fourier de
tiempo continuo. Filtros analógicos. Programación en MATLAB. Programación en C.
T T
STD-Sistema de Tiempo Discreto
T T
3
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto
Dominio Temporal
st t n T
n
x s t x c t s t
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
1
X s j X c j S j
2
X s j
1
2
X c j k T
T k
s 2
; T
1
X s j X c j k s
T k
X C j
-S 0 S
4
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto
X S j
1
𝑇
Filtro Antisolapamiento
Haa(j)
T T
Ejemplo 1
La frecuencia de muestreo es 44.1 kHz. El filtro anti-solapamiento usado es un filtro de
Butterworth pasa-bajas con frecuencia de corte de 4 kHz. El nivel de solapamiento en la frecuencia de
corte debe ser menor o igual a 1%. Determine el orden del filtro anti-solapamiento.
Para el filtro de Butterworth la magnitud de la respuesta en frecuencia es:
1
|𝐻(𝑗Ω)| =
2n
√1 + ( Ω )
Ω𝑐
H j
-S 0 C S
5
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto
n 1 2 3
Nivel de solapamiento (%) 14.04 1.41 0.14
El orden mínimo que satisface el nivel de solapamiento es 3.
Secuencias básicas
0 n
Escalón unitario u[n]
1
...
0 n
Secuencia exponencial x[n]
x n A n , n ;
A, R; A, 0
0 1
0 n
1 x[n]
0 n
Secuencia senoidal x[n]
x n Asen0n , n
0 n
6
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto
0 1 2 3 4 5 6 7 8 n
Representación MATLAB
x = [1.6 2.22 2.3 2.5 2.3 2.2 1.8 1.3 1.4 0.83]
Operaciones básicas
Sean x1n y x2 n dos secuencias,
Adición y n x1 n x2 n
Multiplicación de dos secuencias y n x1 n x2 n
Multiplicación por un escalar y n x2 n
Producto interno y x1 n x2 n x1 nx2 n
Desplazamiento nd 0 y n x1 n nd
x1[n]
0 n
x1[n - nd]
0 n
x1[n + nd]
0 n
7
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto
Ejemplo 2
Dadas las secuencias x1 n y x2 n , escribir un programa en MATLAB para determinar y graficar:
3 3
2 2
1 1
0 n 0 n
%************************************************
% Programa Matlab para el Ejemplo 1
%************************************************
% Reinicializar el ambiente
clear all; close all;
% Generar las secuencias
x1=[1 2 3 4 3 2 1 0 0];
x2=[4 3 2 1 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,9);
x5(3:9)=x1(1:7);
% Graficar x1,x2,x3
n=0:8;
subplot(3,1,1);
stem(n,x1); grid;
ylabel('x1'); xlabel('n');
subplot(3,1,2);
stem(n,x2); grid;
ylabel('x2'); xlabel('n');
subplot(3,1,3);
stem(n,x3); grid;
title('Adicion'); ylabel('x3'); xlabel('n');
pause;
% Graficar x1,x2,x4
subplot(3,1,3);
stem(n,x4); grid;
title('Multiplicacion'); ylabel('x4'); xlabel('n');
pause;
% Graficar x1,x5
8
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto
subplot(2,1,1);
stem(n,x1); grid;
ylabel('x1'); xlabel('n');
subplot(2,1,2);
stem(n,x5); grid;
title('Dezplazamiento'); ylabel('x5'); xlabel('n');
Relaciones importantes
La secuencia escalón unitario se expresa a través de la secuencia impulso unitario
de la siguiente forma :
n
u n m
m
A su vez, la secuencia impulso unitario se expresa a través de la secuencia escalón
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
m
n1 n2 n
...
n1 n
b) Secuencia izquierda
9
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto
n1 / x n 0, n n1 y n2 / x n 0, n n2
...
n2 n
c) Secuencia bilateral
n1 / x n 0, n n1 y n2 / x n 0, n n2
... ...
Secuencia periódica
xn es periódica N / xn xn N n
10
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto
oscilaciones. Sin embargo, cuando la frecuencia aumenta de a 2 las oscilaciones se hacen más lentas.
Las frecuencias en la vecindad de 0 2 k se llaman bajas frecuencias, mientras que las
void main()
{
comm_intr(); // init DSK, codec, SP0 for interrupts
while(1); // wait for an interrupt to occur
}
Figura 2-1. Programa de generación de onda senoidal
x[n] y[n]
-2 -1 0 1 2 n -1 0 n
12
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto
Tipos de sistemas
Criterio
Causalidad Sistema causal Sistema no causal
La salida depende de valores pasados y/o del valor
presente de la entrada.
Estabilidad Sistema estable. Sistema inestable
A toda secuencia limitada de entrada le
corresponde una secuencia limitada de salida.
Lx x n Lx , n L y y n L y , n
Linealidad Sistema lineal Sistema no lineal
Sistema que cumple con el principio de
superposición.
T ax1 n bx 2 n aT x1 n bT x 2 n
Invarianza Sistema invariante en el tiempo Sistema variante en
en el tiempo Un desplazamiento en el tiempo de la secuencia el tiempo
de entrada produce el mismo desplazamiento de
la secuencia de salida.
T x n y n T x n nd yn n
d
x n
y n
h n
yn x m h n m
m
13
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto
Ejemplo 3
La secuencia x n es aplicada a la entrada de un sistema LTI. Encontrar la secuencia de salida, si
x[n] h[n]
4
3
2
1 1
0 n 0 n
1 3 0 2
2 1 3
3 1 2 y[0]= 2
3 1 2 y[1]= 7
3 1 2 y[2]= 6
3 1 2 y[3]= 13
3 1 2 y[4]= 2
3 1 2 y[5]= 3
Convolución lineal
Es la operación efectuada sobre secuencias :
x1 n x 2 n x m x n m
m
1 2
Propiedades de la convolución
Conmutativa
Asociativa
Distributiva
h1 n h2 n
≡ h1 n h2 n
14
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto
h1 n
+ ≡ h1 n h2 n
h2 n
Secuencia de salida:
yn x r n rL * hn x r n rL* hn yn y r n rL
yn xn* hn ; r 0 r 0
; r 0
y n x n * h n
r r
Bloque de salida: L P 1 L P
hallar la salida si xn n, si las condiciones iniciales son: y 1 0 , y 2 0
Solución:
15
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto
2
y0 0 2 0 0 0
2
2 2
y1 1 2 0 0
2 2
2 2
y2 0 2 0 1
2 2
2 2 2
y3 0 2 1
2 2 2
2 2
y4 0 2 1 0
2 2
2 2 2
y5 0 2 0
2 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 0 0 0
2 2
Dada la ecuación en diferencias:
y n b 0 x n b1 x n 1 ... b M x n M
a 1 y n 1 ... a N y n N
(1)
Despejamos y n N :
b0 b1 bM
y n N x n x n 1 ... x n M
aN aN aN
1 a1 a N 1
y n y n 1 ... y n N 1
aN aN aN
(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 ,
Suficiencia
h n
Demostraremos que, si n entonces el sistema es estable
Sea x n acotada,
x n Lx
.
Luego,
y n x k h n k
k =
x n k h k x n k h k Lx h k
= k k k
y n Lx h k h n
k . Si n
entonces y n es acotada. En consecuencia,
el sistema es estable.
Necesidad
Demostraremos que, si h n entonces el sistema no es estable.
n
h n , si h n 0
x n h n
0, si h n 0
x n es acotada, ya que x n 1 .
La salida es: y n x k h n k
k
Para n 0 , tenemos:
17
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto
h k h 2 k
y 0 x k h k = h k =
k k h k k h k
y 0 h k
k
Si h n , entonces h k .
n k
Relación importante
𝑁2
∝𝑁1 −∝𝑁2+1
𝑘
∑ ∝ =
1−∝
𝑘=𝑁1
Ejemplo 5
Escriba un programa en MATLAB para efectuar las siguientes tareas :
a) Generar una secuencia senoidal x n de 200 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,4 a 0,4.
c) Obtener, por convolución, la secuencia a la salida de un sistema promedio
móvil tamaño 5 cuando a la entrada se aplica la secuencia x1 n .
d) Lo mismo del punto c) por recursión.
%****************************************************
% Programa para el Ejemplo 2
%****************************************************
% Reinicializar el ambiente
clear all; close all;
% Formar la secuencia de entrada
N=200;
n=0:N-1;
x=sin(2*pi*n/25);
% Formar la secuencia con ruido aditivo
x1=x+0.8*(rand(1,N)-0.5);
% Calcular por convolución la secuencia de salida
h=[1/5 1/5 1/5 1/5 1/5];
y_conv=conv(x1,h);
% Calcular por recursión la secuencia de salida
B=[1/5 1/5 1/5 1/5 1/5];
A=[1];
y_recur=filter(B,A,x1);
% Graficar las secuencias
subplot(4,1,1);
stem(n,x);
grid; ylabel('x[n]'); xlabel('n');
subplot(4,1,2);
18
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto
stem(n,x1);
grid; ylabel('x1[n]'); xlabel('n');
subplot(4,1,3);
stem(n,y_conv(1:N));
grid; ylabel('y[n]'); xlabel('n');
subplot(4,1,4);
stem(n,y_recur);
grid; ylabel('y[n]'); xlabel('n');
Ejemplo 6
Escriba un programa en MATLAB para efectuar las siguientes tareas:
a) Leer un archivo de audio.
b) Crear eco en el sonido con un retraso igual a 0.5 segundos. La ganancia de la
señal reflejada es 0.7.
c) Almacenar el archivo de audio con eco.
%****************************************************
% Programa para el Ejemplo 3
%****************************************************
clear all; close all;
[s, fs] = audioread('archivo.wav');
fs
s=s';
B=[1 zeros(1,22049) 0.7];
A=[1 ];
ss1=filter(B,A,s(1,:));
ss2=filter(B,A,s(2,:));
ss=[ss1;ss2];
ss=ss';
audiowrite('arch_con_eco_02.wav',ss,fs);
Correlación cruzada
Para las secuencias xn e yn , la secuencia
r xy n x k y k n r xy n x k n y k
k k
Se cumple que r xy n r yx n .
Comparando la expresión de la convolución xn y n xk y n k con
k
r xy n x k y k n podemos escribir r xy n x n y n
k
19
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto
Autocorrelación
Para la secuencia x n la secuencia de autocorrelación es r xx n x k x k n
k
1 M
r xy n lim xk y k n
M 2 M 1 k M
La autocorrelación de x n será:
1 M
r xx n lim x k x k n
M 2 M 1 k M
y n x n w n
x n es una secuencia periódica con periodo desconocido N ,
w n es un ruido aleatorio.
Se desea determinar el periodo N.
20
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto
1 M 1
r yy n 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:
2𝜋 2𝜋
a) Genere la señal 𝑥[𝑛] = 0.5𝑐𝑜𝑠 ( 52 𝑛) + 0.5𝑐𝑜𝑠 ( 26 𝑛) con 500 muestras.
b) Forme la señal 𝑦[𝑛] adicionando a 𝑥[𝑛] un ruido aleatorio, uniformemente
distribuido, con amplitud 1 y una media de 0.
c) Calcule 𝑅𝑥𝑥[𝑛] como la autocorrelación periódica de 𝑥[𝑛].
d) Calcule 𝑅𝑦𝑦[𝑛] como la autocorrelación periódica de 𝑦[𝑛].
%******************************************************
% Programa para el Ejemplo 4
% Aplicacion de la correlacion en la identificacion
% de una señal periódica oculta en una señal 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;
Rxx=xcorr(x,'biased');
Ryy=xcorr(y,'biased');
subplot(411);
plot(n,x);grid;
title('Secuencia original');
subplot(412);
plot(n,y);grid;
title('Secuencia con ruido');
NRxx=length(Rxx);
subplot(413);
plot(n,Rxx(((NRxx-1)/2)+1:NRxx));grid;
title('Rxx - Autocorrellacion de x ');
NRyy=length(Ryy);
subplot(414);
plot(n,Ryy(((NRyy-1)/2)+1:NRyy));grid;
title('Ryy - Autocorrellacion de y ');
21
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto
Secuencia original
1
-1
0 50 100 150 200 250 300 350 400 450 500
Secuencia con ruido
2
-2
0 50 100 150 200 250 300 350 400 450 500
Rxx - Autocorrellacion de x
0.5
-0.5
0 50 100 150 200 250 300 350 400 450 500
Ryy - Autocorrellacion de y
1
-1
0 50 100 150 200 250 300 350 400 450 500
22