- Aula 20 (21 mai)
- Filtros digitais: Filtros FIR
- A função de transferência de transferência de um filtro digital FIR


- O filtro FIR causal de ordem n mostrado acima pode ser descrito também através da equação de diferenças:
![{\displaystyle {\begin{aligned}y[n]&=b_{0}x[n]+b_{1}x[n-1]+\cdots +b_{N}x[n-N]\\&=\sum _{i=0}^{N}b_{i}\cdot x[n-i],\end{aligned}}}](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/c43ba6c329a471401e87fe17c6130d801602ffdf)
- Pode-se notar que a saída
do filtro FIR é uma soma ponderada dos N valores mais recentes das entradas ![{\displaystyle x[n]}](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/864cbbefbdcb55af4d9390911de1bf70167c4a3d)
- A realização desse filtro pode ser feita através de algoritmos de software ou circuitos digitais usando por exemplo a estrutura:
A determinação da resposta ao impulso do filtro pode ser feita substituindo a entrada por . O resultado é , e portanto a resposta ao impulso tem duração igual ao número de coeficientes N+1 (onde N é a ordem do filtro). Esse é o motivo pelo qual o filtro tem o nome de filtro de resposta ao impulso finita (FIR - Finite Impulse Response). O filtro também recebe nomes como filtro transversal, Filtro não recursivo, filtro de média móvel, e tapped delay filter (torneira com atrasos?).
A função de transferência também pode ser descrita como:

Algumas vantagens que os filtros FIR tem sobre os IIR:
1. É possível projetar FIR com fase linear, ou seja atraso de grupo constante. Esses filtros são desejáveis na transmissão de sinais digitais.
- O atraso de grupo é definido como as
, onde é a resposta de fase do filtro.
2. As amostras da resposta ao impulso são os coeficientes do filtros , e portanto não precisam ser calculadas.
3. Os FIR são sempre estáveis pois tem todos os polos na origem. Também é consequência de não ter realimentação. Por isso também não tem ciclo limite que surge nos filtros IIR como resultado da resposta ao impulso de duração infinita associada a representação dos coeficientes e dos sinais com palavras de comprimento finito de bits.
4. O efeito da representação dos coeficientes e dos sinais com palavras de comprimento finito de bits, na resposta de frequência e resposta no domínio do tempo é menor que nos IIR.
Os filtro FIR podem ter fase linear ou não ter fase linear.
- Filtros de fase linear: simétricos e antissimétricos (Tipo 1, 2, 3 e 4)
- Filtros de fase não linear: são todos que não se enquadram em um dos 4 tipos acima.
Os filtros de fase linear possuem algumas propriedades (respostas em frequência possíveis, distribuição dos zeros em simetria quadrantal), conforme é mostrado a seguir.
- Inicialmente observe em exemplos as propriedades dos FIR tipo 1, 2, 3 e 4. Observe a resposta de frequência, fase, atraso de grupo, coeficientes e a simetria dos zeros em relação ao circulo unitário no diagrama de polos e zeros dos filtros abaixo.
N = 10;
bi = 2*(rand(1,N)-0.5)
%% Tipo I - LP, HP, BS, BP
b = [bi (2*rand(1,1)-0.5) flip(bi)];
fvtool(b,1);
%% Tipo II - LP, BP
% tem um zero em -1
b = [bi flip(bi)];
fvtool(b,1);
%% Tipo III - BP
% tem um zero em 1 e -1
b = [bi 0 -flip(bi)];
fvtool(b,1);
%% Tipo IV - BP, HP
% tem um zero em 1
b = [bi -flip(bi)];
fvtool(b,1);
Figura 1 - Propriedades do filtro FIR de fase linear (Tipo 1)
- Aula 21 (28 mai)
- Filtros digitais: Filtros FIR
FIR tipo I
Considere o exemplo de um filtro simétrico de ordem par (N=6)

Se ele apresenta simetria dos coeficientes , e , temos que:

Para obter a resposta em frequência , substituímos .

Aplicando a identidade , obtemos que:

Portanto a resposta em frequência tem um resposta de magnitude com uma parte real , e uma fase linear igual a , e portanto o atraso de grupo é , que é a metade da ordem N do filtro.
Pode-se generalizar este resultado para qualquer filtro simétrico de ordem par:
![{\displaystyle {\begin{aligned}H(e^{-jw})&=\left[2\sum _{n=1}^{N/2}h\left({\frac {N}{2}}-n\right)cos(nw)+h\left({\frac {N}{2}}\right)\right]e^{-j(N/2)w}\end{aligned}}}](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/b30405d616a72783c6fa50c58c0afc3829608e9b)
Na qual se percebe que a fase linear é igual a , e portanto o atraso de grupo é , metade da ordem N do filtro.
FIR tipo II
Considere o exemplo de um filtro simétrico de ordem impar (N=5)

Se ele apresenta simetria dos coeficientes , e , temos que:

Para obter a resposta em frequência:

Aplicando a identidade , obtemos que:

Portanto a resposta em frequência tem um resposta de magnitude com uma parte real , e uma fase linear igual a , e portanto o atraso de grupo é , que é a metade da ordem N do filtro.
Pode-se generalizar este resultado para qualquer filtro simétrico de ordem impar:
![{\displaystyle {\begin{aligned}H(e^{-jw})&=\left[2\sum _{n=1}^{(N+1)/2}h\left({\frac {N+1}{2}}-n\right)cos\left(\left(n-{\frac {1}{2}}\right)w\right)\right]e^{-j(N/2)w}\end{aligned}}}](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/cc8c9b9b15b40b85755d428d6cc2e0d09ee8b53b)
Na qual se percebe que a fase linear é igual a , e portanto o atraso de grupo é , metade da ordem N do filtro.
FIR tipo III
Considere o exemplo de um filtro antissimétrico de ordem par (N=6)

Se ele apresenta simetria dos coeficientes , , e , temos que:

Para obter a resposta em frequência , substituímos .

Aplicando a identidade , e que obtemos que:

Portanto a resposta em frequência tem um resposta de magnitude com uma parte real , e uma fase linear igual a , e portanto o atraso de grupo é , que é a metade da ordem N do filtro.
Pode-se generalizar este resultado para qualquer filtro antissimétrico de ordem par:
![{\displaystyle {\begin{aligned}H(e^{-jw})=\left[2\sum _{n=1}^{N/2}h\left({\frac {N}{2}}-n\right)sin(nw)\right]e^{-j(Nw-\pi )/2}\end{aligned}}}](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/d6ac86294aeaf42ea78852027bde8542e14a9ae0)
Na qual se percebe que a fase linear é igual a , e portanto o atraso de grupo é , metade da ordem N do filtro.
FIR tipo IV
Considere o exemplo de um filtro antissimétrico de ordem impar (N=5)

Se ele apresenta simetria dos coeficientes , e , temos que:

Para obter a resposta em frequência:

E portanto

Portanto a resposta em frequência tem um resposta de magnitude com uma parte real , e uma fase linear igual a , e portanto o atraso de grupo é , que é a metade da ordem N do filtro.
Pode-se generalizar este resultado para qualquer filtro antissimétrico de ordem impar:
![{\displaystyle {\begin{aligned}H(e^{-jw})&=\left[2\sum _{n=1}^{(N+1)/2}h\left({\frac {N+1}{2}}-n\right)sin\left(\left(n-{\frac {1}{2}}\right)w\right)\right]e^{-j(Nw-\pi )/2)}\end{aligned}}}](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/87aa0d39c010e143747b64b558e61a43d376c856)
Na qual se percebe que a fase linear é igual a , e portanto o atraso de grupo é , metade da ordem N do filtro.
Propriedades dos filtros FIR de fase linear
Como mostrado acima, os filtros que exibem simetria ou antissimetria em seus coeficientes (ou resposta ao impulso), apresentam fase linear (ou atraso de grupo constante). Também foi mostrado que o atraso de grupo é igual a N/2 onde N é a ordem do filtro. Foi demonstrado por Rabiner *** que apenas esses quatro tipos de filtro FIR possuem essa característica, portanto pode-se afirma que "Se e somente se o filtro FIR possui coeficientes simétrico ou antisimétricos ele possui fase linear".
Em relação a posição dos zeros, é possível verificar que cada zero sobre o circulo unitário produz uma resposta de magnitude nula na frequencia angular correspondente e um salto de fase de .
N = 5;
bi = 2*(rand(1,N)-0.5)
b = [bi (2*rand(1,1)-0.5) flip(bi)];
[h,w] = freqz(b,1,'whole');
figure(1);
subplot(421);
plot(w/pi,20*log10(abs(h))); grid on;
xlabel('\omega / \pi'); ylabel ('magnitude - dB');
subplot(423);
plot(w/pi,angle(h)/pi); grid on;
xlabel('\omega / \pi'); ylabel ('fase - rad / \pi');
subplot(425);
plot(w/pi,unwrap(angle(h))/pi); grid on;
xlabel('\omega / \pi'); ylabel ('fase - rad / \pi');
subplot(427); grpdelay(b,1);
xlabel('\omega / \pi'); ylabel ('atraso de grupo - amostras');
subplot(4,2,[2,4,6,8]); zplane(b,1);
xlabel('real'); ylabel ('imaginario');
- Aula 22 (1 jun)
Também devido a existência (ou não) de zeros em e , que corresponde a frequência de Nyquist , mostramos que a resposta de magnitude nessas frequencias é nula (ou não). Assim os tipos 1, 2, 3 e 4 de filtros FIR resultam em:
- Tipo 1: permite projetar filtros LP, HP, BP e BS.
- Tipo 2: (tem um zero em -1) permite projetar filtros LP e BP.
- Tipo 3: (tem um zero em 1 e -1) permite projetar filtros BP.
- Tipo 4: (tem um zero em 1) permite projetar filtros HP e BP.
Essa característica é importante conhecer antecipadamente pois implicará no número de coeficientes e na escolha do tipo de (anti)simetria. Por exemplo para filtro BS apenas o Tipo 1 pode ser usado.
Outra propriedade a ser destacada é em relação aos zeros do filtro. Em primeiro vamos analisar a consequencia da simetria nos coeficientes :

fazendo na segunda equação N-n = m, temos que os limites n = 0 -> m = N, e n = N -> m = 0.


Com a mesma análise para antissimetria nos coeficientes :

Nessas duas equações é possível perceber que se é um zero então também será um zero de . No caso de zeros reais, se temos um zero então também é um zero, exceto se ou . Por outro lado, se todos os coeficientes b(n) do filtro são reais, então os zeros complexos, aparecem em pares complexos conjugados e , e seus reciprocos e também são zeros de . Esse tipo de disposição dos zeros denominamos de simetria quadrantal.
Figura 2 - Simetria quadrantal de filtros FIR de fase linear
FONTE:
- firtype - Type of linear phase FIR filter - Mathwork
Projeto de filtros FIR pelo método da série de Fourier
Usando a representação dos filtros ideais LP, HP, BP, BS, com frequências de corte e ganho unitário na banda de passagem e ganho zero na banda de rejeição, e considerando que a magnitude das respostas em frequência é uma função periódica em , e conhecendo as equações de síntese e análise de um sinal (ou sistema)

onde

É possível coeficientes da série de Fourier de filtros ideais: LP, HP, BP, BS
Figura 3 - Magnitude da resposta em frequência de filtros
- Passa-baixas (Low-pass)
Figura 4 - Resposta em frequência de filtros LP de fase linear



De modo semelhante é possível obter os coeficientes dos filtros HP, BP e BS.
- Passa-altas (High-pass)


- Passa-faixa (Band-pass)


- Rejeita-banda (Band-stop)


onde sabe-se que , ou seja para e para .
- Ver pag. 249 a 256 de [2]
- Aula 23 (4 jun)
- O uso da janela retangular no "janelamento" dos coeficientes da série de Fourier, resulta no fenômeno de Gibbs na magnitude da resposta em frequência, conforme mostrado a seguir.

Aplicando a equação de síntese da série obtemos:
![{\displaystyle {\begin{aligned}\Psi (e^{jw})&=\sum _{n=-M}^{M}e^{-jnw}\\&={\frac {e^{-jMw}(e^{j(2M+1)w}-1)}{e^{jw}-1}}\\&={\frac {e^{-jMw}(e^{j(2M+1)w/2}-e^{-j(2M+1)w/2})e^{j(2M+1)w/2}}{(e^{jw/2}-e^{-jw/2})e^{jw/2}}}\\&={\frac {sin[(2M+1)w/2]}{sin(w/2)}}\end{aligned}}}](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/de68553f34f7abf38797b8ab456fb3220b098dc6)
Note que esta função tem um máximo em , e cruza o zero em , portanto a lagura do lóbulo central é de . Além disso percebe-se que se aumentamos o tamanho da janela retangular (2M+1), a largura do lóbulo central é reduzida proporcionalmente.
Figura 5 - função
Ao fazer o "janelamento" dos coeficientes da série de Fourier da resposta em frequência do filtro ideal, estamos multiplicando a série de coeficientes pelo janela retangular , conforme mostra a figura a seguir.
Figura 6 - Janelamento temporal (rectwin) dos coeficientes
Essa multiplicação no domínio do tempo corresponde a uma convolução no domínio da frequência.

A qual é mostrada graficamente na figura a seguir.
Figura 7 - Convolução da resposta do filtro ideal H_{LP} com a função
Figura 8 - Aproximação da resposta de magnitude com janela retangular
- Para reduzir o ripple devido ao corte dos coeficientes, são usadas as funções de janelamento temporal no projeto de filtros digitais.
- Tipos de janelas temporais usadas no projeto de filtros digitais.





- Aula 24 (8 jun)
- em todas as janelas
quando 
- onde
é para par e para impar
- ver também apodization function
L = 64;
wvtool(rectwin(L), triang(L), bartlett(L), hann(L), hamming(L), blackman(L), blackmanharris(L), nuttallwin(L));
Use o código abaixo e verifique o efeito das diferentes janelas temporais sobre a magnitude da resposta em frequência, sobre a resposta ao impulso, posição dos zeros no plano z, etc.
- No código o wc é a frequência de corte do filtro LP, N é a ordem do filtro, CLP é são os coeficientes da série de Fourier do filtro LP ideal multiplicados pela janela retangular, bRET, bHAM e bBLACK são os coeficientes dos filtros usando respectivamente as janelas retangular, Hamming e Blackman.
- Note que:
- 1) O número de coeficientes sempre será igual a (N+1)=(2M+1).
- 2) A função ylim([-0.1 0.1]) foi usada para destacar o ripple na banda passante.
- 3) O ripple na banda de rejeição é sempre proporcional ao ripple na banda passante (visualizar com a escala linear de magnitude).
- 4) A banda de transição aumenta a medida que o ripple diminui.
- 5) O aumento da ordem do filtro reduz a banda de transição, mas "quase" não afeta a amplitude do ripple.
N = 32;
wc = 0.5; M = N/2;
CLP = wc*sinc(wc*(-M:M));
bRET = CLP;
bHAM = CLP.*hamming(2*M+1)';
bBLACK = CLP.*blackman(2*M+1)';
fvtool(bRET,1,bHAM,1,bBLACK,1);
legend('rectwin', 'Hamming', 'Blackman');
ylim([-0.1 0.1])
- Projeto de filtro FIR utilizando janelas temporais fixas.
- Projetar um filtro LP usando uma janela temporal fixa (verificar a janela que atende a especificação)
wp = 0.2*pi; Ap = 1 dB; Gp = 0 dB
ws = 0.4*pi; As = 40 dB;
- Para o projeto do filtro, o primeiro passo é escolher uma janela que atenda a atenuação na banda de passagem e na banda de rejeição. Em seguida é necessário determinar a ordem do filtro que atende a especificação de largura de banda de transição. Por último será necessário ajustar o valor de wc para que o filtro esteja dentro das especificações.
- Ao final do projeto, deverá ser informado o tipo de janela escolhida, a ordem do filtro, se é do tipo 1, 2, 3 ou 4, e o valor de wc.
- Aula 25 e 26 (15 e 18 jun)
-
- Projetar um filtro HP usando uma janela temporal fixa (hamming, bartlett-hanning, hanning).
ws = 0.4*pi; Ap = 0.2 dB; Gp = 0 dB
wp = 0.6*pi; As = 50 dB;
- Comparar os 3 tipos de janela, a ordem obtida, e o valor de wc em cada projeto.
- Para o projeto dos filtros LP FIR de janela fixa, uma possível solução para reduzir o número de passos é:
- PASSO 1 - Escolher o tipo de janela de acordo com a atenuação do lóbulo lateral Asl e As.
- PASSO 2 - Estimar a ordem N1 do filtro considerando os parâmetros Dw = |ws -wp|
- PASSO 3 - Calcule os coeficientes clp do filtro LP considerando N1 e wc1 = |ws + wp|/2. Calcule os valores da janela win e obtenha a resposta ao impulso do filtro h = clp * win.
- PASSO 4 - Verifique o valor medido de Dwm = wsm-wpm, e faça a correção da ordem do filtro em função do desvio constatado. N2 = N1*Dwm/Dw.
- PASSO 5 - Refaça os cálculos dos coeficientes Clp do filtro ideal, da janela e da resposta ao impulso para a nova ordem N2.
- Repita o PASSO 3 até 5, até obter um filtro com a menor ordem que atenda as especificações de Dw.
- PASSO 6 - Desloque a frequência de corte wc de modo a ter a banda de transições posicionada corretamente entre wp e ws. wc2 = wp + (wp-wAp).
Tabela - Estimativa da atenuação do lóbulo lateral da janela, atenuação do primeiro lóbulo lateral do filtro , e largura da banda de transição , para um filtro LP FIR de janela fixa.
Janela
|
|
|
|
Retangular
|
13.3
|
20.33
|
0.92 /M
|
Triangular
|
26.6
|
27.41
|
|
Bartlett
|
26.5
|
27.48
|
|
Hann
|
31.5
|
44.03
|
3.11 /M
|
Bartlett-Hanning
|
35.9
|
40.77
|
|
Hamming
|
42.5
|
54.08
|
3.32 /M
|
Bohman
|
46.0
|
51.84
|
7.01 /M
|
Parzen
|
53.1
|
56.89
|
|
Blackman
|
58.1
|
75.25
|
5.56 /M
|
Flat Top
|
88.0
|
106.3
|
|
Blackman-Harris
|
92.1
|
108.8
|
|
Nutfall
|
93.8
|
109.7
|
|
- Dados acima obtidos para um filtro passa baixas de ordem N = 64 com

-
- A new window and comparison to standard windows Yeong Ho Ha ; Pearce, J.A. IEEE Transactions on Acoustics, Speech, and Signal Processing, Feb. 1989, Vol.37(2), pp.298-301.
- Some windows with very good sidelobe behavior Nuttall, A. IEEE Transactions on Acoustics, Speech, and Signal Processing, February 1981, Vol.29(1), pp.84-91
- Estudo Dirigido. Projetar os filtros LP, HP e BP de acordo com as especificações dadas na Atividade AE2, considerando uma frequência de amostragem fa > que 2 * fmax especificada.
- Aula 27 (22 jun)
- Filtros Digitais: Filtros FIR
- Projeto de filtro FIR utilizando janelas temporais ajustáveis
L = 64;
r = 60; % Chebyshev e Tukey
alpha = 3; % Gauss
betha = 8; % Kaiser
nbar = 10; % Taylor
wvtool(kaiser(L,betha), chebwin(L,r), gausswin(L,alpha),tukeywin(L,r), taylorwin(L,nbar,-r));
Para a janela de Kaiser, a estimação do fator e da ordem do filtro são obtidos por:
onde é a atenuação do lóbulo lateral e é a largura da banda de transição em rad/amostra.
A janela de Kaiser é definida por:
onde : é a função de Bessel de ordem zero [2]
Utilizando o Matlab é possível estimar esses valores utilizando a função kaiserord. Exemplo da obtenção de um filtro passa baixa com , , atenuação de 40 dB na "stopband"
%% Calculo do filtro de kaiser, sem ajustes
% Especificaçao
fsamp = 8000;
fcuts = [1000 1500];
Ap = 1;
As = 40;
ftype = 'low';
fN = fsamp/2;
wp = fcuts(1)/fN;
ws = fcuts(2)/fN;
Dw = abs(ws-wp);
% Calculo da janela de Kaiser
beta = 0.5842*(As-21)^0.4+0.07886*(As-21);
n = ceil((As-8)/(2.285*Dw*pi)+1);
Wn = (wp+ws)/2;
wkaiser = kaiser(n+1,beta);
Forma alternativa de projeto usando a função kaiserord
fsamp = 8000;
fcuts = [1000 1500];
Ap = 1;
As = 40;
mags = [1 0];
devs = [1-10^(-Ap/20) 10^(-As/20)];
[n,Wn,beta,ftype] = kaiserord(fcuts,mags,devs,fsamp);
wkaiser = kaiser(n+1,beta);
h_fir = fir1(n,Wn,ftype,wkaiser,'noscale');
A partir das especificações do filtro é possível obter um projeto usando a função fir1. Essa função basicamente aplica o método da janela ao filtro ideal especificado pela(s) frequência(s) de corte .
h_fir = fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');
[Hw,w] =freqz(h_fir);
plot(w*fsamp/2/pi,20*log10(abs(Hw)))
title(['Kaiser filter N = ' num2str(n)])
%fvtool(h_fir,1)
Como resultado do projeto a partir das equações de Kaiser é obtido o filtro abaixo:
Figura 9 - Filtro LP com janela de Kaiser, sem ajustes.
No entanto realizando ajustes tanto do ganho no topo , na largura da banda de transição , e na ordem do filtro , é possível reduzir essa ordem obtendo o filtro abaixo:
Figura 10 - Filtro LP com janela de Kaiser, com ajustes.
- Ver as funções fir1, kaiserord do Matlab.
- Ver pag. 266 a 273 de [2]
- Uso das funções window e fir1 do Matlab para projeto de filtro FIR
- Aula 28 (25 jun)
-
L = 64;
r = 60; % Chebyshev e Tukey
alpha = 3; % Gauss
betha = 8; % Kaiser
nbar = 10; % Taylor
wvtool(kaiser(L,betha), chebwin(L,r), gausswin(L,alpha),tukeywin(L,r), taylorwin(L,nbar,-r));
Figura 11 - Filtro LP com janela de Chebyshev, Taylor e Gaussiana.
- Aula 29 (29 jun)
-
Digital Filters with Linear Phase].
- Exemplo do projeto de um filtro passa-baixas, com minima ordem (Filtro de Parks-McClellan) com frequência de passagem de 1000 Hz e frequência de rejeição de 1500 Hz, dada uma frequência de amostragem de 8000 Hz. Considere que a atenuação na banda de rejeição é de no mínimo 40 dB e o ripple máximo na banda passante é de 1 dB.
fa = 8000;
Ap = 1;
Ar = 40;
fp = 1000;
fr = 1500;
f = [fp fr];
a = [1 0];
dev = [(10^(Ap/20)-1)/(10^(Ap/20)+1) 10^(-Ar/20)];
[n,fo,ao,w] = firpmord(f,a,dev,fa);
b = firpm(n,fo,ao,w);
[h,w] = freqz(b,1,1024,fa);
plot(w, 20*log10(abs(h))); hold on;
plot([0 fr fr fa/2], [Ap/2 Ap/2 -Ar -Ar],':m')
plot([0 fp fp], [-Ap/2 -Ap/2 -(Ar+30)],':m');
ylim([-(Ar+30) Ap/2+10])
- Exemplo do projeto de um filtro passa-faixa, com minima ordem (Filtro de Parks-McClellan) com frequências de passagem de 1500 e 1700 Hz e e frequências de rejeição de 1000 e 3000 Hz, dada uma frequência de amostragem de 8000 Hz. Considere que a atenuação na primeira banda de rejeição é de no mínimo 40 dB e 60 dB na segunda banda de rejeição. O ripple máximo na banda passante é de 1 dB e fa = 8000;
- Uso do [4] para projeto de filtro IIR, FIR equiripple e FIR com janela.
- Exemplo do projeto de um filtro passa-baixas, com minima ordem (Filtro de Parks-McClellan) com frequência de passagem de 1000 Hz e frequência de rejeição de 1500 Hz, dada uma frequência de amostragem de 8000 Hz. Considere que a atenuação na banda de rejeição é de no mínimo 40 dB e o ripple máximo na banda passante é de 0.4 dB.
|