Buscar

INTRODUÇÃO ao PDS - Cap 5b Projeto de filtros digitais com Matlab - POLI-USP - Engenharia Elétrica

Prévia do material em texto

Projeto de filtros digitais usando o Matlab 
 
Projeto de filtros digitais IIR usando o Matlab 
 No contexto de um sistema de processamento digital de 
sinais de tempo contínuo (TC), temos o diagrama de blocos: 
 
ω=Ω/T 
amostragem sem rebatimento: 
Relação entre frequências importantes do sistema 
equivalente desejado Hc(jω) 
e as correspondentes frequências importantes 
para o sistema de tempo discreto que será projetado 
Projeto de filtro digital passa-baixas IIR 
Projeto de filtro digital passa-baixas IIR 
Exemplo de aplicação: 
 
Especificações para o filtro equivalente de TC 
faixa de passagem de 0 a 1000π rad/s, com critério de Rp = 1 dB 
 
faixa de rejeição de 2000π rad/s em diante, com critério de Rr= 40 dB 
 
frequência angular de amostragem igual a 20.000π rad/s 
ω=Ω/T 
Ωp = 0,1π rad será o limite para a faixa de passagem e Ωr = 0,2π rad o 
início da faixa de rejeição. Os valores de Rp e Rr são os mesmos para o 
sistema equivalente de TC. 
Projeto de filtro digital passa-baixas IIR 
Ωp = 0,1π rad será o limite para a faixa de passagem e Ωr = 0,2π 
rad o início da faixa de rejeição. Os valores de Rp e Rr são os 
mesmos para o sistema equivalente de TC. 
Reacerto das frequências importantes de TD para a norma do Matlab 
 
No Matlab, as frequências de TD que vão de 0 a π rad são divididas por π, 
passando, então, a cobrir a faixa de 0 a 1. Para seguir esta convenção, 
as frequências importantes calculadas acima passam a ser Wp = 0,1 e Wr = 0,
Projeto do filtro Butterworth para as especificações fornecidas 
 
 
 
n resultou igual a 8 
[n,Wn] = buttord(Wp,Wr,Rp,Rr) 
[n,wn]=buttord(0.1,0.2,1,40) 
determina a ordem n do filtro a ser usada pelo comando seguinte, butter, 
bem como uma frequência auxiliar Wn que também é necessária para o 
comando butter 
 
Notar que as frequências Wp e Wr são as frequências normalizadas para 
o intervalo de 0 a 1 das faixas de passagem e de rejeição. Utilizando as 
especificações numéricas acima fornecidas ou calculadas, o comando fica 
Para calcular os coeficientes a(k) e b(k) do filtro, lembrando que a(k) 
são os parâmetros da parte recursiva na equação de diferenças e b(k) são 
os da parte de média móvel, utiliza-se o comando 
 
[b,a]=butter(n,wn) 
====================================================== 
Se desejarmos verificar como ficou a FRF do filtro projetado usamos 
 
 
 
[H,w]=freqz(b,a,10000); 
em que o número 10000 foi escolhido arbitrariamente para calcular valores da FRF neste 
número de valores de frequência entre 0 e π rad. 
Para desenhar o módulo da FRF em dB, usamos plot(w/pi,20*log10(abs(H))), 
neste caso obtendo-se o eixo de frequência normalizada entre 0 e 1. Caso se 
deseje o eixo entre 0 e π rad basta não dividir o w por pi no comando acima. 
Para desenhar a curva de defasagem da FRF do filtro projetado, usamos 
plot(w/pi,unwrap(angle(H))) 
 
em que usamos o commando unwrap para o Matlab não dar saltos de 2π 
na fase quando ela sair da faixa entre – π e π. 
faixa de passagem: 0 a 1000π rad/s 
(Rp = 1 dB) Wp = 0,1 
 
faixa de rejeição: > 2000π rad/s 
(Rr= 40 dB) Wr = 0,2 
 
ωs = 20.000π rad/s 
Diagrama de polos e zeros do filtro digital resultante 
Real Part
-1 -0.5 0 0.5 1
Im
ag
in
ar
y 
Pa
rt
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
 zplane(b,a) 
Real Part
-1.05 -1 -0.95 -0.9
Im
ag
in
ar
y 
Pa
rt
-0.08
-0.06
-0.04
-0.02
0
0.02
0.04
Como implementar o filtro digital resultante ? 
b = 1.0e-04 *[0.0049 0.0391 0.1368 0.2737 0.3421 0.2737 0.1368 0.0391 0.0049] 
a = [1.0000 -6.1483 16.7106 -26.1941 25.8774 -16.4864 6.6107 -1.5246 0.1548] 
a(0) = 1 e C.I.s=0 
Coeficientes dados pelo Matlab têm várias casas decimais e uma implementação 
com número finito de bits pode requerer atenção pois o filtro realizado pode não 
ter a FRF desejada e/ou apresentar comportamentos inesperados como oscilações. 
Vide referências como Oppenheim e Schafer, Discrete-time Signal Processing, 2010. 
Projeto do filtro elíptico (Cauer) para as especificações fornecidas 
n resultou = 4 (bem menor do que para o Butterworth) 
Se desejarmos verificar como ficou a FRF do filtro IIR projetado usamos 
[H,w]=freqz(b,a,10000); 
faixa de passagem: 0 a 1000π rad/s 
(Rp = 1 dB) Wp = 0,1 
 
faixa de rejeição: > 2000π rad/s 
(Rr= 40 dB) Wr = 0,2 
 
ωs = 20.000π rad/s 
Módulo se anula, i.e., há zeros da 
função de transferência sobre 
a circunferência unitária. Fase 
dá salto de π 
Vejamos o respectivo diagrama de polos e zeros 
Real Part
-1 -0.5 0 0.5 1
Im
ag
in
ar
y 
Pa
rt
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
zplane(b2,a2) 
 
Comparação das curvas de módulo e defasagem dos 
dois filtros digitais projetados 
 
 Em preto o Butterworth e em vermelho o elíptico. Notar que o elíptico será mais 
eficiente de um ponto de vista computacional, pois sua ordem é 4 e não 8. 
 
Comparação das resposta a degrau dos dois filtros digitais 
projetados 
 
Butterworth (preto); elíptico (vermelho). As amostras foram unidas para fins de visualização. 
 
0 20 40 60 80 100 120
0
0.5
1
1.5
0 20 40 60 80 100 120
0
0.5
1
1.5
Note que o ganho DC 
resultou diferente ! Daonde veio isto? 
10 -3
-4 -2 0 2 4 6 8 10 12 14 16
-4
-2
0
2
10 -3
-2 0 2 4 6 8 10 12 14 16
-0.8
-0.6
-0.4
-0.2
0
Ganho DC do elíptico 1 dB menor: 0.8913 
ao invés de ganho = 1 
Mais oscilatório, mas atraso menor 
(ver td na curva de defasagem) 
Vide proposta de exercício computacional no texto em pdf sobre 
projeto de filtros digitais usando o Matlab, que se encontra no 
Moodle da disciplina. 
Para filtros IIR passa-altas, passa-faixa, rejeita-faixa, vide help do 
Matlab. Mas a maneira de se proceder é similar àquela que acabamos 
de apresentar. 
Para projetar filtros FIR, há métodos como do truncamento da resposta ao 
pulso unitário de filtro ideal por janela, de interpolação de amostras da 
FRF ideal desejada, de otimização. Vide help do Matlab e referências 
como Oppenheim e Schafer, Discrete-time Signal Processing, 2010. 
	 
	Slide Number 2
	Slide Number 3
	Slide Number 4
	Slide Number 5
	Slide Number 6
	Slide Number 7
	Slide Number 8
	Slide Number 9
	Slide Number 10
	Slide Number 11
	Slide Number 12
	Slide Number 13
	Slide Number 14
	Slide Number 15
	Slide Number 16

Continue navegando