Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Convolución Discreta

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 5

Convolució n Discreta

Universidad de Guanajuato

Señales y Sistemas
(Propedéutico de Maestria)

Profesor: Dr. Luis Javier Morales

Alumnos: Camarena Martínez David


Ramírez Gasca Humberto
Juárez Ramírez Eduardo
Enrique
Ortiz López Emmanuel
“Convolución Discreta”
Introducción:

Si x(n) es la entrada a un sistema lineal en invariante en el tiempo (tiempo discreto)


caracterizado por T[.], entonces la salida y(n), está dada por:
∞ ∞
y(n)= ∑ x(k)h(n−k )= ∑ x(n−k )h( k)
k=−∞ k=−∞ (1)

Donde h(n) = T[δ(n)], es decir la respuesta al impulso

La ecuación 1 es llamada la convolución de x y h o viceversa, la cual la podemos


representar como:

y (n )=x (n)∗h(n )=h (n)∗x( n) (2)

Procedimiento:

Para esta tarea se implemento en MatLab el proceso de convolución sin ocupar la


función conv.

La secuencia de la multiplicación de los elementos de las matrices x(n) y h(n) es la


siguiente, considerando que tanto x(n) como h(n) son de la misma longitud:

w(1)=x(1)∗h(1)
w(2)=x(1)∗h(2)+x(2)∗h(1)
w(3)=x(1)∗h(3)+x(2)∗h(2)+ x(3)∗h(1)

w(n)=x(1)∗h(n)+x(2)∗v(n−1)+x(n)∗v(1)
La longitud de y(n) es igual a la longitud de x(n) más la longitud de h(n) menos uno, es
decir:

M  N 1 (3)

Donde:
M = longitud de la secuencia x(n)
N = longitud de la secuencia h(n)

Por lo tanto el código utilizado en MatLab es el siguiente:


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Convolucion %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function y = convolucion(x,h)

m=length(x);
n=length(h);
aux=m+n-1; %longitud de la salida y
y=zeros(1,aux);

for k=1:aux
for j=1:m
if k+1-j<=0
yaux(k)=0;
else
if k+1-j>=length(h)+1
yaux(k)=0;
else
yaux(k)=x(j)*h(k+1-j);
end
end
y(k)=yaux(k)+y(k);
end
end
k=0:aux-1;
stem(k,y)
grid on
xlabel('n')
ylabel('y(n)')
title('Convolucion y(n)=x(n)*h(n)')

Comprobación:
Consideremos una señal x[n] con coeficientes 1, 2, 2, 1, 1, 0 y una señal h[n] con 3,2,1
como coeficientes. Realizando la convolución el código anterior el resultado es el
siguiente:
>> x=[1 2 2 1 1 0];
>> h=[3 2 1];
>> convolucion(x,h)
>> y

y =

3 8 11 9 7 3 1 0 0

Ahora, realizándolo con la función de MatLab llamada conv y comparándolos


vemos que son los mismos coeficientes.
>> conv(x,h)

ans =

3 8 11 9 7 3 1 0 0

Como los coeficientes son los mismos podemos concluir que el código anterior es
correcto. La grafica de la convolución de las secuencias anteriores se muestra en la
Figura 1.
Convolucion y(n)=x(n)*h(n)
12

10

8
y(n)

0
0 1 2 3 4 5 6 7
n

Figura 1. Convolución de dos secuencias discretas

Como ejercicio hicimos la lectura de una señal ECG mezclada con ruido y después se
convolucionó con los coeficientes de un filtro notch. La respuesta del filtro Notch en el
dominio Z, viene dada por la ecuación 4:

Y ( z )  (1   z 1  z 2 ) X ( z ) (4)

Calculando la transformada inversa de la ecuación 4, nos daría los coeficientes


(ecuación 5) con los cuales hay que convolucionar la señal leída, es decir h[n]:

H ( z )  1   z 1  z 2  Z 1  H ( z )  Z 1  1   z 1  z 2 
h[n]   [n]   [n  1]   [n  2] (5)

Y realizando varias pruebas el valor óptimo de β para el cual la señal x[n] es filtrada es
β=0.6. EL programa realizado para hacer este filtrado es el siguiente:
clc;
clear all;
close all;
X=wavread('ecg3plushum.wav');
t = [0: length(X)];
Hn = 1*(t==0) - 0.61*(t==1) + 1*(t==2);
t = [0: length(X)];
Hn = 1*(t==0) - 0.60*(t==1) + 1*(t==2);
Yn=convolucion(X,Hn);
figure;plot(X)
title('Señal ECG con ruido')
grid on
figure;plot(Yn)
grid on
title('Señal ECG filtrada')
axis([0 900 min(Yn) max(Yn)])
Los resultados obtenidos se muestran en las gráficas de la figura 2 y 3, las cuales
muestran las señal sin filtrar y la señal limpia de ruido respectivamente.

Señal ECG con ruido


1

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6
0 100 200 300 400 500 600 700 800 900

Figura 2. Señal ECG con ruido


Señal ECG filtrada

0.6

0.4

0.2

-0.2

-0.4

0 100 200 300 400 500 600 700 800 900

Figura 3. Señal ECG sin ruido (señal filtrada)

Bibliografía:
 “Fundamentals of digital Signal Processing”
Lonnie C. Ludeman

También podría gustarte