Loading [MathJax]/jax/output/PreviewHTML/jax.js
Aquela Questão é o que você estava procurando: Processamento Digital de Sinais
Mostrando postagens com marcador Processamento Digital de Sinais. Mostrar todas as postagens
Mostrando postagens com marcador Processamento Digital de Sinais. Mostrar todas as postagens

terça-feira, 18 de setembro de 2018

Textual description of firstImageUrl

Filtros Digitais - Filtro FIR Passa-faixa - Janelamento de Hamming, Hann, Blackman e Kaiser em Matlab

Filtro Digital FIR Passa-faixa com Implementação em MatLab 

Questão: Usando a função fir1 do Matlab, projete um filtro FIR passa-faixa de fase linear com as seguintes especificações: frequências limites da faixa de rejeição de e 0,8\pi, da faixa de passagem 0,65\pi e 0,75\pi, atenuação máxima na faixa de passagem de 0,2 dB e atenuação mínima na faixa de rejeição de 42 dB. Utilize as janelas de Hamming, Hann, Blackman e Kaiser, e mostre a resposta em magnitude de cada um dos filtros obtidos. Comente os resultados.

Resposta: Conteúdo da resposta.

Código em MatLab para filtro FIR passa-faixa com janelamento Hamming, Hann, Blackman e Kaiser

  1. %% ====== Codigo - Filtro FIR (Janelas) ====== %%
  2. % %
  3. % Aluno: Cleber Gobira %
  4. % Disciplina: Processamento Digital de Sinais %
  5. % %
  6. %% ====== Codigo - Filtro FIR (Janelas) ====== %%
  7.  
  8. FxaR = [0.6 0.8]; %Faixa de Rejeicao
  9. FxaP = [0.65 0.75]; %Faixa de Passagem em radianos
  10. wc = FxaP; %Banda passante
  11.  
  12. fsamp = 1000; %frequencia de amostragem
  13. %Em (Hz). Multiplicado por 1000 por coveniencia
  14. fcuts = [0.3 0.325 0.375 0.4]*1000
  15. mags = [0 1 0]; %magnitude
  16. d1 = 10^(-0.05*42) %Ondulacao da banda de corte
  17. d2 = (10^(0.05*0.2)-1)/(10^(0.05*0.2)+1) %ondulacao da banda de passagem
  18. devs = [d1 d2 d1]; %Definicao do desvio
  19.  
  20. [n,Wn,beta,ftype] = kaiserord(fcuts,mags,devs,fsamp); %para obter a ordem
  21. JanKaiser = fir1(n,Wn,ftype,kaiser(n+1,beta));
  22.  
  23. %% Janela de Hanning
  24. h1 = hann(n+1);
  25. JanHann = fir1(n,Wn,h1);
  26.  
  27. %% janela HAMMING
  28. h2 = hamming(n+1);
  29. JanHamm = fir1(n,Wn,h2);
  30.  
  31. %% janela blackman
  32. b1 = blackman(n+1);
  33. JanBlac = fir1(n,Wn,b1);
  34.  
  35. %% Plotando
  36. plotall = fvtool(JanHamm,1,JanHann,1,JanBlac,1,JanKaiser,1);
  37. legend(plotall,'Hamming','Hanning','Blackman','Kaiser');
  38. title('Resposta em Magnitude (Janela Hamming, Hanning, Blackman, kaiser)');

Clique na imagem para melhor visualização
Filtro passa-faixa FIR com janelamento Kaiser com fase linear.
Figura 1 – Filtro passa-faixa FIR com janelamento Kaiser com fase linear.

Fase linear do filtro passa-faixa FIR com janelamento Kaiser.
Figura 2 – Fase linear do filtro passa-faixa FIR com janelamento Kaiser.

Filtro passa-faixa FIR com janelamento Hamming, Hanning, Blackman e Kaiser, com fase linear.
Figura 3 – Filtro passa-faixa FIR com janelamento Hamming, Hanning, Blackman e Kaiser, com fase linear.

Para reduzir o efeito do fenômeno de Gibbs, deve-se usar janelas com truncamento menos abrupto. Em alguns casos é necessário a utilização de janelas mais sofisticadas, o uso de algumas delas podem ser observadas nas figuras 1 e 3, que são algumas das mais usuais. São poucas as diferenças entre as janelas Hamming, Hanning e Blackman, e essas diferenças estão voltadas a redução do fenômeno de Gibbs.

É importante salientar que entre as janelas citadas a janela de Kaiser é a única onde é possível especificar os parâmetros do filtro. Além disso elá é considerada ótima porque provê um lóbulo principal largo para a dada atenuação da banda de corte, o que implica a mais brusca banda de transição. Na figura 3, pode-se comparar a implementação com diferentes tipos de janela e constatar que quando usado a janela de kaiser é possível conseguir com muito mais precisão o requisitos de projeto do filtro FIR.

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

Tags: filtro digital matlab filtros digitais gibbs janela janelas hamming hanning blackman fir kaiser fase linear janelamento passa-faixa passa faixa alta baixa fir1 

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:

\Large{ h_{HP}[n]=\begin{cases}      1 - \dfrac{\omega_c}{\pi}, & para~n = 0\\      -\dfrac{sen(\omega_c n)}{\pi n}, & para~n \neq 0 \end{cases}}

onde \omega_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 \leqslant n \leqslant 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.

Postagens em Destaque