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=0−sen(ωcn)πn,para n≠0
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.
(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 :
- %% == Codigo - Filtro FIR Janela retangular == %%
- % Aluno: Cleber Gobira %
- % Disciplina: Processamento Digital de Sinais %
- %% =========================================== %%
- M = 5; % Tamanho da janela
- wc = 0.5*pi;
- n = 1:M
- h0 = 1 - (wc)/pi
- haux = (-1./(n.*pi)).*sin(wc.*n) %Impulse Response h[n] p/ Filtro P. Alta
- h1 = [fliplr(haux) h0 haux] %Vetor com os coeficientes do filtro
- M1 = 10; % Tamanho da janela
- n = 1:M1
- h0 = 1 - (wc)/pi
- haux = (-1./(n.*pi)).*sin(wc.*n) %Impulse Response h[n] p/ Filtro P. Alta
- h2 = [fliplr(haux) h0 haux] %Vetor com os coeficientes do filtro
- M2 = 100; % Tamanho da janela
- n = 1:M2
- h0 = 1 - (wc)/pi
- haux = (-1./(n.*pi)).*sin(wc.*n)%Impulse Response h[n] p/ Filtro P. Alta
- h3 = [fliplr(haux) h0 haux] %Vetor, coeficientes do filtro, fliplr invert vetor
- plotall = fvtool(h1,1,h2,1,h3,1);
- legend(plotall,'Janela M=5','Janela M=10','Janela M=100')
- title('Resposta em Magnitude (Fitro FIR, Janela Retangular, \omega_{c}=0.5\pi)');
Clique na imagem para melhor visualização.
![]() |
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