Loading [MathJax]/jax/element/mml/optable/SuppMathOperators.js
Filtros Digitais - Filtro FIR Passa-altas em MatLab - Aquela Questão é o que você estava procurando

sexta-feira, 14 de setembro de 2018

Textual description of firstImageUrl

Filtros Digitais - Filtro FIR Passa-altas em MatLab

Filtro Digital FIR Passa-altas com Implementação em Matlab

Questão: Um filtro discreto ideal passa-altas com fase linear tem a seguinte resposta ao impulso:

hHP[n]={1ωcπ,para n=0sen(ωcn)πn,para n0

onde ωc é a frequência de corte discreta do filtro. Usando Matlab, mostre a resposta em magnitude de um filtro passa-altas FIR obtido truncando-se a resposta do filtro ideal acima, de comprimento N=2M+1 (ou seja, M ). Obtenha o resultado usando os valores M = 5 e M = 10. Comente os resultados obtidos.

Resposta:
(A resposta apresentada aqui, pode não estar 100% correta, mas certamente pode ser proveitosa para alguns)

Código em MatLab para M = 5,~ M = 10,~ ~M = 100~ e \omega_{c} = 0.5\pi :

  1. %% == Codigo - Filtro FIR Janela retangular == %%
  2. % Aluno: Cleber Gobira %
  3. % Disciplina: Processamento Digital de Sinais %
  4. %% =========================================== %%
  5.  
  6. M = 5; % Tamanho da janela
  7. wc = 0.5*pi;
  8. n = 1:M
  9. h0 = 1 - (wc)/pi
  10. haux = (-1./(n.*pi)).*sin(wc.*n) %Impulse Response h[n] p/ Filtro P. Alta
  11. h1 = [fliplr(haux) h0 haux] %Vetor com os coeficientes do filtro
  12.  
  13. M1 = 10; % Tamanho da janela
  14. n = 1:M1
  15. h0 = 1 - (wc)/pi
  16. haux = (-1./(n.*pi)).*sin(wc.*n) %Impulse Response h[n] p/ Filtro P. Alta
  17. h2 = [fliplr(haux) h0 haux] %Vetor com os coeficientes do filtro
  18.  
  19. M2 = 100; % Tamanho da janela
  20. n = 1:M2
  21. h0 = 1 - (wc)/pi
  22. haux = (-1./(n.*pi)).*sin(wc.*n)%Impulse Response h[n] p/ Filtro P. Alta
  23. h3 = [fliplr(haux) h0 haux] %Vetor, coeficientes do filtro, fliplr invert vetor
  24.  
  25. plotall = fvtool(h1,1,h2,1,h3,1);
  26. legend(plotall,'Janela M=5','Janela M=10','Janela M=100')
  27. title('Resposta em Magnitude (Fitro FIR, Janela Retangular, \omega_{c}=0.5\pi)');


Clique na imagem para melhor visualização.
Filtro FIR para  3 valores de M.
Figura 1 - Filtro passa-baixas FIR com janelamento retangular para M = 5, 10 e 100.

Como a janela w[n] tem comprimento finito igual a M, sua resposta em frequência é uma sinc. A região de pico central (lóbulo principal) tem largura proporcional a 1/M e os lóbulos adjacentes com pesos menores. A convolução entre a janela e o filtro ideal gera uma versão da resposta ideal, mas com algumas distorções (ondulações).

A largura da banda de transição é proporcional a 1/M. Os lóbulos laterais produzem ondulações que têm forma similar tanto na banda de passagem quanto na banda de rejeição. Devido a isso pode-se observar ondulações nas extremidades da faixa de passagem, chamado de fenômeno de Gibbs, que surgem devido à descontinuidade imposta pela janela da sequência h[n], ou seja, o corte abrupto da janela retangular.

O aumento de M produz lóbulos com largura menor e mesma área, ou seja, ondulação mais rápida, mas com a mesma amplitude. Isso fica claro quando observamos a Figura 1, onde mostra que a medida que se aumenta M os lóbolos se estreitam e assim temos mais ondulações. Portanto quando se usa M menor temos menos ondulação na banda de passagem, porém o lóbulo principal fica mais largo, aumentando assim a banda de transição e perdendo seletividade. Neste caso deve-se projetar M de forma a obter um equilíbrio para o objetivo almejado. O janelamento retangular não é a melhor forma de se obter um filtro FIR, devido ao corte abrupto.

Veja também: Filtros Digitais - Filtro FIR Passa-faixa - Janelamento de Hamming, Hann, Blackman e Kaiser em Matlab.

REFERÊNCIAS:
OPPENHEIM, Alan V.; SCHAFER, Ronald W. Discrete-time signal processing. Pearson Education, 3rd Edition, 2016.

Nenhum comentário:

Postar um comentário

Postagens em Destaque