Upload
nguyenque
View
221
Download
0
Embed Size (px)
Citation preview
Filtros IIR
Luis Henrique Assumpcao Lolis
19 de maio de 2016
http://www.eletrica.ufpr.br/~luis.lolis
Conteudo
1 Introducao
2 Filtros IIR
3 Transformada bilinear
4 Ferramentas de design de filtros
5 Implementacao em C
6 O laboratorio
7 Experimento
Luis Henrique Assumpcao Lolis Filtros IIR 2
Sumario
1 Introducao
2 Filtros IIR
3 Transformada bilinear
4 Ferramentas de design de filtros
5 Implementacao em C
6 O laboratorio
7 Experimento
Luis Henrique Assumpcao Lolis Filtros IIR 3
Objetivos
Testar filtros de resposta ao impulso infinita (IIR - InfiniteImpulse Response).
Aplicar diferentes jogos de coeficientes para diferentesrespostas em frequencia.
Testar diferentes janelas de filtragem.
Problemas de estabilidade e arredondamente com filtros IIR.
Luis Henrique Assumpcao Lolis Filtros IIR 4
Luis Henrique Assumpcao Lolis Filtros IIR 5
Sumario
1 Introducao
2 Filtros IIR
3 Transformada bilinear
4 Ferramentas de design de filtros
5 Implementacao em C
6 O laboratorio
7 Experimento
Luis Henrique Assumpcao Lolis Filtros IIR 6
Filtros IIR depende tanto de versoes atrasadas da entrada,quanto de versoes atrasdas da saıda:
H(z) =Y (z)
X(z)=
M∑k=0
bkz−k
N∑k=0
akz−k
Luis Henrique Assumpcao Lolis Filtros IIR 7
Exemplo de um segunda ordem no simulink
H(z) =y(z)
x(z)=a0 + a1z
−1 + a2z−2
b0 + b1z−1 + b2z−2
Luis Henrique Assumpcao Lolis Filtros IIR 8
Testando filtros IIR no MATLAB
Com a funcao “freqz”, analisar o resultado de um zero e oresultado de um polo na funcao de transferencia.
Analisar os polos e zeros das funcoes com a funcao “zplane”
a = [1− 0.8], b = [1]
a = [1], b = [1− 0.8]
Luis Henrique Assumpcao Lolis Filtros IIR 9
Filtros Notch
Para rejeitar uma frequencia especıfica. Ex: a oscilacao da rede(50Hz ou 60Hz).
Luis Henrique Assumpcao Lolis Filtros IIR 10
Sumario
1 Introducao
2 Filtros IIR
3 Transformada bilinear
4 Ferramentas de design de filtros
5 Implementacao em C
6 O laboratorio
7 Experimento
Luis Henrique Assumpcao Lolis Filtros IIR 11
Transformada bilinear
Evita o aliasing da resposta em frequencia na passagem dofiltro no tempo contınuo para o tempo discreto.
A relacao entre a frequencia contınua e discreta e definidacomo uma tangente de tal forma que ω → π para Ω→∞
Relacao s⇔ z
s =2
Td
(1− z−1
1 + z−1
), z =
1 + (Td/2)s
1− (Td/2)s
Para as frequencias:
Ω =2
Tdtan(ω/2) ω = 2 arctan(ΩTd/2) height
Luis Henrique Assumpcao Lolis Filtros IIR 12
Relacao entre Ω e ω na bilinear
Luis Henrique Assumpcao Lolis Filtros IIR 13
Etapas para o design
1 Pre-distorcao das frequencias das especificacoes.
2 Definicao do ripple maximo (quando aplicado a Chebyshev eElıptico)
3 Aplicacao da funcao de filtragem para encontrar a ordemmınima N considerando o ripple maximo para as frequenciasda banda passante e da banda de rejeicao.
4 Aplicar N e encontrar Ωc na equacao do filtro.
5 Definicao dos polos e de H(s)
6 Aplicacao da transformada bilinear.
Luis Henrique Assumpcao Lolis Filtros IIR 14
Exemplo de filtro butterworth de segunda ordem
Rodar o arquivo “analisar iir.m”
Testar para diferentes frequencias de amostragem, funcoes defiltragem e frequencia de amostragem.
Luis Henrique Assumpcao Lolis Filtros IIR 15
Sumario
1 Introducao
2 Filtros IIR
3 Transformada bilinear
4 Ferramentas de design de filtros
5 Implementacao em C
6 O laboratorio
7 Experimento
Luis Henrique Assumpcao Lolis Filtros IIR 16
FDATOOL do Matlab
Lancar “fdatool”
Luis Henrique Assumpcao Lolis Filtros IIR 17
Sumario
1 Introducao
2 Filtros IIR
3 Transformada bilinear
4 Ferramentas de design de filtros
5 Implementacao em C
6 O laboratorio
7 Experimento
Luis Henrique Assumpcao Lolis Filtros IIR 18
Implementacao em C
Luis Henrique Assumpcao Lolis Filtros IIR 19
Sumario
1 Introducao
2 Filtros IIR
3 Transformada bilinear
4 Ferramentas de design de filtros
5 Implementacao em C
6 O laboratorio
7 Experimento
Luis Henrique Assumpcao Lolis Filtros IIR 20
Setup 1
Luis Henrique Assumpcao Lolis Filtros IIR 21
Setup 2
Luis Henrique Assumpcao Lolis Filtros IIR 22
Copiar o conteudo do projeto IIR e criar projeto no CCS.Existem 3 funcoes “main” e somente uma deve ser levada emconta para cada compilacao.Clicar com o botao direiro nos arquivos main que nao seraousados e clicar em exclude from build.
Luis Henrique Assumpcao Lolis Filtros IIR 23
main.c
Gera uma serie de filtros para uso com uma entrada de linha.
Luis Henrique Assumpcao Lolis Filtros IIR 24
main1.c
Gera um sweep de frequencias para analisar o impacto dediferentes filtros.
Luis Henrique Assumpcao Lolis Filtros IIR 25
main3.c
Gera um filtro notch para limitar uma frequencia especıfica.
Luis Henrique Assumpcao Lolis Filtros IIR 26
main4.c
Gera uma onda quadrada de N pontos para analise deresposta em frequencia no MATLAB com FFT de N pontospara diferentes filtros.
Rodar o codigo “scope.slx” para visualizar as respostas emfrequencia dos filtros.
Luis Henrique Assumpcao Lolis Filtros IIR 27
Alterando o modo de funcionamento com a JTAG
Na funcao “main”, Comentar a linha que atualiza o valor davariavel “step”.
//Step = LEDFlasher(10); // Takes total number of steps asargument, here 10.
Adicionar em “Watch” na perspectiva C/C++ a variavel “Step”
Luis Henrique Assumpcao Lolis Filtros IIR 28
Alterando “on the fly”
Rodar o codigo.
Pausar o codigo.
Trocar o valor da variavel Step.
Continuar a rodar o codigo.
Luis Henrique Assumpcao Lolis Filtros IIR 29
Sumario
1 Introducao
2 Filtros IIR
3 Transformada bilinear
4 Ferramentas de design de filtros
5 Implementacao em C
6 O laboratorio
7 Experimento
Luis Henrique Assumpcao Lolis Filtros IIR 30
Crie um filtro que respeite a seguinte mascara de filtragem:
H(jΩ)dB =
H(jΩ)dB < −40dB, 0 ≤ |Ω| ≤ 250HzH(jΩ)dB > −3dB, 300 ≤ |Ω| ≤ 3000HzH(jΩ)dB < −40dB, |Ω| ≥ 3200Hz
Trace a resposta em frequencia teorica do filtro.
Implemente o filtro no DSP.
Com o experimento de main4.c trace a resposta em frequenciaobservada na saıda do DSP.
Discuta sobre as diferencas.
Luis Henrique Assumpcao Lolis Filtros IIR 31