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 $0,6\pi$ 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

%%  ====== Codigo - Filtro FIR (Janelas) ======  %%
%                                                 %
%             Aluno: Cleber Gobira                %
%   Disciplina: Processamento Digital de Sinais   %        
%                                                 %
%%  ====== Codigo - Filtro FIR (Janelas) ======  %%

FxaR = [0.6 0.8]; %Faixa de Rejeicao
FxaP = [0.65 0.75]; %Faixa de Passagem em radianos
wc = FxaP; %Banda passante

fsamp = 1000; %frequencia de amostragem
%Em (Hz). Multiplicado por 1000 por coveniencia    
fcuts = [0.3 0.325 0.375 0.4]*1000 
mags = [0 1 0]; %magnitude       
d1 = 10^(-0.05*42) %Ondulacao da banda de corte
d2 = (10^(0.05*0.2)-1)/(10^(0.05*0.2)+1) %ondulacao da banda de passagem
devs = [d1 d2 d1]; %Definicao do desvio   

[n,Wn,beta,ftype] = kaiserord(fcuts,mags,devs,fsamp); %para obter a ordem
JanKaiser = fir1(n,Wn,ftype,kaiser(n+1,beta));

%% Janela de Hanning
h1 = hann(n+1);
JanHann = fir1(n,Wn,h1);

%% janela HAMMING
h2 = hamming(n+1);
JanHamm = fir1(n,Wn,h2);

%% janela blackman
b1 = blackman(n+1);
JanBlac = fir1(n,Wn,b1);

%% Plotando
plotall = fvtool(JanHamm,1,JanHann,1,JanBlac,1,JanKaiser,1);
legend(plotall,'Hamming','Hanning','Blackman','Kaiser');
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 $:

%%  == 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.
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.
Related Posts Plugin for WordPress, Blogger...