- Aula 8 (3 dez)
- Conceitos Gerais sobre Filtros Analógicos
-
- Resposta em frequência: para obter a resposta em frequência é necessário avaliar
- O projeto de filtros analógicos é realizado em 2 etapas:
- projeto de um filtro passa baixas (LP) protótipo normalizado com frequência de passagem
- transformação em frequência para o tipo de filtro (LP, HP, BP ou BS)
Na sequência será mostrado como inicialmente projetar o filtro LP protótipo, e depois as transformações em frequência.
- No entanto, antes de projetar filtros, vejamos a análise básica de filtros analógicos utilizando o Matlab.
- Dado um sistema linear invariante no tempo, representado pela função de transferência , obter a resposta de frequência do sistema (Magnitude e Fase).
%%Definição do filtro
% Definindo os coeficientes do filtro
b = [1 1]; % Numerador
a = [1 1 5]; % Denominador
% Calculando os zeros (raízes do numerador) e pólos (raízes do denominador)
% Método 1 - usando a função tf2zp
[z1,p1,k]=tf2zp(b,a)
% Método 2 - obtendo as raízes
z2 = roots(b);
p2 = roots(a);
zplane(b,a);
%% Obtendo a resposta em frequência
% substitituindo a variável complexa s por jw usando a função freqz
freqs(b,a);
% Usando cálculo simbólico e plotando o gráfico com semilogx
syms s w
H(s) = (s+1)/(s^2 + s + 5);
pretty(H(1j*w))
latex(H(1j*w))
%%
ws = logspace(-2, 1, 1000);
h = H(1j*ws);
subplot(211)
plot(ws,abs(h)); grid on;
%semilogx(ws,abs(h)); grid on;
subplot(212)
plot(ws,angle(h)/pi*180); grid on;
%semilogx(ws,angle(h)/pi*180); grid on;
- Para aproximação de magnitude de filtros analógicos o projeto pode usar as aproximações de Butterworth, Chebyshev (tipo 1 ou 2) ou Cauer, mostradas na figura abaixo.
- Aula 9 e 10 (8 e 10 dez)
- Projeto de filtros analógicos do tipo Butterworth
Os projetos de filtro Butterworth com função de transferência utilizam os polinômios de Butterworth mostrados na tabela a seguir:
n |
Fatores Polinomiais de
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
|
- Proposta de exercício
- Use os polinômios de Butterworth com ordens de 1 a 10 mostrados na tabela abaixo para obter os filtros .
- Escolha uma ordem n (entre 5 e 10)
- Plote a resposta em frequência em escala log da amplitude (em dB) e da fase (em rad/pi).
- Qual é o ganho do filtro na banda passante?
- Qual é a frequência de corte (-3dB) do filtro.
- Qual é o salto de de fase que ocorre em algumas frequências?
- Qual é o fator de atenuação em dB/decada após a frequência de corte?
- Faça o diagrama de polos e zeros desse filtro.
- Procure observar o que ocorre com a posição dos polos do filtro.
- Calcule o valor do módulo dos pólos.
- Projeto de filtros analógicos LP protótipo
- Projeto de filtros analógicos passa baixas (low pass - LP) do tipo Butterworth, considerando: é a frequência de passagem, é a atenuação em dB na frequência de passagem, é a frequência de stopband, é a atenuação em dB na frequência de stopband.
- Escalando as frequências em relação a , teremos que , e são as frequências de passagem e stopband do filtro protótipo , que tem ganho unitário e frequência de passagem 1.
- Casos em que o ganho na banda de passagem é
- Considerando o caso de filtro Butterworth com frequência de passagem e frequência de stopband (rejeição) de , com ganho unitário em
- Se considerarmos o caso particular em que na frequência de passagem o ganho (em escala linear) deve ser , que corresponde a um ganho (em escala log) , ou atenuação .
- Obtemos o fator , ou , para temos que . Esse fator no caso dos filtros com essa atenuação acaba desaparecendo das equação de projeto. Para atenuações diferentes de 3 dB, ele ajusta a magnitude dos pólos, e afeta a ordem do filtro.
- Os passos para projetar um filtro analógico Hs(s) são:
- 0) fazer a normalização da frequência e do ganho.
- , e para o caso de filtros LP.
- , .
- 1) determinar a ordem do filtro utilizando a equação:
- 2) e em seguida obter os polos do filtro:
- 3) Com os pólos botem-se o denominador da função de transferência do filtro.
- 4) E assim obtém-se a função de transferência do filtro protótipo
- 5) Para obter a função de transferência do filtro analógico LP é necessário fazer uma transformação de frequência
- 6) Se o ganho na frequência não for unitário G0, é ainda necessário ajustar o ganho do filtro do fator de ganho. Considerando que o valor do Ganho G0 seja dado em dB, teremos que , ou seja
Exemplo Filtro LP Butterworth
|
Projete um filtro Butterworth LP com ganho em , frequência de passagem com ganho no mínimo de , frequência de rejeição de , na qual o ganho deve ser inferior a dB.
- Dados de , passa-baixas (lowpass-LP)
- Especificações de , passa-baixas (lowpass-LP) protótipo
- Determinação de
- Determinação de substituindo e corrigindo o ganho em
- Obtida a função de transferência obtenha a resposta em frequência, substituindo
- Obtenha a resposta em frequência, para
- Plote o gráfico de e , indicando a máscara de especificação do filtro.
|
- Aula 11 (15 dez)
- Casos em que o ganho na banda de passagem é um valor qualquer
- Teremos , ou
- Para projetar o filtro é necessário:
- 1) determinar a ordem do filtro:
- 2) obter os polos do filtro:
- 3) obter a função de transferência:
- , onde e .
- NOTA: o valor também pode ser obtido a partir de , pois corresponde ao último termo do polinômio .
- 4) No caso de um filtro LP é necessário ainda obter a função de transferência do filtro especificado fazendo a transformação de frequência
Exemplo Filtro LP Butterworth
|
Projete um filtro Butterworth LP com ganho em , frequência de passagem com atenuação máxima de , frequência de rejeição de com atenuação mínima de .
- Dados de , passa-baixas (lowpass-LP)
- Especificações de , passa-baixas (lowpass-LP) protótipo
- Determinação de
- Determinação de substituindo e corrigindo o ganho em
- Obtida a função de transferência obtenha a resposta em frequência, substituindo
- Obtenha a resposta em frequência, para
- Plote o gráfico de e , indicando a máscara de especificação do filtro.
|
- Aula 12 (17 dez)
- Polinômios Chebyshev de primeira ordem
Para o projeto dos filtros do tipo Chebyshev, são utilizados os polinômios de Chebyshev de primeira ordem, os quais são definidos pela equação trigonométrica:
Os dois primeiros polinômios são facilmente calculados como:
O cálculo dos demais termos pode ser feita pela relação recursiva:
Portanto o polinômio de grau 2 pode ser obtido por
Assim os primeiros nove polinômios de Chebyshev de primeira ordem podem ser obtidos:
Esses polinômios mostram um comportamento oscilatório entre .
Figura 2.1 - Os primeiros cinco polinômios de Chebyshev de primeira ordem no domínio
Fonte: Polinômios de Tchebychev, Wikipedia.
- Esses polinômios de Chebyshev permitem aproximar a resposta de magnitude ideal de um filtro a medida que a ordem é aumentada. Na banda de passagem o polinômio mantem uma oscilação entre os valores de mínimos e máximos. Depois da frequência de passagem, a resposta de magnitude decai monotonicamente a medida que a frequência aumenta. Por isso os filtros baseados nos polinômios de Chebyshev são também conhecidos como aproximação minimax ou equiriple. Para obter a magnitude quadrada de um protótipo, a função da magnitude possui o polinômio de Chebyshev elevado ao quadrado no denominador:
- O gráfico a seguir mostra a magnitude em função de e
Figura 2.2 - Resposta de magnitude de filtro protótipo Chebyshev
Fonte: Elaborado pelo autor.
- Projeto de filtro protótipo LP do tipo Chebyshev I
- Determine a ordem mínima necessária considerando: é a frequência de passagem do filtro LP, é a atenuação em dB na frequência de passagem, é a frequência de stopband do filtro, é a atenuação em dB na frequência de stopband, , são as frequências de passagem e stopband do filtro protótipo.
- onde ou .
- Obtenha os polos do filtro:
- ,
- onde e
- Para obter a função de transferência:
- , onde
- onde
- é o último termo do denominador
- , onde
- Aula 13 (22 dez)
- Projeto de Filtros Analógicos do tipo LP, HP, BP, BS
Para o projeto de filtros analógicos é necessário fazer as transformações de frequência indicadas abaixo, as quais devem ser consideradas no momento da determinação dos parâmetros do filtro protótipo LP.
- Transformações de frequência de filtros analógicos
- passa-baixas () -> passa-baixas ()
- Cálculo do protótipo com
- Substituição de variáveis
- passa-baixas () -> passa-altas ()
- Cálculo do protótipo com
- Substituição de variáveis
- passa-baixas () -> passa-faixa ( e )
- Cálculo do protótipo com
- Substituição de variáveis
- onde e
- passa-baixas () -> rejeita-faixa ( e )
- Cálculo do protótipo com
- Substituição de variáveis
- onde e
Exemplo Filtro HP Chebyshev I
|
Projete um filtro Chebyshev I HP com ganho em , frequência de rejeição com atenuação mínima em relação ao topo de , frequência de passagem de com atenuação máxima em relação ao topo de .
- Dados de , passa-altas (highpass-HP)
- Especificações de , passa-baixas (lowpass-LP) protótipo
- Determinação de
- Determinação de HP substituindo e corrigindo o ganho em
- Obtida a função de transferência obtenha a resposta em frequência, substituindo
- Obtenha a resposta em frequência, para
- Plote o gráfico de e , indicando a máscara de especificação do filtro.
|
- Recesso de Natal, Ano Novo e férias
- Retorno as aulas em 02/02/2021
- Aula 14 (2 fev)
- [n,Wn] = buttord(Wp,Ws,Rp,Rs,'s') Encontra a menor ordem n é a frequência de corte Wn para um filtro Butterworth analógico, com ripple na banda passante (bandpass) menor que Rp dB e atenuação na banda de rejeição (stopband) pelo menos de Rs dB. As frequências angulares Wp e Ws são dadas em rad/s. Se Wp e Ws são escalares, o filtro será um LP ou HP. Se Wp e Ws forem vetores, o filtro será um BP ou BS.
- [b,a] = butter(n,Wn,ftype,'s') Projeta o filtro Butterworth analógico LP, HP, BP ou BS com frequência angular de corte Wn, dependendo do valor de ftype e do número de elementos de Wn.
%% Projeto de filtro passa-alta (HP) usando funções do Matlab
Wp = 150; % rad/s
Ws = 40; % rad/s
Rp = 3; % dB
Rs = 60; % dB
[n,Wn] = buttord(Wp,Ws,Rp,Rs,'s')
[b,a] = butter(n,Wn,'high','s');
[h,w] = freqs(b,a,logspace(1,3,1000));
semilogx(w,20*log10(abs(h)));grid on;
hold on; plot([Wp Wn Ws],[-Rp -3 -Rs],'x'); hold off;
title(sprintf('Filtro HP Butterworth, n = %d',n))
%% Projeto de filtro passa-faixa (BP) usando funções do Matlab
Wp = [100 200]; % rad/s
Ws = [50 250]; % rad/s
Rp = 3; % dB
Rs = 40; % dB
[n,Wn] = buttord(Wp,Ws,Rp,Rs,'s');
[b,a] = butter(n,Wn,'s');
freqs(b,a,logspace(1,3,1000))
title(sprintf('Filtro BP Butterworth, n = %d',n))
- [n,Wp] = cheb1ord(Wp,Ws,Rp,Rs,'s') designs a lowpass, highpass, bandpass, or bandstop analog Chebyshev Type I filter with cutoff angular frequencies Wp.
- [b,a] = cheby1(n,Rp,Wp,ftype,'s') designs a lowpass, highpass, bandpass, or bandstop analog Chebyshev Type I filter with passband edge angular frequency Wp and Rp decibels of passband ripple.
- [n,Ws] = cheb2ord(Wp,Ws,Rp,Rs,'s') designs a lowpass, highpass, bandpass, or bandstop analog Chebyshev Type II filter with cutoff angular frequencies Ws.
- [b,a] = cheby2(n,Rs,Ws,ftype,'s') designs a lowpass, highpass, bandpass, or bandstop analog Chebyshev Type II filter with stopband edge angular frequency Ws and Rs decibels of stopband attenuation.
- [n,Wn] = ellipord(Wp,Ws,Rp,Rs,'s') finds the minimum order n and cutoff frequencies Wn for an analog elliptic filter. Specify the frequencies Wp and Ws in radians per second. The passband or the stopband can be infinite.
- [b,a] = ellip(n,Rp,Rs,Wn,ftype, 's') designs a lowpass, highpass, bandpass, or bandstop analog elliptic filter with passband edge angular frequency Wp, Rp decibels of passband ripple, and Rs decibels of stopband attenuation.
- Note: The resulting bandpass and bandstop designs are of order 2n.
- Note: See Limitations [1] for information about numerical issues that affect forming the transfer function.
- Projeto de filtros analógicos do tipo Butterworth, Chebyshev I e II e Cauer (eliptico) usando funções do Matlab.
%% Projeto de filtro passa-baixas usando funções do Matlab
%% Especificações do filtro
Wp =16000; Ws = 20000; Ap = 0.3; As = 20; G0= 3;
% Para analisar o filtro projetado, use fvtool(b,a) para observar plano s, resposta em magnitude, fase e atraso de grupo
%% Butterworth
[n,Wn] = buttord(Wp, Ws, Ap, As,'s')
[b,a] = butter(n,Wn, 's');
%% Chebyshev I
n = cheb1ord(Wp, Ws, Ap, As,'s')
[b,a] = cheby1(n,Ap, Wp, 's');
%% Chebyshev II
n = cheb2ord(Wp, Ws, Ap, As,'s')
[b,a] = cheby2(n,As, Ws, 's');
%% Elliptic - Cauer
[n, Wn] = ellipord(Wp, Ws, Ap, As,'s')
[b,a] = ellip(n,Ap,As, Wn, 's');
- Ver pag. 204 a 208 de [2]
- Exemplos de Filtros Analógicos:
- Exemplo 1: Filtro passa-baixas ( = 941Hz, = 1209 Hz, = 1 dB, = 20 dB)
- Exemplo 2: Filtro passa-altas ( = 1209 Hz, = 941Hz, = 1 dB, = 20 dB)
- Exemplo 3: Filtro passa-faixa ( = 770 Hz, = 811 Hz, = 895,5 Hz, = 1209 Hz, = 1 dB, = 30 dB, = 5 dB).
- Exemplo 4: Filtro rejeita-faixa ( = 53 Hz, = 58 Hz, = 62 Hz = 67 Hz, = 2 dB, = 25 dB)
- NOTA:
- No calculo do filtro lembre-se de usar as frequências angulares para , , , .
- onde () é a frequência de passagem em Hz (rad/s), () é a frequência de rejeição em Hz (rad/s), () é a frequência central em Hz (rad/s), () é a largura de banda em Hz (rad/s).
- Confira os projetos dos filtros plotando as respostas em frequência dos filtros protótipo H(p) e filtro final H(s) de cada um dos exemplos.
- Comparar o uso das funções plot, stem, fplot, semilogx, semilogy.
- Estudar as funções auxiliares logspace, linspace, hold, grid, subplot, legend, xlabel, ylabel, title, text.
- Funções de transformação de frequência: lp2lp, lp2hp,lp2bp, lp2bs.
- Ver em IIR Filter Design, Special Topics in IIR Filter Design.
- Ver pag. 208 a 218 de [2]
- Aula 15 e 16 (4 e 9 fev)
- Filtros Digitais: Filtros IIR: transformações do tempo contínuo no tempo discreto
-
- Obter a especificação do filtro em angulo entre 0 e 1, onde 1 corresponde a metade da frequência de amostragem , ou também o angulo
- Obter o valor desse angulo predistorcido para compensar a distorção na frequência causada pela transformação bilinear , onde
- passa-baixas () -> passa-baixas ()
- Substituição de variáveis
- Cálculo do protótipo com
- passa-baixas () -> passa-altas ()
- Substituição de variáveis
- Cálculo do protótipo com
- passa-baixas () -> passa-faixa ( e )
- Substituição de variáveis
- Cálculo do protótipo com
- onde e
- passa-baixas () -> rejeita-faixa ( e )
- Substituição de variáveis
- Cálculo do protótipo com
- onde e
- Realizar os projetos dos exemplos anteriores, considerando uma frequência de amostragem de 8 kHz.
- Ver pag. 219 a 229 de [2]
- Ver pag. 403 a 415 e 434 a 435 de [1]
- Ver também a ferramenta fvtool, que facilita a análise dos filtros digitais.
Exemplo filtro digital BP IIR - transformação bilinear
|
Projete um filtro digital passa-banda IIR com , frequências de passagem e com ganho no mínimo de , frequências de rejeição de e , na qual o ganho deve ser inferior a dB. Considere dois projetos para uma frequência de amostragem e também para .
- Dados de especificação do filtro passa-banda (band-pass - BP)
- Dados do filtro digital , passa-banda (band-pass - BP)
- Dados do filtro analógico , passa-banda (band-pass - BP)
- Especificações de , passa-baixas (lowpass-LP) protótipo
- Determinação de
- Determinação de substituindo e corrigindo o ganho em
- Obtida a função de transferência obtenha a resposta em frequência, substituindo
- Determinação de substituindo
- Plote o gráfico de , e , indicando a máscara de especificação do filtro.
|
- Aula 17 (11 fev)
-
- O projeto dos filtros digitais IIR baseados na transformada bilinear no Matlab é realizada em dois passos: (1) Determinação da ordem do filtro; (2) Determinação dos coeficientes do numerador e denominador de .
fa = 200;
fN = fa/2;
wo = 60/fN; bw = 10/fN;
[b,a] = iirnotch(wo,bw);
fvtool(b,a);
syms z;
N(z) = poly2sym(b,z);
D(z) = poly2sym(a,z);
H(z) = N(z)/D(z);
pretty(vpa(H(z),3))
fa = 8000;
fN = fa/2;
wo = 941/fN; bw = 100/fN;
[b,a] = iirpeak(wo,bw);
fvtool(b,a);
syms z;
N(z) = poly2sym(b,z);
D(z) = poly2sym(a,z);
H(z) = N(z)/D(z);
pretty(vpa(H(z),3))
fa = 8000; fN = fa/2;
fo = 1000; bw = 20/fN;
[b,a] = iircomb(fa/fo,bw,'peak'); % ou use a flag 'notch'
fvtool(b,a);
syms z;
N(z) = poly2sym(b,z);
D(z) = poly2sym(a,z);
H(z) = N(z)/D(z);
pretty(vpa(H(z),3))
|