Estudo comparativo entre filtros digitais FIR e...
Transcript of Estudo comparativo entre filtros digitais FIR e...
Centro Federal de Educação Tecnológica de Santa Catarina - CEFET-SC CST em Sistemas de Telecomunicações
1 de 10 São José, Santa Catarina, de 19 de Dezembro de 2008
Estudo comparativo entre filtros digitais FIR e IIR
José Paulo de Oliveira Petry [email protected]
Resumo: Neste artigo será realizado o projeto de filtros, analógicos e digitais, passa baixa e passa faixa utilizando os métodos IIR e FIR para os filtros digitais. Pretende-se realizar uma comparação entre os dois métodos analisando as respostas em freqüência de magnitude, fase, resposta ao impulso e seus pólos e zeros de modo a encontrar a melhor solução entre os filtros disponíveis. Palavras-chave: filtro digital; FIR; IIR;. 1. Introdução
Um filtro tem como objetivo restringir a passagem de freqüências não desejáveis. Essa restrição é realizada atenuando as freqüências indesejadas. Pode ser definido como:
· Filtro Passa Baixa: Deve permitir apenas a passagem de freqüências abaixo de uma freqüência de corte especificada.
· Filtro Passa Faixa: Deve permitir apenas a passagem de freqüências que estejam entre uma freqüência de corte inferior e uma freqüência de corte superior.
· Filtro Rejeita Faixa: Deve rejeitar a passagem de freqüências que estejam entre uma freqüência de corte inferior e uma freqüência de corte superior
· Filtro Passa Alta: Deve permitir apenas a passagem de freqüências acima de uma freqüência de corte especificada.
Um filtro digital é um sistema temporal discreto e tem como função de transferência um filtro em forma de janela espectral, através da qual somente é permitida a passagem da parte desejada do espectro de entrada. Podem ser classificados em dois grupos:
· Filtros digitais de resposta ao impulso de duração finita (FIR): As saídas do sistema dependem somente da entrada presente e de um número finito de entradas passadas.
· Filtros digitais de resposta ao impulso de duração infinita (IIR): Depende do ssinais de entrada presentes e passados e dos sinais de saída passados. Essa dependência das saídas passadas faz com que a duração da resposta seja infinita.
Este artigo tem como objetivo encontrar o melhor tipo de filtro para as especificações solicitadas. Entende-se como melhor filtro aquele que atende as especificações com a menor ordem. 2. Especificações dos Filtros
Neste ítem serão apresentadas as especificações solicitadas.
Centro Federal de Educação Tecnológica de Santa Catarina - CEFET-SC CST em Sistemas de Telecomunicações
2 de 10 São José, Santa Catarina, de 19 de Dezembro de 2008
2.1. Filtro Passa Baixa
Tabela 1 – Especificações do filtro passa baixa
2.2. Filtro Passa Faixa
Tabela 2 – Especificações do filtro passa faixa 3. Desenvolvimento
Neste item serão apresentados gráficos onde poderemos comparar as respostas dos filtros.
3.1. Filtro analógico
A título de aprendizado, os filtros especificados anteriormente foram simulados no MatLab como filtros analógicos.
Para o filtro passa baixa, foi realizado testes com diversos tipos e ordens de filtro, sendo que o que obteve melhor resultado foi do tipo Chebyshev 2 de ordem 15. Na figura 1 temos a resposta em magnitude dele.
Figura 1 – Resposta em magnitude do filtro passa baixas tipo Chebyshev 2 de ordem 15
Especificação Valor Ganho na componente contínua(G0) -20 Frequência de corte (rd/s) 200k Banda de transição (bt) 20k Ripple máximo na banda passante (Ap) 0.1 Atenuação mínima na frequência de rejeição (As) (dB) 30
Especificação Valor Ganho na componente contínua(G0) 0 Frequência central (rd/s) 200k Largura de banda(B), banda passante(bt) (rd/s) 20k Ripple máximo na banda passante (Ap) 0.5 Atenuação mínima na frequência de rejeição (As) (dB) 60
Centro Federal de Educação Tecnológica de Santa Catarina - CEFET-SC CST em Sistemas de Telecomunicações
3 de 10 São José, Santa Catarina, de 19 de Dezembro de 2008
Na Tabela 3 temos o código do Matlab usado para gerar o filtro analógico passa baixas.
Tabela 3 – Código do Matlab para gerar o Filtro Passa Baixas
%% % Centro Federal de Educação Tecnológica de Santa Catarina % Unidade de São José % Curso Superior de Tecnologia em Sistemas de Telecomunicações % Disciplina: Processamento de Sinais Digitais % Aluno: José Paulo de Oliveira Petry % Projeto de Filtros Analógicos %% clc; clear all; syms Hp H p s S = 8; % tamanho da letra nos gráficos H0=-20; % Ganho do filtro em w = 0 G0 = 10^(H0/20); N = 15; % N é a ordem do Filtro Passa baixa e Passa alta % 2N é a ordem do Filtro Passa faixa e Rejeita faixa FILTER = 'Chebyshev 2'; Rp = 0.1; % ripple na faixa de passagem em dB - cheb1 e ellip Rs = 10;% ripple na faixa de rejeição em dB - cheb2 e ellip % Filtro Chebyshev 1 ordem N>2 %cheb1: %[zeros,polos,k]=cheb1ap(N,Rp); pF=poly(polos); zF=poly(zeros); %cheb2 (nao funciona) [zeros,polos,k]=cheb2ap(N,Rs); pF=poly(polos); zF=poly(zeros); % Filtro Butterworth ordem N>2 %[zeros,polos,k]=buttap(N); pF=poly(polos); zF=poly(zeros); % Filtro Elliptico ordem N>2 %[zeros,polos,k]=ellipap(N,Rp,Rs); pF=poly(polos); zF=poly(zeros); sz = size(zF); Nz = sz(2)-1; str = ['(']; for k=1:Nz+1 str = [str '+' num2str(zF(k)) '*p.^' num2str(Nz-k+1)]; end str = [str ')./(']; for k=1:N+1 str = [str '+' num2str(pF(k)) '*p.^' num2str(N-k+1)]; end str = [str ')']; H=inline(str); Hp = G0*eval(str); Hps= simplify(Hp); %pretty(Hps);; Hp0=H(j*0); % Ganho em DC de H(p) P = 1e-2:1e-3:100; %% Convertendo para Passa Baixas com wp = 10 rd/s wp = 220000; w = P*wp; jw = w*j; Hsw = (G0/Hp0)*H(jw./wp); figure(1); semilogx(w,20*log10(abs(Hsw)));grid on; ylabel('|H(jw)| (dB)'); xlabel('w (rd/s)'); title(['Filtro tipo ' FILTER ' de ordem N = ' num2str(N)]); p = s/wp; Hs = eval(Hp);Hss= simplify(Hs); %pretty(Hss);; figure(2); clf; axis off; set(2, 'Position', [2 100 1024 40] ... , 'MenuBar', 'none') text('Interpreter','latex',... 'String',['$$' latex(Hss) '$$'],... 'Position', [-0.15 0 ], .... 'FontSize',S)
Centro Federal de Educação Tecnológica de Santa Catarina - CEFET-SC CST em Sistemas de Telecomunicações
4 de 10 São José, Santa Catarina, de 19 de Dezembro de 2008
Figura 2 – Resposta em magnitude para o filtro passa faixa do tipo Butterworth de ordem 20
Já para o filtro passa faixa, os testes resultaram no filtro tipo Butterworth de ordem 20
como melhor implementação. A Figura 2 apresenta a resposta em magnitude deste filtro e a Tabela 4 temos o código do Matlab para gerar esse filtro.
Centro Federal de Educação Tecnológica de Santa Catarina - CEFET-SC CST em Sistemas de Telecomunicações
5 de 10 São José, Santa Catarina, de 19 de Dezembro de 2008
Tabela 4 - Código do Matlab para gerar o filtro passa faixa
%% % Centro Federal de Educação Tecnológica de Santa Catarina % Unidade de São José % Curso Superior de Tecnologia em Sistemas de Telecomunicações % Disciplina: Processamento de Sinais Digitais % Aluno: José Paulo de Oliveira Petry % Projeto de Filtros Analógicos %% clc; clear all; syms Hp H p s S = 8; % tamanho da letra nos gráficos H0=0; % Ganho do filtro em w = 0 G0 = 10^(H0/20); N = 10; % N é a ordem do Filtro Passa baixa e Passa alta % 2N é a ordem do Filtro Passa faixa e Rejeita faixa FILTER = 'Butterworth'; Rp = 0.5; % ripple na faixa de passagem em dB - cheb1 e ellip Rs = 10;% ripple na faixa de rejeição em dB - cheb2 e ellip % Filtro Butterworth [zeros,polos,k]=buttap(N); pF=poly(polos); zF=poly(zeros); sz = size(zF); Nz = sz(2)-1; str = ['(']; for k=1:Nz+1 str = [str '+' num2str(zF(k)) '*p.^' num2str(Nz-k+1)]; end str = [str ')./(']; for k=1:N+1 str = [str '+' num2str(pF(k)) '*p.^' num2str(N-k+1)]; end str = [str ')']; H=inline(str); Hp = G0*eval(str); Hps= simplify(Hp); %pretty(Hps);; Hp0=H(j*0); % Ganho em DC de H(p) P = 1e-2:1e-3:100; %% Convertendo para Passa Faixa com w0 = 200k rd/s e B = 20k w0 = 200000; B = 20000; sw = P*w0; sj = sw*j; Hsw = (G0/Hp0)*H(1/B*(sj.^2+w0^2)./sj); figure(1); semilogx(sw,20*log10(abs(Hsw)));grid on; ylabel('|H(jw)| (dB)'); xlabel('w (rd/s)'); title(['Filtro tipo ' FILTER ' de ordem N = ' num2str(2*N)]); p = 1/B*(s^2+w0^2)/s; Hs = eval(Hp);Hss= simplify(Hs); %pretty(Hss);; figure(2); clf; axis off; set(2, 'Position', [2 100 1024 40] ... , 'MenuBar', 'none') text('Interpreter','latex',... 'String',['$$' latex(Hss) '$$'],... 'Position', [-0.15 0 ], .... 'FontSize',S)
Centro Federal de Educação Tecnológica de Santa Catarina - CEFET-SC CST em Sistemas de Telecomunicações
6 de 10 São José, Santa Catarina, de 19 de Dezembro de 2008
3.2 Filtros Digitais
Para o desenvolvimento da simulação dos filtros digitais foi utilizado a ferramenta fdatool do aplicativo Matlab. Esta ferramenta não permite acrescentar um ganho em magnitude na banda de passagem. Por isso, o ganho na componente contínua do filtro passa baixas foi setado como zero e a atenução mínima de frequência de rejeição foi modificado para 10dB.
3.2.1 Passa Baixas
Para os filtros digitais passa baixa, após testes com diversos tipos de filtros foi escolhido utilizar o tipo Chebyshev 2 para o IIR, e a janela Kaiser para o FIR. 3.2.1.1 Resposta em magnitude
Na Figura 3 temos a comparação da resposta em magnitude dos filtros IIR e FIR desenvolvidos. Podemos observar a melhor performance do filtro IIR, pois o mesmo apresenta um ripple imperceptível na banda de passagem e permanece com ganho zero numa faixa maior de frequências de passagem.
Figura 3 – Resposta em magnitude dos filtros IIR e FIR
3.2.1.2 Resposta em fase
Na Figura 4 é apresentado a comparação da resposta em fase dos filtros. Observa-se uma maior estabilidade na frequência de passagem do filtro IIR, porém este se apresenta com maior variações próximos a frequência de corte.
Centro Federal de Educação Tecnológica de Santa Catarina - CEFET-SC CST em Sistemas de Telecomunicações
7 de 10 São José, Santa Catarina, de 19 de Dezembro de 2008
Figura 4 – Resposta em fase dos filtro IIR e FIR
3.2.1.3 Resposta ao impulso
Na Figura 5 temos a comparação da resposta ao impulso dos filtros realizados.
Figura 5 – Resposta ao impulso dos filtros IIR e FIR
3.2.1.4 Diagrama de pólos e zeros
Na Figura 6 é apresentado o diagrama de pólos e zeros dos filtros projetados.
Centro Federal de Educação Tecnológica de Santa Catarina - CEFET-SC CST em Sistemas de Telecomunicações
8 de 10 São José, Santa Catarina, de 19 de Dezembro de 2008
Figura 6 – Diagrama de pólos e zeros dos filtros IIR e FIR
3.2.2 Passa Faixa
Para os filtros digitais passa faixa, após testes com diversos tipos de filtros foi escolhido utilizar o tipo Butterworth para o IIR e a janela Kaiser para o FIR. 3.2.2.1 Resposta em magnitude
Na figura 7 temos a resposta em magnitude dos filtro IIR e FIR. Podemos observar que o filtro FIR só começa a atenuar nas frequências mais próximas das frequências de corte, o que o torna mais vantajoso comparado ao IIR. Observa-se tambem que o IIR apresenta uma atenuação maior, comparado ao FIR, nas frequências que devem ser rejeitadas.
Figura 7 – Resposta em magnitude para os filtros IIR e FIR
3.2.2.2 Resposta em fase
Na Figura 8 temos a resposta em fase dos filtros. Pode-se observar uma maior linearidade no filtro FIR na banda passante.
Centro Federal de Educação Tecnológica de Santa Catarina - CEFET-SC CST em Sistemas de Telecomunicações
9 de 10 São José, Santa Catarina, de 19 de Dezembro de 2008
Figura 8 – Resposta em fase para os filtros IIR e FIR
3.2.2.3 Resposta ao impulso
Na Figura 9 temos a comparaçao da resposta ao impulso dos filtros analisados.
Figura 9 – Resposta ao impulso para os filtros IIR e FIR
3.2.2.4 Diagrama de polos e zeros
Na Figura 10 temos o diagrama de polos e zeros. Podemos observar que os polos do filtro FIR estão todos no centro, pois nesse filtro não realimentação de saídas, existindo apenas os zeros.
Centro Federal de Educação Tecnológica de Santa Catarina - CEFET-SC CST em Sistemas de Telecomunicações
10 de 10 São José, Santa Catarina, de 19 de Dezembro de 2008
Figura 10 – Diagrama de polos e zeros para os filtros IIR e FIR
4. Considerações Finais
Após a conclusão desse trabalho, foi verificado a dificuldade em desenvolver um filtro ideal. Ao melhorar alguma característica sempre se degradava outra. Com isso, conclue-se que o objetivo final do filtro é o fator mais importante para a escolha de qual tipo e ordem será escolhido, já que saberemos em quais características poderemos ter mais ou menos fidelidade as especificações.
A ferramenta fdatool do aplicativo MatLab é bem eficiente para a criação dos filtros,
podendo rapidamente alterar entre um tipo e outro facilitando o trabalho de pesquisa pela melhor opção de filtro. Referências
SHENOI, B.B. Introduction to digital Signal Processing and Filter Design, 2006