Transcript
Filtros de Wiener
wiener
marcelo bj
1
Problema que se encontra em engenharia:
Estimação de um sinal desejado [s(n)] a partir de um outro [x(n)] em que x(n) consiste do sinal desejado mais um sinal de ruído ou interferência v(n), isto é, x(n) = s(n) + v(n)
objetivo: •
projetar um filtro que minimiza a interferência aditiva e ao mesmo tempo preserva as características do sinal desejado.
Filtros Clássicos:
Os filtros passa baixas, etc., raramente restauram o sinal em algum sentido ótimo.
Solução filtros ótimos:
filtros de Wiener ou então de Kalman.
utilizam métodos dos mínimos quadrados
wiener
marcelo bj
2
1. Introdução ao problema
x(n) = s(n) + v(n)
s(n) H(z)
sˆ(n)
-
estimativa ótima de s(n)
+
e( n) s ( n) sˆ(n) erro na estimativa
Problema: Projeto de um filtro com resposta ao impulso h(n) que produz uma estimativa ótima de s(n).
Critério: O erro quadrático médio entre as amostras originais e as estimadas deve ser mínimo, isto é,
= E[ e2(n) ]MIN Este critério tem a vantagem de ser simples na implementação e no tratamento matemático wiener
marcelo bj
3
2. Filtro de Wiener FIR
Admitindo um filtro FIR com M coeficientes constantes, então: M 1
H ( z)
h(l ) z l
l 0
Sendo x(n) o sinal de entrada, então o sinal estimado será dado pela soma convolução entre h(n) e x(n). Assim: M 1
sˆ(n) h(l ) x(n l ) l 0
Problema:
Encontrar os coeficientes h(k) : k = 0, 1, ... M-1 tal que o erro quadrático médio seja mínimo, isto é:
E | e(n) |2 E | s(n) sˆ(n) |2 wiener
marcelo bj
MÍNIMO 4
3. Cálculo dos h(k)
Derivando em relação a h*(k) tem-se:
E e(n)e* (n) e * ( n) E e(n) * 0 * * h (k ) h (k ) h (k ) Derivada do conjugado do erro:
e* (n) s(n) sˆ(n) * x (n k ) * * h (k ) h (k ) *
substituindo
Para que o erro seja mínimo tem-se que:
x
E e(n) x * (n k ) 0 : k 0,1,, M 1 Sinal de erro e de entrada devem ser ortogonais.
e
Princípio da ortogonalidade. wiener
marcelo bj
5
M 1
como:
e(n) s (n) sˆ(n) s (n) h(l ) x(n l ) l 0
substituindo na equação anterior:
E e(n) x * (n k ) 0 tem-se:
M 1 * * E s(n) x (n k ) h(l ) x(n l ) x (n k ) 0 l 0
M 1
E s(n) x * (n k ) h(l ) E x(n l ) x * (n k ) 0 l 0
portanto: M 1
rsx (k ) h(l )rx (k l )
: k 0,1,, M 1
l 0
wiener
marcelo bj
Equações de WienerHopf 6
Na forma matricial:
R x .h rsx
rx (1) rx (0) r (1) rx (0) Rx = x rx ( M 1) rx ( M 2) h ( 0) h(1) h= h(m 1) Erro mínimo:
rx ( M 1) rx ( M 2) rx (0)
Matriz de Toeplitz (hermitiana)
xH = [XT]*
rsx (0) r (1) rsx = sx rsx (m 1) M 1
MIN rs (n) h(l )rsx* (l ) l 0
wiener
marcelo bj
7
4. Aplicação prática
Em muitas aplicações sinal e ruído são admitidos descorrelacionados.
x ( n) s ( n) v ( n)
rsx (k ) rs (k ) Rx Rs R v
e as equações de Wiener-Hopf se tornam:
R s R v h rs Solução das equações
R x .h rsx
Rx Matriz de Toeplitz (hermitiana) xH = [XT]* Algoritmos de Levinson e de Cholesky
wiener
marcelo bj
8
5. Filtro de Wiener como supressor de ruído Estimação de um sinal s(n) a partir de uma medida x(n) contaminada por ruído aditivo.
x(n) = s(n) + v1(n) Neste caso,as estatísticas do ruído são obtidas através de um sensor secundário como mostra a figura. O sinal é utilizado para estimar o ruído v1(n). sinal s(n)
ruído
x(n) s ( n) v1 (n)
+
v 2 ( n)
Filtro de Wiener h(n)
sˆ(n) x(n) vˆ1 (n)
vˆ1 ( n )
O ruído medido nos dois sensores são correlacionados mas não são iguais: o filtro estima v1(n) a partir de v2(n). wiener
marcelo bj
9
Obtenção das equações de Wiener-Hopf Sinal de entrada v2(n)
sinal a ser estimado v1(n) equações de Wiener-Hopf:
R v h rv v 2
1 2
Cálculo da correlação cruzada:
E x(n)v (n k ) E s (n)v (n k ) E x(n)v (n k ) r
rv1v2 ( k ) E v1 (n)v2* (n k ) E x(n) s (n) v2* (n k ) * 2
* 2
* 2
Portanto:
R v h rxv 2
xv2 ( k )
2
Observe que x(n) e v2(n) são sinais disponíveis e portanto é possível uma implementação prática deste filtro. wiener
marcelo bj
10
5.1 Exemplo
s (n) sen(w0 n ) onde : w0 0.1
Sinal desejado:
Os sinais de ruído foram gerados considerando um modelo AR(1):
v1 (n) 0.8v1 (n 1) g (n) v2 (n) 0.6v2 (n 1) g (n)
onde g (n) : ruído branco
2
0
-2 0
20
40
60
80
100
120
140
160
180
200
0
20
40
60
80
100
120
140
160
180
200
0
20
40
60
80
100
120
140
160
180
200
2
0
-2
2
0
-2
wiener
marcelo bj
11
6. Filtro de Wiener IIR
Neste caso h(n) tem duração infinita. Tem-se disponível uma medida x(n) contaminada por ruído aditivo. x(n) = s(n) + v(n) Dois tipos de filtros: causal e não causal. 6.1 Filtro de Wiener não causal
Saída do filtro:
sˆ(n)
h(l ) x(n l )
l
Problema: Encontrar o filtro que minimiza o erro quadrático médio:
E | e(n) |2 E | s(n) sˆ(n) |2
MÍNIMO
Solução: derivando o erro com relação aos h*(k) tem-se que:
h(l )r (k l ) r x
sx
(k )
: k
l wiener
marcelo bj
12
No domínio da freqüência: jw P ( e ) jw sx H (e ) Px (e jw )
Erro quadrático médio mínimo:
MIN
1 2
P e H e P e dw r 0 hl r
jw
s
jw
* sx
jw
* sx
s
l
l
No caso de sinal e ruído serem descorrelacionados: jw P ( e ) jw s H (e ) Ps (e jw ) Pv (e jw )
wiener
Ps (e jw ) Pv (e jw ) H (e jw ) 1
Sinal predominante
Ps (e jw ) Pv (e jw ) H (e jw ) 0
ruído predominante
marcelo bj
13
6.2 Exemplo
Sinal AR(1) com Edp:
b02 Ps ( z ) (1 z 1 )(1 z )
Ruído branco com variância:
Resposta do filtro:
admitindo:
v2
b02 H ( z) 2 b0 v2 (1 z 1 )(1 z )
b0 0.5; 0.5; v2 0.25
0.4688 H ( z) (1 0.2344z 1 )(1 0.2344z ) Erro mínimo: wiener
h(n) 0.496 0.2344
MIN v2 h(0) 0.124 marcelo bj
14
n
Apêndice Exemplos de filtragem de um sinal de voz
wiener
marcelo bj
15
Filtro de Kalman 1 0 -1 -2
0
2000
4000
6000
8000
10000
12000
14000
0
2000
4000
6000
8000
10000
12000
14000
0
2000
4000
6000
8000
10000
12000
14000
2 1 0 -1 -2 2 1 0 -1 -2
wiener
marcelo bj
16
Filtro de Wiener Sinal Limpo 2 1 0 -1 -2
0
0.2
0.4
0.6 Sinal Ruidoso
0.8
1
1.2
0
0.2
0.4
0.6 Sinal Filtrado
0.8
1
1.2
0
0.2
0.4
0.8
1
1.2
2 1 0 -1 -2 2 1 0 -1 -2
wiener
0.6
marcelo bj
17
Filtro de Butterworth sinal limpo 2 1 0 -1 -2
0
0.2
0.4
0.6 sinal ruidoso
0.8
1
1.2
0
0.2
0.4
0.6 sinal filtrado
0.8
1
1.2
0
0.2
0.4
0.8
1
1.2
2 1 0 -1 -2 2 1 0 -1 -2
wiener
0.6
marcelo bj
18
Tabela Comparativa
wiener
Filtro
Aumento na SNR
Butterworth
5 dB
Wiener
8 dB
Kalman
18 dB
marcelo bj
19