Escolar Documentos
Profissional Documentos
Cultura Documentos
Processamento de Sinal
ÍNDICE
2 Filtros Digitais______________________________________________________________________________________________________ 5
2.1 Projecto de Filtros________________________________________________________________________________________________ 5
2.2 Distorção _______________________________________________________________________________________________________ 6
2.3 Filtros FIR _____________________________________________________________________________________________________ 10
2.3.1 Introdução _________________________________________________________________________________________________ 10
2.3.2 Projecto de Filtros FIR pelo Método da Janela_____________________________________________________________________ 17
2.3.3 Projecto de Filtros FIR Óptimos ________________________________________________________________________________ 21
2.3.4 Aplicações de Filtros FIR _____________________________________________________________________________________ 25
2.4 Filtros IIR _____________________________________________________________________________________________________ 32
2.4.1 Conversão de filtros analógicos para filtros digitais _________________________________________________________________ 32
2.4.2 Filtros IIR correspondentes a protótipos analógicos_________________________________________________________________ 35
2.4.3 Diferenciadores _____________________________________________________________________________________________ 41
2.4.4 Aplicações de filtros IIR ______________________________________________________________________________________ 44
2.5 Decimação-Interpolação __________________________________________________________________________________________ 51
2.5.1 Decimação ________________________________________________________________________________________________ 51
2.5.2 Interpolação _______________________________________________________________________________________________ 53
2.5.3 Filtro interpolador óptimo_____________________________________________________________________________________ 58
2.5.4 Aplicações de decimação-interpolação___________________________________________________________________________ 66
2.6 Filtros FIR Adaptativos __________________________________________________________________________________________ 72
2.6.1 Estrutura e Aprendizagem_____________________________________________________________________________________ 72
2.6.2 Aplicações de Filtros FIR Adaptativos ___________________________________________________________________________ 74
2.7 Filtros Não Lineares _____________________________________________________________________________________________ 83
2.7.1 Filtro de Mediana ___________________________________________________________________________________________ 85
2.7.2 Aplicações do filtro de mediana ________________________________________________________________________________ 93
2.7.3 Introdução aos Filtros de Pilha ("Stack Filters") ___________________________________________________________________ 96
2.7.4 Filtros Morfológicos ________________________________________________________________________________________ 101
2.7.5 Aplicações de filtros morfológicos _____________________________________________________________________________ 103
Símbolos
x variável
x* conjugado de x
x(t) sinal contínuo
x(n) sinal discreto
X(Ω) Transformada de Fourier de sinais contínuos
X(ω) Transformada de Fourier de sinais contínuos
N número de amostras
T período
f frequência (Hz)
fl frequência de corte inferior
fc frequência de corte superior
Ω frequência angular (= 2πf radianos) para sinais contínuos
ω frequência angular (= 2πf radianos) para sinais discretos
t(n) degrau de Heaviside, discreto
δ (n) impulso de Dirac, discreto
sinc(x) seno cardinal de x (sin(x)/x)
⊗ operador de convolução
→ tende para
⇒ implica
⇔ em correspondência com
≡ definida por, equivalente a
Abreviaturas
PDS Processamento Digital de Sinal
sse se e só se
dB decibel
2 Filtros Digitais
Definição de Característica
ou de
Parâmetros de Característica (freq. de corte, ripples, etc.)
Projecto do Filtro
Implementação (hardware/software)
2.2 Distorção
De:
H (ω ) = Ce − jαω e Y (ω ) = X (ω ) H (ω ) resulta y (n) = Cx (n − α )
Logo, quando a fase é linear todas as componentes do sinal sofrem um mesmo atraso e não há distorção de fase.
2 1.5
x(n)
x(n)
1.5 1
1 0.5
0.5 0
n n
0 -0.5
-0.5 -1
-1 -1.5
-1.5 -2
0 4 8 12 16 20 24 28 32 36 40 44 48 0 4 8 12 16 20 24 28 32 36 40 44 48
Figura 2.2. Adição das mesmas componentes sinusoidais de um sinal, com fases diferentes.
Seja o sistema: H (ω ) = H (ω )e jθ (ω ) −π ≤ ω ≤ π ,
Consideremos que o sinal a processar é de muito maior comprimento que a resposta do sistema, tal como na Figura 2.3.
X(ω)
x(n) H(ω)
h(n) −σ σ
n -π π
θ(ω)
α
Figura 2.3.
Podemos, então, procurar uma aproximação:
Consideremos, agora, que o sinal de variação lenta é modulado com uma portadora de frequência ω0. Se a envolvente
x(n) da entrada x(n)cos(ω0n) tem uma variação lenta, a resposta do sistema pode ser aproximada por:
Vejamos as condições a impor à resposta impulsional finita (N amostras) do sistema. Seja θ(ω) a função de fase do
sistema:
θ(ω) = −αω.
o que assegura um atraso de fase nulo e atraso de grupo constantes (α). Temos:
N −1
N −1
sin(αω ) ∑n=0 h(n) sin(ωn)
H (ω ) = ± H (ω ) e − jαω = ∑ h ( n ) e − j ωn ⇒
cos(αω )
= N −1
n =0 ∑n=0 h(n) cos(ωn)
Há 2 casos a considerar:
h(0) = c
α = 0: ⇒ situação com pouco interesse.
h ( n ) = 0 n ≠ 0
α = ( N − 1) / 2
⇒ i.e., a resposta impulsional é simétrica.
h(n) = h( N − 1 − n), 0 ≤ n ≤ N − 1
Impondo apenas atraso de grupo constante:
H (ω ) = ± H (ω ) e j ( β −αω ) ,
α = ( N − 1) / 2; β = ±π / 2
⇒ i.e., a resposta impulsional é anti-simétrica.
h(n) = −h( N − 1 − n), 0 ≤ n ≤ N − 1
1.4 1.4
1.2 1.2
1 1
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
0 0
11
13
15
17
19
21
23
25
27
29
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
1
3
5
7
9
-0.2 -0.2
-0.4 -0.4
a b
Figura 2.4. Onda quadrada filtrada com [-0.2 1.4 -0.2] (a) e com [-0.1 1.4 -0.3] (b).
2.3.1 Introdução
( N −1) / 2
H (ω ) = ∑ h ( n ) e jωn
n = − ( N −1) / 2
Supomos N ímpar. Se for par, as conclusões são as mesmas, a menos de um atraso de "meia amostra".
Resposta simétrica:
( N −1) / 2 ( N −1) / 2
H (ω ) = h(0) + ∑ h(n)(e jωn +e − jωn ) = h(0) + ∑ 2h(n) cos(nω )
n =1 n =1
Resposta anti-simétrica:
( N −1) / 2
H (ω ) = −2 j ∑ h(n) sin(nω )
n =1
As versões causais têm uma fase linear correspondente a metade do comprimento do filtro: e − jω ( N −1) / 2
Exemplos:
a)
1/2 1
1/4
0.8
0.6
0 1 -1/9 0.4
0.2
Escrevemos:
0
0.00 0.63 1.26 1.88 2.51 3.14
h(n) = ]-1/9 1/4 1/2] -0.2
ou -0.4
h(n) = [1/2 1/4 -1/9[ -0.6
1 1 2
• H (ω ) = + cos ω − cos(2ω )
2 2 9
1 1 2
• H (0) = + − = 0.78
2 2 9
b)
1/2 1.2
1
0 1 0.8
-1/9
0.6
0.4
h(n) = ]-1/9 1/2 0] 0.2
0
0.00 0.63 1.26 1.88 2.51 3.14
-0.2
-0.4
2
• H (ω ) = sin ω − sin( 2ω )
9
• H (0) = 0 (sempre)
Filtro triangular t ( n ) = h( n) ⊗ h( n ) T (ω ) = H 2 (ω )
de 2N amostras
1.2 0
|H (ω )| 20 log10 |H (ω )|
1 -10
0.8 -20
dB
0.6 -30
0.4 -40
0.2 -50
0 -60
0.00 0.31 0.63 0.94 1.26 1.57 1.88 2.20 2.51 2.83 3.14 0.00 0.31 0.63 0.94 1.26 1.57 1.88 2.20 2.51 2.83 3.14
Figura 2.7. Características de amplitude do filtro de média de 7 amostras. Os zeros ocorrem em múltiplos de
2π/7 = 0.9.
Relativamente a uma característica ideal normalizada de um filtro passa-baixo, [1, 0], define-se:
• Ripple, R: desvio máximo da característica real face à característica ideal. Pode ser na zona de passagem (1), Rp, ou
na zona de rejeição (0), Rl. (para o filtro rectangular Rl ≈ [N sin(3π /( 2 N ))]−1 = 0.23 → −13 dB).
• Frequência de corte superior, fc: maior frequência na zona de passagem com atenuação igual ao ripple ou igual a
−3dB (0.708) na sua ausência. (para o filtro rectangular com N = 7, f c = 0.38 ).
• Frequência de corte inferior, fl: menor frequência na zona de rejeição com amplitude igual ao ripple. (para o filtro
rectangular com N = 7, f l = 0.72 )
Dado um filtro passa-baixo (LP), de resposta h(n), obtém-se um filtro passa-alto (HP) usando δ(n) − h(n) e, a partir
destes, o de passa-banda (BP) e o de rejeição de banda (BS), também designado por filtro tampão.
N = 11 N = 15
1.40 1.40
1.20 1.20
1.00 1.00
0.80 0.80
0.60 0.60
0.40 0.40
0.20 0.20
0.00 0.00
0.00 0.63 1.26 1.88 2.51 3.14 0.00 0.63 1.26 1.88 2.51 3.14
hp1(n)= ]0.1082 -0.2788 -0.0915 -0.1723 -0.2392 1- hp2(n)= ]0.0490 -0.0405 0.0248 0.0219 -0.0942 0.1739
0.2650] -0.2364 1-0.7400]
1.40 1.40
1.20 1.20
1.00 1.00
0.80 0.80
0.60 0.60
0.40 0.40
0.20 0.20
0.00 0.00
0.00 0.63 1.26 1.88 2.51 3.14 0.00 0.63 1.26 1.88 2.51 3.14
Figura 2.9. Filtros HP, BP e BS projectados com base nos filtros LP anteriores.
ωc
1 sin( nω c ) ω c
h( n) = ∫ e jωn dω = = sinc(nω c ), n ∈ ]− ∞, ∞[
2π −ω c πn π
A implementação por truncatura deste filtro origina o fenómeno de Gibbs na resposta em frequência:
Tempo Frequência
Janela de Característica Característica da
h(n)
Truncatura Ideal Janela
H(f)
1
1
x n ⇒ ⊗
f
-(N-1)/2 +(N-1)/2
-fc +fc
Figura 2.10
Em vez de truncar h(n) com a janela rectangular, usam-se janelas com os seguintes requisitos antagónicos, nas
frequências:
• Lobo principal de largura mínima
• Lobos laterais de área negligível
Janela rectangular:
• Menor lobo principal para um certo comprimento
• Maiores lobos laterais entre todas as janelas
Triangular 1 − 2n /( N − 1)
(Fejer)
m m é um inteiro > 0 que controla o
sin(2πn /( N − 1))
Lanczos 2πn /( N − 1) compromisso entre largura do lobo
principal vs. área dos lobos laterais.
1.2
1
Hanning
0.8 Hamming
0.6 Triangular
Lanczos
0.4
Kaiser
0.2
0
-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7
Figura 2.11. Janelas de truncatura. A de Lanczos está calculada com m = 1 e a de Kaiser com β = 5.
9 10
8
1
7 0.00 0.25 0.49 0.74 0.98 1.23 1.47
Hanning
6 0.1 Hanning
Hamming
5 Hamming
4 Triangular 0.01
Triangular
3 Lanczos
0.001 Lanczos
2 Kaiser
Kaiser
1 0.0001
0
0.00 0.25 0.49 0.74 0.98 1.23 1.47 0.00001
Figura 2.12. Resposta nas frequências das janelas de truncatura, representadas à direita em escala logarítmica
(m = 1 para Lanczos e β = 5 para Kaiser).
Figura 2.13. Resposta em amplitude de um filtro FIR LP com fc = 0.25 e N = 21 projectado com uma janela
rectangular (esquerda) e de Hamming (direita).
Seja D(ω) a característica desejada do filtro FIR e H(ω) a aproximação obtida. Então os desvios nas frequências, são
E(ω) = D(ω) − H(ω)
Podemos atribuir um peso diferente à qualidade de ajuste em várias bandas, usando uma função de pesos W(ω):
E(ω) = W(ω)(D(ω) − H(ω))
O critério de ajuste óptimo, consiste em:
π
Determinar H (ω ) ⇔ min ∫ L( E (ω ))dω , ∀ω ∈ [− π , π ]
−π
Normalmente para filtros prefere-se o critério de Tchebichef (critério equiripple), que satisfaz o Teorema da
Alternância:
A função H(ω), definida pela soma de r cosenos, para satisfazer o critério de Tchebichef deverá ter pelo menos r + 1
extremos, alternando máximos e mínimos.
N +1
Para N ímpar e resposta simétrica o número de extremos, Ne, em f ∈[0, 0.5] é: Ne ≤
2
f0 f1 f2 f3 f4 f5 f6 f7
Figura 2.14. Exemplo ilustrativo do Teorema da Alternância. O filtro com N = 15 exibe 8 extremos, fi: 6 na
banda passante e 2 na banda de rejeição.
Parks and McClellan (1973) desenvolveram um método de determinação de um filtro óptimo segundo o critério de
Tchebichef, usando o algoritmo da troca de Remez para obter um ajuste iterativo à resposta desejada.
O Filtro Equiripple Óptimo, para um dado N, é o filtro de menor equiripple e de menor banda de transição.
N comprimento do filtro
fc frequência de corte superior
fl frequência de corte inferior
Rp ripple na banda de passagem
Rl ripple na banda de rejeição
) D ( R p , Rl )
N= − f ( R p , Rl )∆B + 1
∆B
com:
[ ]
D( R p , Rl ) = a1 (log10 R p ) 2 + a 2 log10 R p + a 3 log10 Rl +
[a 4 (log 10 R p ) 2 + a 5 log10 R p + a 6 ]
f ( R p , Rl ) = b1 + b2 (log10 R p − log10 Rl )
Notar que a filtragem com um filtro de comprimento N exibe caudas de comprimento N/2.
Implementação prática:
• Iniciar a filtragem N/2 amostras depois do princípio e terminar N/2 amostras antes do fim (usado em processamento
on-line).
• Acrescentar N/2 amostras iguais aos valores extremos do sinal (usado em processamento off-line).
9 9
8 8
7 7
6 6
5 5
4 4
3 3
2 2
1 n 1 n
0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
Figura 2.15. Duas versões de filtragem (violeta) de um sinal original (preto): on-line (em cima) e off-line (em
baixo).
Exemplo 1:
2000
2500
1500
2000
1000
1500
1000
500
500
0
0
-500 -500
0 200 400 600 800 1000 1200 1400 1600 1800 2000 0 100 200 300 400 500 600
a b
Figura 2.16. a) ECG amostrado a 500 Hz, com ruído de 50 Hz; complexo de ondas do sinal (entre as amostras
400-900).
4 7
x 10 x 10 x 10
6
5 5 4
4.5
4 3.5
4
3
3.5 3
3 2.5
2
2.5 2
1
2
1.5
1.5 0
1
1
-1
0.5
0.5
0 -2 0
0 50 100 150 200 250 0 200 400 600 800 1000 1200 0 50 100 150 200 250
a b c
Figura 2.17. a) Espectro do complexo de ondas do sinal (o ruído de 50 Hz é claramente visível); b)
Autocorrelação, rxx(n), do complexo de ondas do sinal (rxx(0) é a energia do sinal + ruído = 4.7669*107); c)
Espectro de densidade espectral de energia (também chamado espectro de potência), Sx(ω) (transformada
discreta de Fourier de rxx(n)).
000
500
000
500
500
a b 0 200 400 600 800 1000 1200 1400 1600 1800 2000
Figura 2.18. a) Característica do filtro óptimo de Remez, LP; b) Sinal ECG filtrado com filtro LP.
Projecto de um filtro óptimo de Remez, BP:
fc1 = 0.06; fc2 = 0.14
fl1 = 0.09; fl2 = 0.11
Rc = 1%; Rl = 40 dB
Aplicando as fórmulas, obtém-se: N = 65.
000
500
000
500
500
a b 0 200 400 600 800 1000 1200 1400 1600 1800 2000
Figura 2.19. a) Característica do filtro óptimo de Remez, BP; b) Sinal ECG filtrado com filtro BP.
600 4.5
400 4
200 3.5
000 3
800 2.5
600 2
400 1.5
200 1
0 0.5
200 0
a 0 100 200 300 400 500 600 b 0 50 100 150 200 250
400 4
300 3.5
3
200
2.5
100
2
0
1.5
100
1
200
0.5
300 0
400 -0.5
c 0 100 200 300 400 500 600 d 0 200 400 600 800 1000 1200
Figura 2.20. a) Complexo de ondas do ECG filtrado com filtro BP (entre amostras 433-933: Matlab fornece o
sinal filtrado avançado de N/2); b) Espectro de potência do complexo filtrado com filtro BP; c) Diferença entre o
complexo do sinal original (400:900) e filtrado (433:933); d) Autocorrelação do sinal filtrado. Energia=3.66*107.
4
1.5
3.5
1
3
2.5
0.5
0 1.5
1
-0.5
0.5
-1 0
a 0 200 400 600 800 1000 1200 b 0 50 100 150 200 250
Figura 2.21. a) Autocorrelação do ruído, determinado pela diferença entre sinal original e sinal filtrado.
Energia: 1.048*107; b) Espectro de potência do sinal ECG filtrado com filtro óptimo de Remez, BP.
SNR ≅10log10(3.7629/1.4721) = 54 dB
Trata-se de usar como resposta de um filtro discreto a amostragem da resposta de um filtro analógico.
Im jΩ
e jω
jπ/Ts
σ
Re
-jπ/Ts
1 Ts 1 + z −1
H (s) = ⇒ H ( z) =
s − sp 2 − s p Ts 2 + s p Ts
1− z −1
2 − s p Ts
A transformada em z tem:
• Um zero em -1
2 + s p Ts
• Um pólo em
2 − s p Ts
• Um ganho de g = H (0) = − s −p1
Filtros de Butterworth:
1 2 1
H ( s) H (− s) = ; H (Ω ) =
1 + ( s / jΩ c ) 2 N 1 + (Ω / Ω c ) 2 N
[
Logo: H (Ω) dB = −10 log10 1 + (Ω / Ω c ) 2 N ]
J.P. Marques de Sá - Fac. Eng. Univ. do Porto, Portugal 2003
APSI - Processamento de Sinal 36
Filtros de Tchebichef:
1 2 1
H ( s) H (− s) = ; H (Ω) =
1 + µ 2 C N2 ( s / jΩ c ) 1 + µ 2 C N2 (Ω / jΩ c )
C N +1 ( x) = 2 xC N ( x) − C N −1 ( x); C 0 ( x) = 1, C1 ( x) = x
• Menor banda de transição, entre todos os filtros que usam só pólos, para dados ripples.
(
• Rp = 1+ µ 2 )
−1
Filtros elípticos:
1 2 1
H ( s) H (− s ) = 2
; H (Ω) =
1+ ε E N2 ( s / jΩ c ) 1+ ε 2
E N2 ( Ω / jΩ c )
• O filtro inclui zeros para além de pólos e tem menor banda de transição que os anteriores, para dados ripples.
• Rp depende de ε.
Exemplos:
a)
Determinação do filtro IIR passa-baixo destinado a ser usado com sinais amostrados a fs = 500 Hz, correspondente a
um filtro de Butterworth com decaimento de 20 dB por década e Ωc= 100 Hz.
2 1
H ( s) =
1 + (Ω / Ω c ) 2
1.2 0 Ω
|H(Ω)|
-1-250 -150 -50 50 150 250
1
-2
0.8 -3
-4
0.6
-5
0.4 -6 20log10|H(Ω)|
-7
0.2
-8
Ω
0 -9
-500 -250 0 250 500 -10
Figura 2.24. Amplitude em valor absoluto (esquerda) e em dB (direita) do filtro de Butterworth do exemplo.
Pré-enrolamento de Ωc:
2 0.2
Ts = 0.002 s; Ω* = tan = 100.3347
0.002 2
Logo:
1 + z −1
H ( z ) = 0.00909
1 − 0.818 z −1
b)
Filtros digitais para as seguintes especificações:
fc = 0.20; fl = 0.30.
Rc = 1.1%; Rl = 60dB.
2.4.3 Diferenciadores
|H(ω)| argH(ω)
1
π/2
fs
fs
Figura 2.27. Característica do diferenciador ideal.
n 1 + a k1 z −1 + a k 2 z −2
H ( z ) = A.∏
k =1 1 + bk1 z −1 + bk 2 z − 2
Condições a impor:
H ( z ) = (1 − z −1 ) H 1 ( z )
z −1
i (n) = cn ⇒ I ( z ) = c
(1 − z −1 ) 2
z −1
Logo Y ( z ) = H ( z ) I ( z ) ⇒ Y ( z ) = H 1 ( z )c
1 − z −1
Por forma a y(n) aproximar c para valores crescentes de n o Teorema do valor final impõe H 1 ( z = 1) = 1 , o que
condiciona o ganho A. Por forma a satisfazer as condições acima, temos:
−1 1 − a12 z −1 n 1 + a k1 z −1 + a k 2 z −2 n 1 + b k 1 + bk 2
H ( z ) = (1 − z ) ∏ 1+ a + a ∏ −1
1 − a12 k =2 k1 k2 k =1 1 + bk1 z + bk 2 z − 2
F1: H ( z ) = 1 − z −1
A minimização de J pode efectuar-se por técnicas de programação não-linear. Uma solução de ordem 2 é:
H ( z ) = 1.1115
(1 − z )(1 − 0.8125z )
−1 −1
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
0 5 10 15 20 25
Figura 2.28. Diferenciação de parte de um seno (verde) com ω=2π/8: resultado teórico (vermelho); resultado
com F1 (azul); resultado com F2 (preto).
-2
-4
-6
-8
0 5 10 15 20 25
Os filtros IIR têm, em geral, fase não linear, pelo que a sua aplicação em filtragens tem inconvenientes, se se pretende
manter no essencial a morfologia dos sinais.
Se dispomos de todo o sinal, podemos remediar este aspecto efectuando duas filtragens: uma para tempos crescentes e
outra para tempos decrescentes. De facto:
2
h(−n) ⊗ (h(n) ⊗ s (n)) ⇔ H (e − jω ) H (e jω ) S (e jω ) = H (e jω ) S (e jω )
Exemplo:
1.5
0.5
11
13
15
17
19
21
23
25
27
29
1
3
5
7
9
-0.5
-1
Figura 2.30. Exemplo da Figura 2.3 filtrado de novo em tempo decrescente (para um filtro FIR basta efectuar
uma segunda filtragem com a reflexão da resposta impulsional).
Os filtros IIR são úteis p. ex. na determinação da presença de certos componentes de onda ou da energia do sinal em
diversas bandas espectrais (a morfologia não interessa).
uV
-50
-100
6 8 10 12 14 16 18
100
Sonolência (olhos quase fechados)
50
uV
-50
-100
2 4 6 8 10 12
100
Sono REM
50
0
uV
-50
-100
2 4 6 8 10 12
Figura 2.31. Três sinais EEG correspondentes a distintos estados comportamentais (amplitude em µV; fs = 128
Hz).
Banda teta: 4 - 8 Hz
Banda alfa: 8 - 13 Hz
Banda beta: 13 - 35 Hz
Tarefa: Detecção de actividade alfa, usando um filtro de banda elíptico (fs = 128 Hz), com:
Rc = 1.1%; Rl = −40dB
Figura 2.32. Característica em amplitude do filtro elíptico utilizado para detecção da banda alfa do EEG (ordem
N = 4).
Caso 1 – Vigilância
8
500
6
000
4
500
2
000
0
500
-2
000
-4
500 -6
0 -8
a 0 20 40 60 80 100 120 140 b 0 200 400 600 800 1000 1200 1400 1600
200
180
160
140
120
100
6
12
4
10
2
8
0
6
-2
4
-4
2 -6
0 -8
a 0 20 40 60 80 100 120 140 b 0 200 400 600 800 1000 1200 1400 1600
10
0
c 0 20 40 60 80 100 120 140
2.5 Decimação-Interpolação
Considere-se o problema de remover a flutuação de linha-base, de um ECG amostrado a 500 Hz. A flutuação implica
frequências máximas ≤ 1 Hz.
2.5.1 Decimação
1. Se o sinal x(n) fosse simplesmente decimado haveria forte distorção devido à aloctonicidade.
|X(ω)|
ω
0 π 2π
|H(ω)|
ω
0 π/D π 2π
|W(ω)|
ω
0 π/D π 2π
|Y(ω)|
ω'
0 π 2π 4π 6π
Figura 2.37. Exemplos de espectros para a decimação.
2.5.2 Interpolação
Como se vê a seguir, os filtros a usar na decimação e interpolação com D = I podem ser os mesmos.
x(n) |X(ω)|
ω
n
0 π 2π 4π 6π
w(m) |W(ω)|
m
ω'
0 π/Ι π 2π
w(m) |Y(ω)|
m
ω'
0 π/Ι π 2π
Figura 2.39. Exemplos de sinais e espectros na operação de interpolação.
Exemplo:
Sinal x(n) constituído ela soma de dois cosenos x(n) = s1(n) + s2(n), respectivamente de frequência f1 = 0.1 e de
frequência f2 = 0.3.
2.0 2.0
1.5 1.5
1.0 1.0
0.5 0.5
0.0 0.0
x(n) -0.5 -0.5
-1.0 -1.0
-1.5 -1.5
-2.0 x(n) -2.0
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
w(n) 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
0.6
0.4
0.2
s1(n)
0.0
w(n)
y(n) -0.2
-0.4
-0.6
Figura 2.40. Decimação-interpolação, usando um
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 filtro rectangular, N = 7.
2.0 0.6
1.5
0.4
1.0
0.2
0.5
s1(n)
x(n) 0.0 0.0
w(n)
w(n) -0.5
y(n) -0.2
-1.0
-0.4
-1.5
-2.0 -0.6
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
u(n) é o sinal decimado do sinal original u0(n). Queremos que y(n) seja uma "boa" estimativa de u0(n).
u(n)
u0(n)
n
-3 0 3
a)
b)
Figura 2.42. Interpolação para r=3. Com um filtro de ordem N=7 (L=1) são usadas as seguintes amostras não
nulas: a) caso λ=1: 3 amostras: u(0), u(3) e u(6); b) caso λ=1, ρ =1: 2 amostras: u(3) e u(6).
r −1 2
2
∆y ρ (n) = y ρ (n) − x ρ (n) e ∆y = ∑ ∆y ρ (n) ,
ρ =0
r −1 r −1
u 0 ( n) = ∑ x ρ ( n) e y ( n) = ∑ y ρ ( n)
ρ =0 ρ =0
Cada sequência de erro depende de uma subsequência de h(n), p. ex. na Figura ∆y1 (n) depende de h(-1) e h(2).
O projecto do interpolador óptimo é dividido no projecto de r subfiltros que minimizam || ∆yο (n) ||2:
Lr
H ρ ( z) = ∑ h ρ (n) z − n
n = − Lr
|U0(ω)|
π/ 3 π 2π ω
0 f
fg=0.1 fr=1/r=0.167 fs/2=0.5
Figura 2.43. Um sinal de banda limitada, fg < 1/r. O factor de ocupação de banda é: α = 2rfg = 0.6.
π
u 0 (n) = U 0 (ω 0 ) e jω 0 n , com ω 0 < ω g = α ; α ∈ ] 0, 1 [
r
Obtém-se:
2
2 1 r −1 2π
) − e jρν ( 2π / r ) U 0 (ω )
2
∆Y ρ (ω ) = 2 ∑ H ρ (ω − ν
r ν =0 r
2π
A característica ideal, H ρ (ω − ν ) = e jρν ( 2π / r ) , é a da Figura.
r
Re[U0(ω)]
1
π/ 3 2π/ 3 π
ωg ωg-π/ 3 ωg+π/ 3 ω
0
Im[U0(ω)]
1
π
ω
0 ωg π/ 3 2π/ 3
Figura 2.44. Característica do interpolador ideal para r = 3.
A solução MMQ é:
h ρ = Φ T−1Φ ρ
com:
φ ( 0) φ (r ) K φ ((2 L − 1)r )
φ (r ) φ (0) K φ ((2 L − 2)r )
ΦT =
K K K K
φ ((2 L − 1)r ) φ ((2 L − 2)r ) K φ ( 0)
π
α
r
2
φ (k ) = ∫ U 0 (ω ) cos(kω ) dω
π
−α
r
1 L −1
com ε ρ2 = φ (0) −
r
∑ h(λr + ρ )φ (λr + ρ )
λ =− L
Conclusões idênticas para outras entradas de banda limitada.
L 1 2 3 4 5 6 7 8 9 10 L 1 2 3 4 5 6 7 8 9 10
0 0
α=0.2 α=0.3 α=0.2 α=0.3
-10 α=0.4 α=0.5
-10 α=0.4 α=0.5
-20 α=0.6 α=0.7 -20 α=0.6 α=0.7
-30 α=0.8 -30 α=0.8
-40 -40
-50 -50
-60 -60
-70 -70
-80 -80
-90 10log10(e2) r =6 -90 10log10(e2) r = 12
-100 -100
Figura 2.45. Erro do interpolador óptimo em dB para vários valores de L e α (abaixo de −60 dB há instabilidade
numérica).
Exemplo:
Projectar um interpolador óptimo para o exemplo anterior com erro inferior a −40dB
3.50
3.00
2.50
2.00
1.50
1.00
0.50
0.6π /3 π /3 2π /3
0.00
0.00 0.47 0.94 1.41 1.88 2.34 2.81 π
0.6
0.4
0.2
0.0
-0.2
-0.4
-0.6
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
1500
ECG original
1000
500
-500
1 501 1001 1501 2001 2501 3001 3501
1500
ECG D=2
1000
500
-500
1 251 501 751 1001 1251 1501 1751
1500
ECG D=2*5
1000
500
-500
1 126 251 376
1500
ECG D=2*5*5
1000
500
-500
1 26 51 76
1500
Flutuação fs=10Hz
1000
500
-500
1 26 51 76
1500
Flutuação Interpolada, fs=500Hz
1000
500
-500
1 501 1001 1501 2001 2501 3001 3501
1500
ECG sem Flutuação
1000
500
-500
1 501 1001 1501 2001 2501 3001 3501
Sinais ICG amostrados a 250 Hz, com banda útil em [1 125] Hz.
w0 w1 w2 ... wN-1
Σ
y(n)
Algoritmo
Adaptativo - t(n)
O filtro FIR adaptativo pode ser considerado como um perceptrão linear com:
• x(n) = [x(n) x(n − 1) K x(n − N + 1)] ' : vector das entradas no instante n.
[
• w ( n ) = w0( n ) w1( n ) ]
K w N( n−)1 ' : vector dos coeficientes do filtro no instante n.
• y (n) : saída do filtro no instante n.
• t (n) : resposta desejada do filtro (valor alvo) no instante n.
Ajustamos iterativamente w ( n ) por forma a minimizar e(n). Usando o MMQ, temos as equações normais:
∂E
= 0 ⇒ X ' XW ' = X ' T ⇒ W ' = ( X ' X) −1 X ' T
∂w
∂e 2 (n)
w ( n +1) = w ( n ) − η ⇒ w ( n +1) = w ( n ) + 2η e(n)x(n)
∂w
Mostra-se que:
[ ]
• A adaptação (convergência) só tem lugar para η < ηmax . Uma escolha criteriosa é η = k /( N E x 2 (n) ) , sendo
[ ]
E x 2 (n) a energia média do sinal (suposto estacionário) e k ∈ [0.1, 0.5] .
N +1
• A convergência para os valores óptimos dos coeficientes é feita com uma constante de tempo τ =
[
4η E x 2 (n) ].
O valor inicial dos coeficientes é arbitrário (frequentemente toma-se o valor zero).
Questão-chave:
t(n)
Transmissor Canal de Comunicação
x(n)
Filtro
Adaptativo
y'(n)
Réplica
t'(n) -
y(n)
Figura 2.55. Equalização adaptativa de canal: t(n) é um tem de impulsos, distorcido pelo canal de comunicação
em x(n).
Duas alternativas simples para a escolha de t(n):
a) Equalizar o canal usando, num período inicial de treino, uma réplica t' (n) de um certo t(n) conhecido.
b) Equalizar o canal usando, continuamente, uma versão limitada da saída.
Exemplo:
Canal de comunicação: Γ( z ) = 1
1− az −1
Comprimento do filtro: N = 10
1 .5 0 2 .5 0
t (n ) 2 .0 0 x (n )
1 .0 0
1 .5 0
0 .5 0 1 .0 0
0 .5 0 n
n
0 .0 0 0 .0 0
0 10 20 30 40 50 60 70 80 90 -0 .5 0 0 10 20 30 40 50 60 70 80 90
-0 .5 0
-1 .0 0
-1 .0 0 -1 .5 0
-2 .0 0
-1 .5 0 -2 .5 0
1.5 0 1.50
y ' (n ) y (n )
1.0 0 1.00
0.5 0 0.50
n n
0.0 0 0.00
0 10 20 30 40 50 60 70 80 90 0 10 20 30 40 50 60 70 80 90
-0.5 0 -0 .50
-1.0 0 -1 .00
-1.5 0 -1 .50
Figura 2.56. Sinais obtidos na experiência de equalização de canal na configuração a) e com η = 0.015.
2.00
y ' (n )
1.50
1.00
0.50
n
0.00
-0.50 0 10 20 30 40 50 60 70 80 90
-1.00
-1.50
-2.00
1.50
y (n )
1.00
0.50
n
0.00
0 10 20 30 40 50 60 70 80 90
-0.50
-1.00
-1.50
Figura 2.57. Sinais obtidos na experiência de equalização de canal na configuração b), com y(n) resultando de
uma limitação em [−0.5, 0.5] e com η = 0.015.
Note-se que neste exemplo se está a procurar cancelar um pólo usando 10 zeros.
1.6
1.4 |Η(ω)|
1.2 1/|Γ(ω)|
1
0.8
0.6
0.4
0.2 ω
0
0.00 1.57 3.14 4.71 6.28
Figura 2.58. Resposta nas frequências do filtro adaptativo, |H(ω)| e do inverso da resposta do canal, 1/|Γ(ω)|.
Figura 2.59. Remoção adaptativa de ruído. r1(n) é uma réplica do ruído verdadeiro r0(n).
Condições:
Temos:
[ ] [ ] = E[x (n)] + E[(r (n) − y(n)) ]
c)
2 2 2 2
E e (n) = E ( x(n) + r0 (n) − y (n)) 0
Logo:
min E [e (n)] = E [x (n)] + min E [(r (n) − y (n)) ] ⇒ y (n) ≈ r (n)
2 2
0
2
0
Exemplos:
a) Remoção do ruído de 50Hz do ECG
µV
1500
500
-500 0 1 2 3s
Figura 2.61. ECG (3.4 s) amostrado a 500 Hz, com ruído de 50 Hz. A amplitude é em µV.
250
µV
200
150
100
50
0
-50
-100
-150
-200
-250 0.6 s
0
Figura 2.62. Saída do filtro (preto) aproximando o ruído (cinzento) para η = 0.002. Primeiros 0.6 s.
2500
µV
1500
500
-500 0 1 2 3s
1000
800 ECG da mãe ECG ddo feto
600
400
200
0
-200
-400
-600
1 101 201 301 401 501 601 701 801 901 1001 1101 1201
Figura 2.65. ECG do feto com ECG da mãe, amostrado a 500 Hz.
400
300
200
100
0
-100
-200
-300
-400
-500
1 101 201 301 401 501 601 701 801 901 1001 1101 1201
Solução de filtragem algumas vezes desejável: • Atenuação de ruído em zonas "estáveis" do sinal
• Preservação das descontinuidades do sinal
O filtro necessita, assim, de ter um comportamento não linear, como no exemplo seguinte.
60 60
x (n ) x (n )
50 50
40 40
30 30
20 20
10 10
n n
0 0
0 10 20 30 40 50 60 70 80 90 0 10 20 30 40 50 60 70 80 90
a b
60 60
x (n ) x (n )
50 50
40 40
30 30
20 20
10 10
n n
0 0
0 10 20 30 40 50 60 70 80 90 0 10 20 30 40 50 60 70 80 90
c d
Figura 2.67. a) Sinal original; b) sinal + ruído; c) Filtrado com filtro de média de 7 amostras; d) idem, com filtro
de mediana.
Ideia-base:
Uma janela de 2N + 1 amostras percorre um sinal x(n). A saída é uma operação não linear de ordem N, ON (x(n)), sobre
os valores do sinal dentro da janela, x(n).
Assim:
• Quando temos sinal + ruído o resultado da filtragem não linear não pode ser independentemente avaliado para o
sinal e o ruído.
• Como consequência, o conceito de atenuação de potência de ruído não está bem definido, i.e. o tipo de
avaliações que fizemos p. ex. nos Exemplos da secção 2.3.4 podem não ter significado.
8
x(n)
7
y(n)
6
5
4
3
2
1
n
0
0 2 4 6 8 10 12 14 16 18 20 22
Definições:
• Vizinhança constante: região do sinal com pelo menos N + 1 pontos todos do mesmo valor.
• Aresta: subida ou descida monotónica rodeada por vizinhanças constantes.
• Impulso: conjunto de, no máximo, N pontos com valores diferentes das vizinhanças constantes iguais que o
rodeiam.
• Oscilação: sequência de pontos que não é nenhuma das configurações anteriores.
• Raiz de ordem N: sinal não alterado pela filtragem de um filtro de mediana de ordem N.
8 8
x(n)
7 x(n)
y(n) 7
y(n)
6 6
5 5
4
4
3
3
2
2
1
n 1
0 n
0
0 2 4 6 8 10 12 14 16 18 20 22
0 2 4 6 8 10 12 14 16 18 20 22
a med(0 1 1 1 2 )=1
b med(1 2 4 5 7 )=4
8 8
x(n) x(n)
7 7
y(n) y(n)
6 6
5 5
4 4
3 3
2 2
1 1
n n
0 0
0 2 4 6 8 10 12 14 16 18 20 22 0 2 4 6 8 10 12 14 16 18 20 22
c med(1 1 1 2 3 )=1
d med(1 2 4 5 7 )=4
Figura 2.69. Comportamento de um filtro de mediana de ordem 2, para vizinhanças constantes (a), arestas (b),
impulsos (c) e oscilações (d).
Note-se que se tivermos um impulso próximo de uma aresta pode haver uma deslocação da aresta ("edge jitter")
0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Figura 2.70. Filtragem de um sinal com impulso próximo de aresta com filtro de mediana de ordem N = 9. Notar
o "edge jitter".
8 x(n)
7
6
5
4
3
2
1
0
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
7 n
y(n) N =1
6
5
4
3
2
1
0
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
7
y(n) N =2
6
5
4
3
2
1
0
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
7
y(n) N =3
6
5
4
3
2
1
0
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
8
7 x (n)
6
5
4
3
2
1
0
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
7
y (n) N =1
6
5
4
3
2
1
0
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
7
y (n) N =1
6
5
4
3
2
1
0
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
7
y (n) N =2
6
5
4
3
2
1
0
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
7
y (n) N =2
6
5
4
3
2
1
0
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
Mostra-se que:
• Dado um sinal de comprimento L e um certo filtro de mediana, o sinal é reduzido a uma raiz depois de sucessivas
filtragens de no máximo (L − 2)/2 vezes.
• Qualquer raiz para um filtro de mediana é raiz para um filtro de mediana de menor comprimento.
1
y3
y2
0.5
x
y1
y1
0
y2
0 1 x
2 3 y3
4 5
6 7
Figura 2.73. Um sinal com L = 8 amostras necessitando de 3 passagens com um filtro de mediana de ordem N = 1
para atingir uma raiz.
90
FC
85
80
75
70
65
60
55 Hora
50
20
22
23
10
12
14
15
17
18
0
1
2
4
5
6
7
9
Figura 2.74. Evolução diária do ritmo cardíaco.
90
FC 90
85 85
FC
80 80
75 75
70 70
65 65
60 60
55 Hora
55
Hora
50 50
20 22 0 1 2 4 6 7 10 12 14 16 18
20
22
23
10
12
14
15
17
18
0
1
2
4
5
6
7
9
a b
90 90
FC FC
85 85
80 80
75 75
70 70
65 65
60 60
55 55
Hora Hora
50 50
20 22 0 1 2 4 6 7 10 12 14 16 18 20 22 0 1 2 4 6 7 10 12 14 16 18
c d
Figura 2.75. Ritmo cardíaco filtrado por mediana, com ordem N = 1 (b), N = 3 (c) e N = 4 (d).
b) Remoção de spikes.
200 200
150 150
100 100
50 50
0 0
0 100 200 300 400 500 600 700 800 900 0 100 200 300 400 500 600 700 800 900
a b
200 200
150 150
100 100
50 50
0 0
0 100 200 300 400 500 600 700 800 900 0 100 200 300 400 500 600 700 800 900
c d
Figura 2.76. Sinal FHR (Fetal Heart Rate) original (a) e sinal com remoção de spikes, filtrado por fioltro de
mediana com N = 1, 2 e 3 (resp. b, c e d).
Seja o sinal: 0 1 1 1 0 1 0 0 1 0
Para determinar a mediana numa janela de comprimento 2N + 1 = 5 basta contar o número de 1s; se excede N a
mediana é 1, se não é 0.
Logo, o resultado é:
0 1 1 1 1 0 0 0 0 0
Seja agora um sinal com M níveis de quantificação, i.e., tomando valor em [0, M – 1 ].
Vamos agora considerar "fatias" binárias do sinal conforme o valor está acima (1) ou abaixo (0) de um certo limiar j ∈
[1, M – 1 ]. Cada "fatia" é um sinal binário x(j)(i) obtido pela seguinte função de decomposição por limiar:
1 x(i ) ≥ j
x ( j ) (i ) =
0 x(i ) < j
Figura 2.77. Filtragem de mediana usando decomposição por limiar (adaptado de Astola J, Kuosmanen P,
1997).
Notar que:
M −1
x≤y sse xn ≤ yn ∀ n
Consideremos uma função Booleana f() sobre os bits de x. Diz-se que a função Booleana satisfaz a propriedade de
empilhamento se:
M −1
Stack (x; f ) = ∑ f (x ( m) )
m =1
Uma função Booleana positiva de N variáveis pode exprimir-se sob a forma de mínima soma-de-produtos:
k
f ( x1 , x2 , K , x N ) = ∑ ∏ xj ,
i =1 j∈Pi
onde os Pi são subconjuntos de {1, 2, ..., N}.
É possível mostrar que, em vez da operação de decomposição, podemos também exprimir o filtro de pilha da seguinte
forma:
{ { } { } {
Stack (x; f ) = max min x j : j ∈ P1 , min x j : j ∈ P2 , K , min x j : j ∈ Pk }}
Exemplo:
a)
A operação de mediana de três amostras pode exprimir-se pela função Booleana positiva f(x1, x2, x3) = x1x2 + x1 x3 +
x2 x3. Logo:
med(x1, x2, x3) = max{min{x1, x2}, min{x1, x3}, min{x2, x3}}
b)
Considere-se a seguinte função Booleana positiva:
O respectivo filtro de pilha pode ser implementado como (ver Figura 2.78):
Stack(x1, x2, x3, x4, x5, x6, x7) = max{min{x1, x2}, min{x2, x3, x4}, min{x3, x4, x5}, min{x4, x5, x6 }+ min{x6, x7}}
90
FC
85
80
75
70
65
60
55
50 Hora
0
1
2
4
5
6
7
9
20
22
23
10
12
14
15
17
18
Figura 2.78. Sinal do Exemplo 2.72 a) filtrado por mediana de ordem 3 e usando o filtro de pilha acima descrito.
• Operações de mais fácil implementação e de execução mais rápida (possibilidade de processamento paralelo)
• Possibilidade de realizar operações mais complexas (busca de melhor solução com Redes Neuronais).
8
7
6
5
4
3
2
1
0
1 2 3 4 5 6 7 8 9 10 11
8 8
7 x(n) x(n)
7
6 erosão 6 abertura
5 5
4 4
3 3
2 2
1 1
0 0
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
8 8
7 x(n) 7 x(n)
6 dilatação 6 fecho
5 5
4 4
3 3
2 2
1 1
0 0
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
200 160
140
150 120
100
100 80
60
50 40
20 erosão
0 0
0 100 200 300 400 500 600 700 800 900 0 100 200 300 400 500 600 700 800 900
200
150
100
50
dilatação
0 Figura 2.81. Ilustração de filtragem morfológica de
0 100 200 300 400 500 600 700 800 900 FHR.
Bibliografia