Filtros Digitais
Carlos Alexandre Mello
Carlos Alexandre Mello – [email protected]
Filtros Digitais
Manipulação de Sinais
Implementados em Hardware ou Software
Componentes:
Somadores, multiplicadores e elementos de
retardo
Carlos Alexandre Mello – [email protected]
2
Filtros Digitais
Componentes
Somador
Multiplicador (ganho)
Multiplicador
Retardo
Carlos Alexandre Mello – [email protected]
3
Filtros Digitais
Exemplo
Suponha um filtro com equação de
diferenças definida por:
y[n] = a1.y[n – 1] + a2.y[n – 2] + b.x[n]
A representação em diagrama de blocos é
dada por:
Carlos Alexandre Mello – [email protected]
4
Filtros Digitais
Função de Sistema ou Função de Transferência
Relação entre a entrada e a saída de um
sistema
Para uma equação de diferenças:
A função de sistema é:
1
Carlos Alexandre Mello – [email protected]
5
Filtros Digitais
Podemos re-escrever a equação de
diferenças na forma:
que pode ser representada em diagrama de
blocos das seguintes formas....
Carlos Alexandre Mello – [email protected]
6
Filtros Digitais
Forma Direta I
Carlos Alexandre Mello – [email protected]
7
Filtros Digitais
Forma Direta II
(menos retardos)
Carlos Alexandre Mello – [email protected]
8
Filtros Digitais
Classificação
Os filtros são classificados quanto à sua
resposta ao impulso em:
Filtros FIR
Finite Impulse Response
Filtros IIR
Infinite Impulse Response
Carlos Alexandre Mello – [email protected]
9
Filtros FIR
Carlos Alexandre Mello – [email protected]
Filtros FIR
A estrutura de um filtro FIR é bastante
regular e, uma vez definidos os coeficientes
do filtro, ele pode ser completamente
especificado
Também chamado de feed-forward
Carlos Alexandre Mello – [email protected]
11
Filtros FIR
De uma maneira geral, filtros FIR podem ser
escritos da forma:
Com função de transferência:
Carlos Alexandre Mello – [email protected]
12
Filtros FIR
Assim, a resposta ao impulso h(n) é:
e a representação em equação de
diferenças é:
Carlos Alexandre Mello – [email protected]
13
Filtros FIR
Exemplo:
Se a entrada é: x[n] = [1, 0], considerando o sistema causal….
1
0.5
0.5
y[0] = 0.5
0
0
Carlos Alexandre Mello – [email protected]
Da mesma forma:
y[1] = 0.5
14
Filtros FIR
Logo, no diagrama anterior, temos:
y[0] = 0,5.x[0] + 0,5.x[-1]
y[1] = 0,5.x[1] + 0,5.x[0]
Ou, de forma geral:
y[n] = 0,5.x[n] + 0,5.x[n - 1]
Carlos Alexandre Mello – [email protected]
15
Filtros FIR
Exemplo:
y[n] = 0,2.x[n] + 0,6.x[n – 1]
Carlos Alexandre Mello – [email protected]
16
Filtros FIR
Por simplicidade, podemos representar o filtro apenas com
seus coeficientes:
Esse diagrama representa o filtro de equação:
y[n] = 1.x[n - 1] - 1.x[n]
Carlos Alexandre Mello – [email protected]
17
Filtros FIR
Podemos calcular o resultado da aplicação de uma
entrada a um filtro de forma simples:
Considere um filtro FIR de coeficientes [6, 7, 8] o qual recebe uma
entrada [1, 2, 3, 4, 5]; a saída será:
..que representa exatamente
uma soma de convolução…
Carlos Alexandre Mello – [email protected]
18
Filtros FIR
Ex: Se:
h1[n] = {1, 1, 1, 1}
h2[n] = {2, 0, 2}
x[n] = {2, 4, 6, 8, 10}
Calcule h1[n]*(h2[n]*x[n])
Calcule (h1[n]*h2[n])*x[n]
>> h1 = [1, 1, 1, 1];
>> h2 = [2 0 2];
>> x = [2 4 6 8 10];
>> w = conv(h2, x)
w=
4 8 16 24 32 16 20
>> y = conv(h1, w)
y=
4 12 28 52 80 88 92
>> w2 = conv(h1, h2)
w2 =
2 2 4 4 2 2
>> y = conv(w2, x)
y=
4 12 28 52 80 88 92
Carlos Alexandre Mello – [email protected]
68
36
20
68
36
20
19
Filtros FIR
Tipos de Filtros FIR: Passa-Baixa e Passa-Alta
Filtros ideais
Na prática, esses filtros apresentam
características diferentes como ondulações e
transições mais suaves...
Carlos Alexandre Mello – [email protected]
20
Filtros FIR
Tipos de Filtros FIR: Passa-Baixa e Passa-Alta
Carlos Alexandre Mello – [email protected]
21
Filtros FIR
Tipos de Filtros FIR: Passa-Baixa e Passa-Alta
ripples
transição
suave
ripples
Carlos Alexandre Mello – [email protected]
22
Filtros FIR
Tipos de Filtros FIR: Passa-Baixa e Passa-Alta
Para analisar o comportamento de um filtro, temos
que olhar para sua resposta em frequência
Transformada de Fourier
Suponha filtros FIR com coeficientes:
[0.5 0.5]: y[n] = 0,5.x[n] + 0,5.x[n – 1] = (x[n]+x[n – 1])/2
[0.5 -0.5]: y[n] = 0,5.x[n] - 0,5.x[n – 1] = (x[n]-x[n – 1])/2
FPB chamado Filtro da Média
FPA chamado Filtro da Diferença
Suas respostas em frequência são:
Carlos Alexandre Mello – [email protected]
23
Filtros FIR
Tipos de Filtros FIR: Passa-Baixa e Passa-Alta
[0.5 0.5] = FPB
No MatLab:
x = [0.5, 0.5];
f = fft(x,8192);
freq = -5:10/8192:5-1/8192;
plot(freq, abs(fftshift(f)));
[0.5 -0.5] = FPA
x = [0.5, -0.5];
f = fft(x,8192);
freq = -5:10/8192:5-1/8192;
plot(freq, abs(fftshift(f)));
Carlos Alexandre Mello – [email protected]
24
Filtros FIR
Tipos de Filtros FIR: Passa-Baixa e Passa-Alta
Vamos analisar o FPA:
y[n] = (x[n] - x[n – 1])/2
Pequenas diferenças entre as amostras resultam em
valores pequenos
Grandes diferenças entre as amostras resultam em
valores grandes
Assim, a resposta em frequência desse filtro deve
atenuar mudanças suaves no sinal (como as
relacionadas com as baixas frequências) e enfatizar
mudanças rápidas (como as relacionadas com as
altas frequências)
Carlos Alexandre Mello – [email protected]
25
Filtros FIR
Tipos de Filtros FIR: Notch e Passa-Faixa
Carlos Alexandre Mello – [email protected]
26
Filtros FIR
Para ver como é o comportamento de um
filtro, devemos ver sua resposta em
frequência através da Transformada de
Fourier de seus coeficientes
Carlos Alexandre Mello – [email protected]
27
Filtros FIR
Exemplo:
>> B2 = fir1(100, 0.3, ‘low');
>> x = zeros (1, 1000);
>> x(50) = 1; % x é um impulso
>> Y2 = fft(conv(x, B2));
% apresentamos metade apenas pois
% o resto é simétrico
>> half = 1:ceil(length(Y2)/2);
>> plot(half/max(half), abs(Y2(half)), 'b');
Carlos Alexandre Mello – [email protected]
28
Filtros FIR
Exemplo:
Carlos Alexandre Mello – [email protected]
29
Filtros FIR
Exemplo:
>> B2 = fir1(100, 0.3, ‘high');
>> x = zeros (1, 1000);
>> x(50) = 1; % x é um impulso
>> Y2 = fft(conv(x, B2));
% apresentamos metade apenas pois
% o resto é simétrico
>> half = 1:ceil(length(Y2)/2);
>> plot(half/max(half), abs(Y2(half)), 'b');
Carlos Alexandre Mello – [email protected]
30
Filtros FIR
Exemplo:
Carlos Alexandre Mello – [email protected]
31
Filtros FIR
Exemplo:
>> fdatool
Carlos Alexandre Mello – [email protected]
32
Filtros FIR
Carlos Alexandre Mello – [email protected]
33
Filtros FIR
Carlos Alexandre Mello – [email protected]
34
Filtros FIR
Fase linear
Carlos Alexandre Mello – [email protected]
35
Filtros FIR
Carlos Alexandre Mello – [email protected]
36
Filtros FIR
Carlos Alexandre Mello – [email protected]
37
Filtros FIR
Carlos Alexandre Mello – [email protected]
38
Filtros FIR
Carlos Alexandre Mello – [email protected]
39
Filtros FIR
/* * Filter Coefficients (C Source) generated by the Filter Design and Analysis Tool
* Generated by MATLAB(R) 7.7 and the Signal Processing Toolbox 6.10.
* Generated on: 02-Apr-2010 20:47:53
*/
/*
* Discrete-Time FIR Filter (real)
* ------------------------------* Filter Structure : Direct-Form FIR
* Filter Length : 51
* Stable
: Yes
* Linear Phase
: Yes (Type 1)
*/
/* General type conversion for MATLAB generated C-code */
#include "tmwtypes.h"
/*
* Expected path to tmwtypes.h
* D:\MATLABR2008b\extern\include\tmwtypes.h
*/
const int BL = 51;
const real64_T B[51] = {
-0.0009190982084802,-0.002717696026613,-0.002486952759855, 0.003661438383488, 0.01365092523065, 0.0173511659011, 0.007665306190435,0.006554718869626, -0.00769678403705, 0.006105459421406, 0.01387391574864,0.0003508617282953, -0.01690892543669,-0.008905642749153,
0.01744112950086, 0.02074504452761, -0.01229649425194, -0.03424086590958,-0.001034529605573, 0.0477903055208, 0.02736303791485, 0.05937951883105, -0.08230702592923, 0.06718690943287, 0.3100151770902, 0.4300478803435, 0.3100151770902, 0.06718690943287, 0.08230702592923, -0.05937951883105, 0.02736303791485, 0.0477903055208, -0.001034529605573, -0.03424086590958, -0.01229649425194,
0.02074504452761, 0.01744112950086,-0.008905642749153, -0.01690892543669,0.0003508617282953, 0.01387391574864, 0.006105459421406, 0.00769678403705,-0.006554718869626, 0.007665306190435, 0.0173511659011, 0.01365092523065, 0.003661438383488, -0.002486952759855,0.002717696026613,-0.0009190982084802
};
Carlos Alexandre Mello – [email protected]
40
Filtros FIR
Código VHDL
Carlos Alexandre Mello – [email protected]
41
Filtros FIR
Exemplo:
>> [som, Fs] = wavread('a_casa.wav');
>> Fs
Fs = 22050
>> soundsc(som, Fs)
>> h = [1 -1]; % h = 1 –z-1
>> y = filter(h, 1, som);
>> soundsc(y, Fs)
Carlos Alexandre Mello – [email protected]
42
Filtros FIR
Magnitude
Carlos Alexandre Mello – [email protected]
Fase
43
Filtros FIR
Exemplo:
>> [som, Fs] = wavread('a_casa.wav');
>> Fs
Fs = 22050
>> soundsc(som, Fs)
>> h = [1 -0.9375]; % h = 1 – 0.9375z-1
>> y = filter(h, 1, som);
>> soundsc(y, Fs)
Carlos Alexandre Mello – [email protected]
44
Filtros FIR
Magnitude
Carlos Alexandre Mello – [email protected]
Fase
45
Filtros FIR
Sinal original
Carlos Alexandre Mello – [email protected]
46
Filtros FIR
Filtro de fase linear
Carlos Alexandre Mello – [email protected]
47
Filtros FIR
Filtro de fase não-linear
Carlos Alexandre Mello – [email protected]
48
Filtros FIR – Fase Linear
Em diversas aplicações como processamento de
voz ou som, filtros digitais são usados para
implementar operações seletivas de frequência
Assim, especificações são necessárias no
domínio da frequência em termos de magnitude
desejada e resposta em fase do filtro
Em geral, uma resposta em fase linear na banda
de passagem é desejada
Carlos Alexandre Mello – [email protected]
49
Filtros FIR – Fase Linear
Carlos Alexandre Mello – [email protected]
50
Filtros FIR – Fase Linear
Considere um sistema LTI cuja resposta em
frequência sobre um período é:
onde α é um número real
Tal sistema tem magnitude e fase linear:
Carlos Alexandre Mello – [email protected]
51
Filtros FIR – Fase Linear
A transformada de Fourier inversa de
Hid(ejw) é a resposta ao impulso
Carlos Alexandre Mello – [email protected]
52
Filtros FIR – Fase Linear
Carlos Alexandre Mello – [email protected]
53
Filtros FIR – Fase Linear
A saída desse sistema para uma entrada
qualquer x[n] é:
Carlos Alexandre Mello – [email protected]
54
Filtros FIR – Fase Linear
Se α = nd, com nd inteiro, então:
e
i.e., se α = nd um inteiro, o sistema com fase
linear e ganho unitário simplesmente
desloca a sequência de entrada de nd
amostras
Carlos Alexandre Mello – [email protected]
55
Filtros FIR – Fase Linear
De forma geral, um sistema será dito de
fase linear generalizada se sua resposta em
frequência puder ser expressa na forma:
onde α e β são constantes e A(ejw) é uma
função real em w
Carlos Alexandre Mello – [email protected]
56
Filtros FIR – Fase Linear
Por exemplo, para o filtro de fase linear:
temos β = 0 e resposta ao impulso:
Se ωc = π, então temos
a equação anterior.
Carlos Alexandre Mello – [email protected]
57
Filtros FIR – Fase Linear
Quando α é um inteiro, por exemplo nd:
Nesse caso, temos um sistema de fase zero
Carlos Alexandre Mello – [email protected]
58
Filtros FIR – Fase Linear
Se 2α é um inteiro (lembrando que α = nd),
o que implica que α é um inteiro ou um
inteiro mais 0.5, a resposta ao impulso tem
simetria sobre α, i.e.:
h[2α - n] = h[n]
Carlos Alexandre Mello – [email protected]
59
Filtros FIR – Fase Linear
Um sistema cuja resposta em frequência
tem a forma:
é chamado de sistema de fase linear
generalizada já que a fase de tal sistema
consiste de termos constantes adicionados
á função linear -ωα
Carlos Alexandre Mello – [email protected]
60
Filtros FIR – Fase Linear
Ou seja, a fase linear é de forma mais geral:
onde α e β são constantes reais
Carlos Alexandre Mello – [email protected]
61
Filtros FIR – Fase Linear
⇒
⇒
Como:
Carlos Alexandre Mello – [email protected]
62
Filtros FIR – Fase Linear
Então:
Carlos Alexandre Mello – [email protected]
63
Filtros FIR – Fase Linear
Logo:
Carlos Alexandre Mello – [email protected]
64
Filtros FIR – Fase Linear
Com isso:
Carlos Alexandre Mello – [email protected]
65
Filtros FIR – Fase Linear
Carlos Alexandre Mello – [email protected]
66
Filtros FIR – Fase Linear
Resumindo, se β = 0 ou π, 2α = M inteiro,
podemos ter:
Se β = π/2 ou 3π/2, 2α = M inteiro, podemos
ter
h[2α - n] = h[n]
h[2α - n] = -h[n]
Essas duas condições garantem um
sistema de fase linear generalizada
Carlos Alexandre Mello – [email protected]
67
Filtros FIR – Fase Linear
Causalidade implica que:
n < 0 e n > M, M inteiro
i.e., sistemas FIR causais têm fase linear
generalizada se eles têm resposta ao impulso
de comprimento (M + 1) e satisfazem:
h[n] = 0,
h[2α - n] = h[n]
ou
h[2α - n] = -h[n]
Carlos Alexandre Mello – [email protected]
68
Filtros FIR – Fase Linear
Especificamente, se
então pode ser mostrado que
h[n] = h[M – n], 0 ≤ n ≤ M,
= 0,
caso contrário
H(ejw) = AP(ejw)e-jwM/2
onde AP(ejw) é uma função real, par e
periódica em w
Carlos Alexandre Mello – [email protected]
69
Filtros FIR – Fase Linear
De forma similar, se
segue que:
h[n] = -h[M – n], 0 ≤ n ≤ M,
= 0,
caso contrário
H(ejw) = jAI(ejw)e-jwM/2 = AI(ejw)e-jwM/2 + jπ/2
onde AI(ejw) é uma função real, ímpar e
periódica em w
Carlos Alexandre Mello – [email protected]
70
Filtros FIR – Fase Linear
Dependendo da sua resposta ao impulso,
os filtros FIR podem ser divididos em quatro
classes:
Sistemas FIR com fase linear do Tipo I
Sistemas FIR com fase linear do Tipo II
Sistemas FIR com fase linear do Tipo III
Sistemas FIR com fase linear do Tipo IV
Carlos Alexandre Mello – [email protected]
71
Sistemas FIR com fase linear do
Tipo I
Um sistema do tipo I tem resposta ao
impulso simétrica
0≤n≤M
com M um inteiro par
h[n] = h[M – n],
O atraso M/2 é um inteiro
A resposta em frequência é:
Carlos Alexandre Mello – [email protected]
72
Sistemas FIR com fase linear do
Tipo I
Considerando a condição de similaridade,
essa resposta em frequência pode ser
expressa como:
onde a[0] = h[M/2],
a[k] = 2h[(M/2) – k],
k = 1, 2, 3, ..., M/2
Assim, H(ejw) tem a forma de AP(ejw)e-jwM/2
Carlos Alexandre Mello – [email protected]
73
Sistemas FIR com fase linear do
Tipo II
Um sistema do tipo II tem resposta ao
impulso simétrica
h[n] = h[M – n],
0≤n≤M
com M um inteiro ímpar
A resposta em frequência é:
Onde:
H(ejw) tem a forma de AP(ejw)e-jwM/2
Carlos Alexandre Mello – [email protected]
74
Sistemas FIR com fase linear do
Tipo III
Um sistema do tipo III tem resposta ao
impulso anti-simétrica
h[n] = -h[M – n],
0≤n≤M
com M um inteiro par
A resposta em frequência é:
Onde:
H(ejw) tem a forma de AI(ejw)e-jwM/2 + jπ/2
Carlos Alexandre Mello – [email protected]
75
Sistemas FIR com fase linear do
Tipo IV
Um sistema do tipo IV tem resposta ao
impulso anti-simétrica
h[n] = -h[M – n],
0≤n≤M
com M um inteiro ímpar
A resposta em frequência é:
Onde:
H(ejw) tem a forma de AI(ejw)e-jwM/2 + jπ/2
Carlos Alexandre Mello – [email protected]
76
Sistemas FIR com fase linear
Exemplos
Tipo I, M par
h[n] = 1, 0 ≤ n ≤ 4, e 0, caso contrário
Magnitude
Fase
Carlos Alexandre Mello – [email protected]
77
Sistemas FIR com fase linear
Exemplos
Tipo II, M ímpar
h[n] = 1, 0 ≤ n ≤ 5, e 0, caso contrário
Magnitude
Fase
Carlos Alexandre Mello – [email protected]
78
Sistemas FIR com fase linear
Exemplos
Tipo III, M par
h[n] = δ[n] - δ[n – 2]
Magnitude
Fase
Carlos Alexandre Mello – [email protected]
79
Sistemas FIR com fase linear
Exemplos
Tipo IV, M ímpar
h[n] = δ[n] - δ[n – 1]
Magnitude
Fase
Carlos Alexandre Mello – [email protected]
80
Filtros IIR
Carlos Alexandre Mello – [email protected]
Filtros IIR
Permitem retro-alimentação (feedback)
y[n] = 0.6*x[n] + 0.2*x[n-1] + 0.4*y[n – 1]
Resposta a
um Impulso...
Diminui, nunca acaba,
mas tende a zero....
Carlos Alexandre Mello – [email protected]
82
Filtros IIR
y[n] = 0.6*x[n] + 0.2*x[n-1] + y[n – 1]
Resposta a
um Impulso...
A saída nunca zera....
Carlos Alexandre Mello – [email protected]
83
Filtros IIR
y[n] = 0.6*x[n] + 0.2*x[n-1] + 1.1*y[n – 1]
Resposta a
um Impulso...
A saída cresce mesmo com
entrada nula....
84
Carlos Alexandre Mello – [email protected]
84
Filtros IIR
De uma maneira geral, os filtros IIR são
expressos como:
Função de
Transferência
Carlos Alexandre Mello – [email protected]
85
Filtros IIR
Forma Direta I
Carlos Alexandre Mello – [email protected]
86
Filtros IIR
Forma Direta II
Carlos Alexandre Mello – [email protected]
87
Filtros IIR
Exemplo 1:
Forma Direta I
Carlos Alexandre Mello – [email protected]
88
Filtros IIR
Exemplo 1:
Forma Direta II
Carlos Alexandre Mello – [email protected]
89
Filtros IIR
Exemplo 2: Conexão em Cascata
Como os pólos e zeros são reais, uma estrutura
em cascata tem seções com coeficientes reais.
Duas estruturas em cascata equivalentes
podem ser criadas para essa função:
Carlos Alexandre Mello – [email protected]
90
Filtros IIR
Exemplo 2: Conexão em Cascata
Carlos Alexandre Mello – [email protected]
91
Filtros IIR
Exemplo 2: Conexão em Cascata
Carlos Alexandre Mello – [email protected]
92
Filtros IIR
Exemplo 3: Conexão em Paralelo
Seção de ordem 2
Carlos Alexandre Mello – [email protected]
93
Filtros IIR
Exemplo 3: Conexão em Paralelo
Carlos Alexandre Mello – [email protected]
94
Bibliografia Complementar
Vinay K. Ingle, John G. Proakis, Digital
Signal Processing, Thomson Learning,
2000.
Michael Weeks, Digital Signal Processing
Using MatLab and Wavelets, Infinity Science
Press, 2007.
Alan V. Oppenheim, Ronald Schafer,
Discrete Time Signal Processing, Prentice
Hall, 1989
Carlos Alexandre Mello – [email protected]
95
Download

Filtros Digitais