Filtros Digitais FIR (Finite Impulse Response) Prof. José Mauricio Neto [email protected] 1 Filtros FIR (Finite Impulse Response) • Para um sistema FIR de ordem M M 1 y[n] bk x[n k ] k 0 • Com função de transferência M 1 H ( z ) bk z k k 0 • E resposta ao impulso bn , h[n] 0, 0 n M 1 caso contrario 2 Estrutura FIR: Forma Direta I M 1 y[n] hk x[n k ] k 0 3 Projeto de Filtros Digitais FIR • O projeto de filtros, implica na seleção de uma sequência finita que represente a resposta ao impulso de um filtro ideal • Os filtros FIR sempre são estáveis, e com fase linear (atraso no tempo) • Métodos comuns para o projeto de filtros FIR: – Janelas, usando a resposta ao impulso dos filtros ideais – Amostragem em frequência – Projeto iterativo baseado em restrições ótimas 4 Projeto de Filtros FIR por Transformada de Fourier • Para uma resposta ideal de um filtro passa-baixo 5 Projeto de Filtros FIR por Transformada de Fourier Função de Transferência: Simetria 6 Projeto de Filtros FIR por Transformada de Fourier Função de Transferência (simetria): 7 Projeto de Filtros FIR por Transformada de Fourier 8 Exemplo 1 • Calcular os coeficientes do Filtro Passa-Baixo FIR de comprimento 3, com frequência de corte 800 Hz e frequência de amostragem 8000 amostras/s fc 800 c 2 2 rad fs 8000 5 2M 1 3 tap tamanho c Para n 0 h(0) sin c n sin 0.2n Para n 0 h(n) n n 9 Exemplo 1 10 Exemplo 1 • Resposta em Frequência 11 Exemplo 1 • Em genal, o filtro FIR com coeficientes simétricos têm uma resposta de Fase Linear, dado por 12 Exemplo 1 • Magnitude e Fase 13 Exemplo 1 14 Exemplo 1 fc = 800; fs = 8000; M = 1; tap = 2*M+1; omega = 0:0.001:pi; hertz = omega*fs/(2*pi) moduloH = 20*log10(abs(0.2+0.3742*cos(omega))); for i = 1:length(omega) if (0.2+0.3742*cos(omega(i)))>0 faseH(i) = -M*omega(i); elseif (0.2+0.3742*cos(omega(i)))<0 faseH(i) = -M*omega(i)+pi; end end figure plot(hertz,moduloH) axis([0 4000 -80 0]),grid figure plot(hertz,faseH*180/pi), grid 15 Exemplo 1 • Magnitude e Fase 0 60 -10 40 20 -20 0 -20 grados |H| dB -30 -40 -40 -60 -50 -80 -60 -100 -70 -80 -120 0 500 1000 1500 2000 Hz 2500 3000 3500 4000 -140 0 500 1000 1500 2000 Hz 2500 3000 3500 4000 16 Exemplo 1 • Para M = 1 (2M + 1 = 3 tap) • Para M = 8 (2M + 1 = 17 tap) 17 Exemplo 2 • Calcular os coeficientes do Filtro Passa-Faixa FIR de comprimento 5, com frequência de corte inferior 2000 Hz, frequência de corte superior 2400, e frequência de amostragem 8000 amostras/s 2M 1 5 tap f 2000 L 2 L 2 rad fs 8000 2 fH 2400 3 H 2 2 rad fs 8000 5 H L h( n) sin H sin L n n n0 n0 2 n 2 18 Exemplo 2 • Calculo dos coeficientes: 19 Exemplo 2 • Função de Transferência: • Resposta em Frequência: H e j 0.09355 0.01558e j 0.1e j 2 0.01558e j 3 0.09355e j 4 H e j e j 2 0.09355e j 2 0.01558e j 0.1 0.01558e j 0.09355e j 2 e jx e jx 2cos( x) H e j e j 2 0.09355(e j 2 e j 2 ) 0.1 0.01558(e j e j ) H e j e j 2 0.1871cos(2) 0.1 0.03116cos() 20 Exemplo 2 • Magnitude e Fase H e j e j 2 0.1871cos(2) 0.1 0.03116cos() H e j 0.1871cos(2) 0.1 0.03116cos() si 0.1871cos(2) 0.1 0.03116cos() 0 2 H e 2 si 0.1871cos(2) 0.1 0.03116cos() 0 j 0 -10 -20 |H| dB -30 -40 -50 -60 -70 -80 0 500 1000 1500 2000 Hz 2500 3000 3500 4000 21 Projeto de Filtros FIR pelo Método de Janelas • Se realiza o truncamiento da resposta ao impulso ideal h[n] por uma janela w[n]: Multiplicação em tempo discreto hw[n] h[n]w[n] Convolução na Frequência H w ( F ) H ( F ) W ( F ) 22 Projeto de Filtros FIR pelo Método de Janelas • Características das Funções que caracterizam Janelas M n M JANELAS Boxcar Blackman Barlett w[n] 1 n 2n w[n] 0.42 0.5cos 0.08cos M M n w[n] 1 M Hanning n w[n] 0.5 0.5cos M Hamming n w[n] 0.54 0.46 cos M 23 Projeto de Filtros FIR pelo Método de Janelas • Processo de Projeto: 1. Obter os coeficientes do Filtro FIR utilizando o Método da Transformada de Fourier 2. Multiplicar os Coeficientes do Filtro FIR pela sequência da janela selecionada hw (n) h(n)w(n) n M ,...., 0,1,...., M 3. Aplicar o atraso à resposta truncada hw (n) de M amostras bn hw (n M ) Para n 0,1,..., 2M 24 Exemplo 3 • Projetar um filtro FIR passa-baixo de 3-Coeficientes, com frequência de corte de 800 Hz e frequência de amostragem 8000 amostras/s, utilizando a janela de Hamming. fc 800 c 2 2 rad fs 8000 5 2M 1 3 tap c Para n 0 h(0) sin c n sin 0.2n Para n 0 h(n) n n 25 Exemplo 3 • Calculo dos coeficientes do filtro FIR 26 Exemplo 3 • Calculo dos coeficientes da Janela de Hamming 27 Exemplo 3 • Multiplicando os coeficientes do filtro FIR com os coeficientes da Janela de Hamming 28 Exemplo 3 • Atrasando a resposta truncada por M = 1 • Função de Transferência H ( z) b0 b1 z 1 b2 z 2 29 Exemplo 3 • Resposta em Frequência 30 Comparação da Resposta em Frequência 31 Especificações de Projeto de Filtros FIR PassaBaixo Usando a Janela de Hamming • Especificações da resposta em frequência. • Banda de Transição Normalizada f f stop f pass fs 32 Especificações de Projeto de Filtros FIR PassaBaixo Usando a Janela de Hamming • O comprimento do Filtro é dada por • Ripple na banda passante • Ripple na banda de parada • Frequência de Corte fc f pass f stop 2 33 Especificações de Projeto de Filtros FIR PassaBaixo 34 Exemplo 4 • Projetar um filtro FIR passa-baixo, utilizando a janela rectangular, com as seguintes especificações: f s 8000 amostras / seg • Banda de transição normalizada 35 Exemplo 4 • Usando uma janela rectangular, o Ripple na banda passante é de 0.74 dB e a atenuação na banda de parada é de 21 dB • A seleção desta janela satisfaz os requerimentos de ripple na banda passante de 1 dB e atenuação na banda de parada de 20 dB. 36 Exemplo 4 • O comprimento do Filtro é: • É escolhido um valor maior N=25 para garantir as especificações do projeto. • Frequência de Corte fc 1850 2150 2000 Hz 2 37 Exemplo 4 • • • • O comprimento do Filtro 25-tap Frequência de Corte fc = 2000 Hz Frequência de amostragem fs = 8000 amostras/s Janela Rectangular • Projetar o Filtro FIR passa-baixo usando o método de janelas 38 Exemplo 4 • Frequência de corte normalizada fc 2000 c 2 2 rad fs 8000 2 2M 1 25 tap M 12 12 n 12 c Para n 0 h(0) sin c n sin 0.5n Para n 0 h(n) n n 39 Exemplo 4 • Calculo dos coeficientes (M=12) h(0) 0.5 h(1) 0.3183 h( 1) h(2) 0 h(2) h(3) 0.106 h(4) 0 h( 3) h( 4) h(5) 0.0636 h( 5) h(6) 0 h( 6) h(7) 0.0454 h( 7) h(8) 0 h(9) 0.0353 h( 8) h( 9) h(10) 0 h( 10) h(11) 0.0289 h( 11) h(12) 0 h( 12) 40 Exemplo 4 20 Magnitude (dB) 0 fc = 2000; -20 fs = 8000; -40 M= 12; -60 0 500 tap = 2*M+1; i=1; 0 for n=-12:12 -500 if n==0 -1000 h(i)=(pi/2)/pi; -1500 else 0 500 h(i)=sin(0.5*pi*n)/(n*pi); end i= i+1; end freqz(h,1,tap,fs) 1500 2000 2500 Frequency (Hz) 3000 3500 4000 1000 1500 2000 2500 Frequency (Hz) 3000 3500 4000 Phase (degrees) 1000 41