Está en la página 1de 7

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/320357122

Filtro de Wiener en Matlab

Working Paper · October 2013

CITATIONS READS
0 1,609

2 authors, including:

Félix Julian Gutiérrez Bernal


San Buenaventura University
25 PUBLICATIONS   5 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

DISEÑO, IMPLEMENTACIÓN, AUTOMATIZACIÓN Y OPTIMIZACIÓN DEL PROCESO DE DESHIDRATACIÓN DE ALIMENTOS EN EL LABORATORIO DE ENERGETICA DE LA
UNIVERSIDAD INCCA DE COLOMBIA View project

design and construction of a Butler matrix in groove gap waveguide technology View project

All content following this page was uploaded by Félix Julian Gutiérrez Bernal on 12 October 2017.

The user has requested enhancement of the downloaded file.


Filtro de Wiener
Juan Camilo Galvis Cuéllar
Departamento de Ingeniería
Electrónica, Universidad INCCA de
Colombia
Bogotá, Colombia
jgalvis@uincca.edu.co
samushagaren@gmail.com
juandrhouse@gmail.com

Abstract—Se realiza el diseño de algoritmos de filtrado óptimo B. RED NEURONAL


implementados en un filtro de Wiener utilizando la herramienta
MATLAB. Una red neuronal artificial imita el funcionamiento de una
que se encuentra en un ámbito biológico. Son aptas para
Keywords: FIR, Filtrado Óptimo, Correlación, Red Neuronal, resolver problemas que no poseen un algoritmo claramente
AWGN, Procesos Estocásticos. definido para transformar una entrada en una salida; en vez de
eso aprender, reconocen y aplican relaciones entre objetos. Se
I. INTRODUCCIÓN emplea normalmente un conjunto de ejemplos representativos
de la transformación deseada para “entrenar” el sistema, que a
En este cuarto trabajo de semestre, se utilizará MATLAB
su vez, se adapta para producir las salidas deseadas cuando se
para diseñar un filtrado optimal basado en FIR (Finite Impulse
compara con las entradas “aprendidas” [2].
Response) que permitirá obtener la información o señal deseada
enviada a través de un canal afectado por AWGN (Additive
C. FILTRO ÓPTIMO
White Gaussian Noise). Esto se realiza con el fin de entender
los efectos que causa el multipath en las telecomunicaciones y La detección de señales digitales, se puede definir en [3]
generar una posible solución frente a éste problema. como la técnica de determinar cuál de las formas de ondas es la
señal que se está recibiendo. De tal manera que un sistema de
II. PLANTEAMIENTO DEL detección óptimo será aquel que determine con la menor
PROBLEMA probabilidad de error si la señal está presente o no. Este filtro es
casual y tiene una respuesta de impulso finito (FIR) [4]. Las
Se realiza un algoritmo optimal basado en obtener como
ventajas de un filtro óptimal son:
primera instancia los coeficientes del filtro o los valores de las
redes neuronales para minimizar la varianza entre los datos
enviados y los datos que llegaron al sistema después de pasar  Método no lineal (Estocástico).
por un canal de ruido AWGN. Esto permitirá generar un filtro  Se centra en medir la dispersión de los datos
óptimo que recuperará la señal original. (Varianza).
 El filtro no depende del Error Cuadrático Medio (MSE)
sino del valor esperado del MSE [4].
III. DESARROLLO DE
CONTENIDOS D. AWGN
A continuación, se ilustran los elementos básicos del trabajo
de este semestre. Es una señal aleatoria, caracterizada porque sus valores no
tienen relación alguna entre sí en todos los instantes de tiempo,
A. TRAYECTORIA MULTICAMINO es decir, no existe una correlación estadística entre éstos, la cual
responde a una distribución normal de carácter estadístico [5].
La propagación de las señales de radio terrestre se
caracteriza por las reflexiones múltiples, difracción y IV. PROCEDIMIENTO
atenuación de la energía de la señal. Esto es causado por
obstáculos como edificios, colinas, paneles de publicidad, etc., Anexo al documento, se encuentra el archivo .m en el
que como resultado entregan una propagación multipath lo cual script de MATLAB que realiza un filtrado óptimo de N redes
genera dos efectos: neuronales que minimiza el error que causa el AWGN en un
canal de comunicación; además, recupera la información
1. Retardo de la señal, entre 1 y 2 us en zonas urbanas, original usando métodos estocásticos. El Ingeniero Felix
mientras que en otros casos hay retardos hasta 20 us o más. Gutierrez generó los datos recibidos por el canal con ruido
AWGN y los datos enviados. ¿Cómo se recupera la
2. El efecto multipath genera un desgase en la señal información? Implementado el filtro de Wiener.
recibida, la cual puede cancelar la señal directa, este efecto es
conocido como fading [1]. Las etapas para hacer un filtro de Wiener son:

1. Se especifican las variables a trabajar.


función de coste J como se ve en (8).

( ) ( ) (8)
( ) ( )
( ) ( ) 9. Para hallar el mínimo error se deriva la ecuación con
respecto a w como se observa en (9):
( )

2. Se hace el diagrama de bloques del algoritmo. ( ) (9)


d(n)
10. Despejando e igualando a cero obtenemos:
Valor Error al
Esperado cuadrado
Después de hallar todos los valores mencionados
X(n) Y(n) anteriormente, se emplea el algoritmo en MATLAB.
c W(n)
V. ANÁLISIS DE RESULTADOS
Fig. 1 Diagrama de bloques de un filtro de Wiener.
Los Pasos de la Implementación del filtro de Wiener son:
3. Se calcula el error que yace en un sistema como en la
siguiente ecuación: 1. Cargar los datos suministrados por el Ingeniero Félix
Gutiérrez en MATLAB.
( ) ( ( ) ( )) 2. Hacer una modulación 4QAM para observar los datos y
( ) ( ) ( ) (2) sus cambios debido a las modulaciones. Como los datos
( ) ( ( ) ( ) ( ) ) pilotos son complejos, se graficó la parte real contra la
parte imaginaria como se observa en la figura 1.
4. En notación matricial, la ecuación queda como en (3):
Constelacion 4QAM para los datos pilotos
1
( ) (3) 0.8

0.6
4. En el filtro óptimal, se halla el valor esperado del error
como se ve en (4). Hay que tomar en cuenta que para realizar 0.4

la multiplicación de matrices, hay que trasponer un vector fila 0.2


a un vector columna y que cumpla la propiedad de que las
0
columnas del primer vector sean iguales a las columnas del
segundo vector transpuestas debido a que no es conmutativa. -0.2

-0.4
( ) (4) -0.6

-0.8
5. Luego se soluciona el binomio como se ve en (5):
-1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
( ) ( ) (5)
Fig. 1 Constelación de los datos pilotos.
6. Luego se desglosa el binomio como se ve en (6):
3. Luego se graficó los datos que llegaron después del canal
( ) con ruido. Como se observa en la figura 2, se graficó la
( ) (6) parte real contra la parte imaginaria.

7. El valor esperado de los pilotos es la varianza de los


datos deseados. Por lo tanto, se conoce el valor esperado de un
término de la ecuación. Ahora el cuadrado de una matriz se
define como la multiplicación de una matriz por su
transpuesta. Esto cambia la ecuación como se ve en (7):

( ) (7)

8. El segundo valor esperado de la ecuación E{X*dT}es la


correlación cruzada P y el tercer valor E{X*X T} es la
autocorrelación R. Ya teniendo estos valores se halla la
Constelacion 4QAM para los datos que llegaron con ruido
Constelacion 4QAM para los datos que pasaron por el Filtro
1.5
1

0.5 1

0
0.5

-0.5

0
-1

-1 -0.5 0 0.5 1 -0.5

Fig. 2 Constelación de los datos que llegaron por el canal con ruido.
4. Para observar el cambio de los datos luego de haber -1
aplicado el filtro, como se observa en la figura 3, se ven los
datos que pasaron por el filtro de Wiener con color rojo y
los datos con ruido gaussiano con color amarillo. -1.5
-1.5 -1 -0.5 0 0.5 1 1.5
Comparacion entre los datos filtrados y los datos deseados
Constelacion 4QAM para los datos que pasaron por el Filtro
1.5 Fig. 4. Constelación de los datos filtrados y los datos enviados.

6. Los pasos anteriores se repitieron con la modulación en


1 16QAM y en 32 QAM para hacer un análisis de las
gráficas resultantes.
0.5

0 Constelacion 16QAM para los datos pilotos


3

-0.5
2

-1
1

-1.5
-1.5 -1 -0.5 0 0.5 1 1.5 0
Comparacion entre los datos filtrados y los datos del canal con ruido

-1
Fig. 3. Constelación de los datos filtrados y los datos con ruido.

5. Para hacer una comparación entre los datos filtrados y los -2


datos que se enviaron, como se observa en la figura 4, se
ven los datos que pasaron por el filtro de Wiener con color
-3
rojo y los datos enviados con color azul claro. -3 -2 -1 0 1 2 3

Fig. 5. Constelación de los datos pilotos


Constelacion 16QAM para los datos que llegaron con ruido Constelacion 16QAM para los datos que pasaron por el Filtro
3 4

2 3

1 2

0 1

-1 0

-2 -1

-3 -2
-3 -2 -1 0 1 2 3
Fig. 6. Constelación de los datos que llegaron por el canal con ruido. -3

Constelacion 16QAM para los datos que pasaron por el Filtro -4


4 -4 -3 -2 -1 0 1 2 3 4
Comparacion entre los datos filtrados y los datos deseados

3
Fig. 8 Constelación de los datos filtrados y los datos enviados.

2 Constelacion 32QAM para los datos pilotos


5

1 4

3
0
2
-1
1

0
-2
-1
-3
-2

-4 -3
-4 -3 -2 -1 0 1 2 3 4
Comparacion entre los datos filtrados y los datos del canal con ruido -4

-5
-5 -4 -3 -2 -1 0 1 2 3 4 5
Fig. 7 Constelación de los datos filtrados y los datos con ruido.

Fig. 9 Constelación de los datos pilotos.

Constelacion 32QAM para los datos que llegaron con ruido


6

-2

-4

-6
-6 -4 -2 0 2 4 6
Fig. 10 Constelación de los datos que llegaron por el canal con ruido.
Constelacion 32QAM para los datos que pasaron por el Filtro VII. CONCLUSIONES
6

El desarrollo de un filtro optimal permite encontrar


4 coeficientes variantes que llegan a un punto donde se vuelven
constantes que se aplican a una señal con ruido, la cual
disminuye la dispersión que poseen los datos que han pasado
2 por un canal con AWGN aproximando a la señal que
originalmente se envían.
0
El efecto que causa el AWGN sobre las
telecomunicaciones se ve reflejado cuando se desea recuperar
-2
la señal; en este caso un posible trabajo sería mezclar el
filtrado adaptativo con el algoritmo LMS y el filtro de Wiener
-4
para recuperar la información que fue afectada por el ruido y
el efecto de multipath.

-6
-6 -4 -2 0 2 4 6 REFERENCIAS BIBLIOGRAFICAS
Comparacion entre los datos filtrados y los datos del canal con ruido

Fig. 11 Constelación de los datos filtrados y los datos con ruido.


[1] D. Guillén Guevara, “Diseño de una red de telefonía móvil de tercera
generación WCDMA para la ciudad de TACNA”. [Online]. Disponible:
Constelacion 32QAM para los datos que pasaron por el Filtro http://tesis.pucp.edu.pe/repositorio/bitstream/handle/123456789/197/G
6 UILLEN_DANIEL_DISENO_RED_TELEFONIA_WCDMA_TACNA
.pdf?sequence=2sasa

4
[2] Redes Neuronales [Online]. Disponible:
http://www.usmp.edu.pe/publicaciones/boletin/fia/info32/pag4.htm
2
[3] Danizio, E. R. Damiani, A. M. B., “Sistema de Filtrado Óptimo con
DSP”. [Online]. Disponible:
0 http://www.dsp.efn.unc.edu.ar/documentos/filtrado_optimo.pdf

[4] Constantine A. Balanis., Antenna Theory, Analysis And Design,


-2 Tercera Edition., John Wiley y Sons., 2005.

[5] Additive White Gaussian Noise. [Online]. Disponible:


-4
http://www.slideshare.net/exactlimon/ruido-5825993

-6
-6 -4 -2 0 2 4 6
Comparacion entre los datos filtrados y los datos deseados

Fig. 12 Constelación de los datos filtrados y los datos enviados.

Como se observa en las gráficas, al aplicar el algoritmo, se


ubican los datos que se encontraban dispersos del punto inicial
aproximadamente a una diferencia bastante pequeña entre los
datos filtrados y los datos originales. Esto se debe a que la
implementación del filtro de Wiener efectivamente permite
minimizar la dispersión de los datos y el error que yace entre
estos.

VI. OBSERVACIONES

Con el trabajo realizado, se encontraron falencias sobre los


métodos estocásticos que se implementan en el algoritmo y
sobre la programación de cada neurona. Además, al inicio del
trabajo se trabajaron con los datos del algoritmo LMS
presentando anteriormente lo cual no permitió apreciar el
filtrado óptimal debido a que estos datos tenían un ruido
diferente al ruido gaussiano. El filtro de Wiener únicamente
aplica para canales con ruido AWGN.
Anexo 1. Programa del Filtro de Wiener en el script de MATLAB. hold on
plot(real(X1),imag(X1),'*y')
%% Universidad INCCA de Colombia subplot(2,2,4)
%% Facultad de Ingenieria,Administracion y Ciencias Basicas plot(real(D1),imag(D1),'+c','linewidth',6)
%% Programa Profesional de Ingenieria Electronica hold on
%% Asignatura: Electiva Tecnica II plot(real(SignalRecover),imag(SignalRecover),'.r')
%% Docente: Felix Julian Gutierrez title('Constelacion 32QAM para los datos que pasaron por el Filtro')
%% Presentado por: Juan Camilo Galvis Cuellar xlabel('Comparacion entre los datos filtrados y los datos deseados')
%% Código: 67097 figure
%% Programa Filtro de Wiener plot(real(p),imag(p),'*m')
%% Juan Camilo Galvis Cuéllar title('Constelacion 32QAM para los datos pilotos')
% Inicio figure
clc;clear all,close all % Limpiar Variables, Command Window, plot(real(yestimado),imag(yestimado),'.r','linewidth',8)
Cerrar figuras title('Constelacion 32QAM para los datos que llegaron con ruido')
% cargar datos: figure
load ('y2.mat') % Cargar Datos de Juan Camilo plot(real(SignalRecover),imag(SignalRecover),'*r')
% Los datos son los pilotos que son lo que envio y y es la información title('Constelacion 32QAM para los datos que pasaron por el Filtro')
% que llego a la salida del sistema con ruido xlabel('Comparacion entre los datos filtrados y los datos del canal con ruido')
pilotos = xmod2; hold on
p = pilotos; plot(real(X1),imag(X1),'*y')
figure
% crea una figura nueva plot(real(D1),imag(D1),'+c','linewidth',8)
figure; hold on
% grafice la parte real de la salida con ruido contra la parte imaginaria plot(real(SignalRecover),imag(SignalRecover),'+r')
subplot(2,2,1) title('Constelacion 32QAM para los datos que pasaron por el Filtro')
plot(real(p),imag(p),'*m') xlabel('Comparacion entre los datos filtrados y los datos deseados')
title('Constelacion 32QAM para los datos pilotos')
% yestimado = Delay_JC;
yestimado = y2;
subplot(2,2,2)
plot(real(yestimado),imag(yestimado),'.r','linewidth',8)
title('Constelacion 32QAM para los datos que llegaron con ruido')
% Ahora se toma todo el vector para aplicarle el filtro de Wiener y
% quitarle el ruido a la señal
X1 = yestimado(1:length(yestimado));
D1 = pilotos(1:length(yestimado));
% Orden Del Filtro
Orden = 1000;
% Número de Muestras
N = length(X1);
% Autocorrelacion o Matriz R
r = xcorr(X1);
% Matriz R, hay que convertir r que es un vector a una matriz
R = toeplitz(r(N:N+Orden-1));
% Correlacion Cruzada o Matriz P
po = xcorr(X1,D1);
P = po(N:N+Orden-1);
% Calcular el Woptimo
% Woptimo = inv(R)*P
Woptimo = R\P';
% Recuperar la señal y Calcular el Error Cuadratico Medio
for n=1:length(Woptimo)
E(n)=(D1(n))-(X1(n)*Woptimo(n))^2;
end
SignalRecover = filter(Woptimo,1,D1);
subplot(2,2,3)
plot(real(SignalRecover),imag(SignalRecover),'*r')
title('Constelacion 32QAM para los datos que pasaron por el Filtro')
xlabel('Comparacion entre los datos filtrados y los datos del canal con ruido')

View publication stats

También podría gustarte