Está en la página 1de 22

Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto

Procesamiento Digital de Señales


1. Introducción
Definición
Procesamiento Realizar operaciones o transformaciones
Digital mediante circuito electrónico digital (PC, DSP, FPGA, etc)
de Señales sobre funciones del tiempo y/o del espacio.

Clasificación de las señales


Por el tipo de función y el tipo de variable
 Señal analógica – Función continua de variable continua.
 Señal de tiempo discreto – Función continua de variable discreta.
 Señal digital – Función discreta de variable discreta.

Por el número de dimensiones:


 Señal unidimensional – Ejemplo: señal de voz
 Señal bidimensional – Ejemplo: imagen
 Señal multidimensional – Ejemplo: Señal de video

Implementación del PDS


 Por software, en computadores de propósito general (Ejemplo: en una PC)
 Por hardware (Ejemplo: con FPGAs)
 Por software más hardware específico para PDS (Ejemplo: con la tarjeta DSK6713
que tiene incorporado un DSP TMS320C6713)
Procesador digital de señal (DSP-Digital Signal Processor) - Dispositivo que implementa
hardware especializado para acelerar la ejecución de los algoritmos de
procesamiento digital de señales.

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

Comparación del modelado de un sistema de tiempo continuo y un


sistema de tiempo discreto
Sistema de tiempo continuo Sistema de tiempo discreto

x(t) Filtro y(t) x[n] Filtro y[n]


Analógico Digital

Ecuación diferencial Ecuación en diferencias


d yt  d N y t  yn  b0 xn  b1 xn  1    bM xn  M 
yt   c1    cN   a1 yn  1    a N yn  N 
dt dt
d xt  d M xt 
d 0 xt   d1    dM
dt dt
Función de transferencia Función de transferencia
H s  
Y s  Y z 
 H z   
X s  X z 
d 0  d1 s    d M s M b0  b1 z 1    bM z  M
1  c1s    c N s N 1  a1 z 1    a N z  N
Respuesta a una señal de entrada Respuesta a una señal de entrada
 
y  t    x    h  t    d y  n    x  m h  n  m 
 m  
Respuesta en amplitud Respuesta en amplitud
H j   H  e j 

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.

De las clases prácticas:


 Escribir programas básicos de procesamiento digital de señales en MATLAB.
 Comprobar los principios teóricos.
2
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto

De las clases de laboratorio:


 Implementar sistemas básicos de procesamiento digital de señales de tiempo real
con la tarjeta de desarrollo.

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.

2. Señales de Tiempo Discreto


Diagrama de Bloques de un Sistema de Procesamiento Digital de Señales
Analógicas

x(t) Filtro xc(t) x[n] y[n] yc(t) Filtro de yr(t)


Antisola- ADC STD DAC Recons-
pamiento trucción

T T
STD-Sistema de Tiempo Discreto

Procesamiento Digital de Señales Analógicas

xc(t) x[n] Sistema de y[n] yc(t)


C/D Tiempo Discreto D/C

T T

Modelo del Conversor C/D

xc(t) xs(t) Conversor de Tren x[n]


× de Impulsos
Ponderados a
Secuencia
s(t)

3
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto

Dominio Temporal


st     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  

Señal con Espectro no Limitado

X C  j 

-S 0 S 

4
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto

X S  j
1
𝑇

-2S -S 0 S 2S 

Filtro Antisolapamiento

xc(t) Filtro xa(t) x[n] y[n] yc(t)


Antisola- C/D Sistema de D/C
pamiento Tiempo Discreto

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 

El nivel de solapamiento en la frecuencia de corte es:


2n
√1 + (Ω𝑐 )
Ω𝑐 √2
=
2n 2n
√1 + (Ω𝑆−Ω𝑐 ) √1 + (Ω𝑆 −Ω𝑐 )
Ω𝑐 Ω𝑐

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

Impulso unitario [n]


1

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  Asen0n   , n

0 n

6
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto

Representación gráfica de las señales de tiempo discreto


2.5
x[n] 2.3
2.22 2.3 2.2
1.8
1.6
1.4
1.3
0.83

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 x1n 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 nx2 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:

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 .
c) La secuencia x5  n obtenida mediante el desplazamiento de x1 n a la izquierda en 2 unidades
de tiempo.
x1[n] 4 4 x2[n]

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 :

xn    x  m   n  m 
m  

Clasificación de las secuencias por su extensión


Secuencia de extensión finita:
 n1   / x n  0, n  n1 y  n2   / x n  0, n  n2

n1 n2 n

Secuencia de extensión infinita :


a) Secuencia derecha
 n1   / x n  0, n  n1 y  n2   / x n  0, n  n2

...

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
xn es periódica  N / xn  xn  N n

Periodicidad de la secuencia cosenoidal


En tiempo continuo, la función cos   0 t  es periódica para cualquier valor real de la frecuencia.
El periodo es:
2
T
0

En tiempo discreto, la relación


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 periódica si y sólo si


2 k
0 
N

para algún N y k enteros; caso contrario, cos   0 n  no es periódica.

Por ejemplo, la secuencia cos  3


4
n  es periódica con periodo N  8 . En cambio, la secuencia
cos  3 n  no es periódica
j 0 n j 0  n  N  j 0 n
La secuencia compleja Ce es periódica si e =e .
Esto se cumple si  0 N  2 k , donde N y k son enteros.

Las exponenciales complejas con frecuencias  0 y  0  2   r son iguales.

10
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto

Cosenoide de tiempo continuo Cosenoide de tiempo discreto


cos   0 t  cos   0 n 
Es periódica para cualquier valor real de la Es periódica si y sólo si  0  2 k
frecuencia N
para algún N y k enteros
Oscila más rápidamente a medida que Cuando la frecuencia aumenta de 0 a 
aumenta la frecuencia aumentan también las oscilaciones. Sin
embargo, cuando la frecuencia aumenta de
 a 2 las oscilaciones se hacen más lentas.
Las señales cos0t  y cos0  2  r t  para Las secuencias cos   0 n  y
r entero mayor que cero no son iguales. cos    0  2   r  n  son iguales para r
entero, es decir, las frecuencias  0 y
 0  2   r son equivalentes.

Bajas y altas frecuencias


En tiempo continuo, la función cos   0 t  oscila más rápidamente 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 también las

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

frecuencias en la vecindad de  0  2   k   se dice que son altas frecuencias.

Generación de señal senoidal con la tarjeta DSK 6713


Para la generación de señal senoidal creamos un proyecto en el CCS o copiamos un proyecto
existente con otro nombre. En el nuevo proyecto, en el archivo main.c, copiamos el programa que se
muestra en la figura X que ha sido tomado del sitio web [6] de la Universidad Estatal de Colorado.

// This project uses support files generated by Rulph Chassaing


// Comm routines included in C6xdskinit.c

#include "dsk6713_aic23.h" // needed to access codec function


#include <math.h> // needed for sin(*/ function
#define PI 3.14159265359 // define the constant PI
Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; // sampling frequency of codec
float f0=700; // generated sinusoid frequency
float fs_float; // needed for calculating offset
float angle=0; // sin(*/ argument in radians
float offset; // sin(*/ argument change per sample period
short amp=20; // sine amplitude scaling factor
short sine_value; // value sent to codec
11
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto

interrupt void c_int11() // interrupt service routine


{
switch(fs) // get sampling freq in Hz from fs
{
case DSK6713_AIC23_FREQ_8KHZ:
case DSK6713_AIC23_FREQ_16KHZ:
case DSK6713_AIC23_FREQ_24KHZ:
case DSK6713_AIC23_FREQ_32KHZ:
case DSK6713_AIC23_FREQ_48KHZ:
fs_float=8000*fs;
break;
case DSK6713_AIC23_FREQ_44KHZ:
fs_float=44000;
break;
case DSK6713_AIC23_FREQ_96KHZ:
fs_float=96000;
break;
}
offset=2*PI*f0/fs_float; // set offset value
angle = angle + offset; // previous angle plus offset
if (angle > 2*PI) // reset angle if > 2*PI
angle -= 2*PI; // angle = angle - 2*PI
sine_value=(short)1000*amp*sin(angle); // calculate current output sample
output_left_sample(sine_value); // output each sine value
return; // return from interrupt
}

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

3.Sistemas de tiempo discreto


Un sistema de tiempo discreto es una transformación 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] 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   yn  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:

y n   x mh n  m
m 

Sistema FIR : h n tiene extensión finita

Sistema IIR : h n tiene extensión infinita

Cálculo de la salida por convolución

x n
 y n
h n


yn    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

la respuesta del sistema al impulso unitario es h n  .

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

En sistemas LTI tenemos : y n  x n h n

Propiedades de la convolución
 Conmutativa
 Asociativa
 Distributiva

Conexión en serie de sistemas LTI

h1  n h2  n
≡ h1 n h2  n

14
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto

Conexión en paralelo de sistemas LTI

h1  n

+ ≡ h1 n  h2  n

h2  n

Convolución por bloques


Método de solapamiento-suma
Definición de un bloque:
 x  n  rL , 0  n  L  1
x r n   
 0, c .c .

xn    xr n  rL
Secuencia de entrada expresada a través de los bloques r 0

Secuencia de salida:

   
yn    x r n  rL * hn   x r n  rL* hn yn   y r n  rL
yn  xn* hn ;  r 0  r 0
; r 0

y n   x n  * h n 
r r 
Bloque de salida: L  P 1 L P

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.

Ecuación en diferencias lineales con coeficientes constantes (LCCDE)


Muchos sistemas lineales e invariantes en el tiempo (sistemas LTI) se describen mediante la
ecuación:
y n  b0 x n  b1 x n  1 ...b M x n  M 
 a1 y n  1...a N y n  N 

Cálculo de la salida por recursión


Ejemplo 4
2
yn   xn  1  2  yn  1  yn  2
Para el sistema descrito por 2

hallar la salida si xn   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
y0  0  2 0  0  0
2
2 2
y1  1  2  0  0 
2 2
2 2
y2  0  2   0 1
2 2
2 2 2
y3   0  2 1  
2 2 2
2 2
y4  0  2  1  0
2 2
2 2 2
y5  0  2 0  
2 2 2
2
yn  2   xn  1  2  yn  1  yn
2
2
ym   xm  1  2  ym  1  ym  2
2
2
yn   xn  1  2  yn  1  yn  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 , 
    

(2) Condiciones (1)


iniciales
16
Curso: Procesamiento Digital de Señales Profesor: Wildor Ferrel Serruto

Causalidad de un sistema LTI


 hn   0, n  0

Estabilidad de un sistema LTI



Un sistema LTI es estable   h n   
n 

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 

Sea x  n  definida por:

 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  

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

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 xn e yn , la secuencia
 
r xy  n    x  k   y  k  n  r xy  n    x  k  n   y  k 
k   k  

se llama correlación cruzada de x  n  e y  n  .

La correlación cruzada de y  n  e x  n  es:


 
r yx  n    y  k   x  k  n  =  y  k  n   x  k 
k   k 

Se cumple que r xy  n   r yx   n  .


Comparando la expresión de la convolución 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  

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  

En MATLAB se usa la función 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)

Correlación de secuencias periódicas

Para las secuencias periódicas x  n  e y  n  la correlación cruzada se define en la forma:

1 M
r xy  n   lim  xk  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

Si las secuencias x  n  e y  n  tienen un mismo periodo 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 M≥N:
1 M 1 1 M 1
r xy  n    xk  y k  n  r xx  n    xk  xk  n 
M k 0 M k 0

Las secuencias r xy  n  y r xx  n  son periódicas y tienen el mismo periodo N.

Aplicación de la correlación en la determinación de la distancia de blancos

sn    xn  D  wn


rsx n  tiene un pico en n  D

Aplicación de la correlación en la identificación de una señal periódica oculta en una


señal con ruido

Sea la secuencia y  n  de la forma:

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

Para ello calculamos la autocorrelación de y  n  :

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
=  xk xk  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

También podría gustarte