·
Engenharia Eletrônica ·
Sinais e Sistemas
· 2023/2
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
1
Atividade de Acompanhamento Filtros Digitais 2023 1
Sinais e Sistemas
UTFPR
3
Lista Final-2023-1
Sinais e Sistemas
UTFPR
1
Questao Sinais e Sistemas-2021 2
Sinais e Sistemas
UTFPR
14
Lista Laplace Resolvida e Anotações com Resolução-2023 1
Sinais e Sistemas
UTFPR
4
Exercício Resolvido-2023-2
Sinais e Sistemas
UTFPR
34
Trabalho 1 Resolvido-2023-2
Sinais e Sistemas
UTFPR
4
Prova 1 e 2 de Sinais e Sistemas-2022 1
Sinais e Sistemas
UTFPR
1
Exame Final Sinais e Sistemas-2021 2
Sinais e Sistemas
UTFPR
16
Prova Resolvida Sinais e Sistemas-2023 1
Sinais e Sistemas
UTFPR
16
Lista de Exercícios Sinais e Sistemas Resolvida-2022 2
Sinais e Sistemas
UTFPR
Texto de pré-visualização
Magnitude Response |H| frequency in pi units 1 0.8913 0.1778 0 0 0.2 0.3 1 Phase Response pi units frequency in pi units 1 0 0.2 0.3 1 -1 Magnitude in dB decibels frequency in pi units 0 15 30 0 0.2 0.3 1 Group Delay Samples frequency in pi units 0 5 10 15 0 0.2 0.3 1 Lowpass Filter Magnitude Response |H| frequency in pi units 1 0.8913 0 0.2 1 Lowpass Filter Magnitude in dB decibels frequency in pi units 0 30 0 0.2 1 Highpass Filter Magnitude Response |H| frequency in pi units 1 0.8913 0 0.6 1 Highpass Filter Magnitude in dB decibels frequency in pi units 0 30 0 0.6 1 Magnitude Response |H| Digital frequency in pi units 1 0.8913 0 0.25 0.4 0.7 0.8 1 Phase Response phase in pi units Digital frequency in pi units 1 0.5 0 0.25 0.4 0.7 0.8 1 -0.5 -1 Magnitude in dB Digital frequency in pi units 0 -40 0 0.25 0.4 0.7 0.8 1 Group Delay Digital frequency in pi units 0 5 10 15 0 0.25 0.4 0.7 0.8 1 Ideal Impulse Response hd(n) 0.3 0.2 0.1 -0.1 0 Actual Impulse Response 0.3 0.2 0.1 -0.1 0 0 20 40 n 60 0 20 40 n 60 Hamming Window w(n) 1.0 0.8 0.6 0.4 0.2 0 0 20 40 n 60 Magnitude Response in dB 0 50 Decibels 0.2 0.3 frequency in pi units 1 Exemplo. Repita o exemplo anterior usando uma janela de Kaiser. wp = 0.2*pi; ws = 0.3*pi; As = 50; tr_width = ws - wp M = ceil((As-7.95)/(14.36*tr_width/(2*pi))+1)+ 1 n=[0:1:M-1]; beta = 0.1102*(As-8.7) wc = (ws+wp)/2 hd = ideal_lp(wc,M); w_kai = (kaiser(M,beta))'; h = hd .* w_kai; [db,mag,pha,grd,w] = freqz_m(h,[1]); delta_w = 2*pi/1000; As = -round(max(db(ws/delta_w+1:1:501))) subplot(2,2,1); stem(n,hd); title('Ideal Impulse Response') subplot(2,2,2);stem(n,w_kai); title('Kaiser Window') subplot(2,2,3); stem(n,h); title('Actual Impulse Response') subplot(2,2,4);plot(w/pi,db); title('Magnitude Response in dB') M = N+1 = 61 = 4,5513 As = 52 dB Ideal Impulse Response hd(n) 0.3 0.2 0.1 -0.1 0 Actual Impulse Response 0.3 0.2 0.1 -0.1 0 0 10 30 50 n 60 0 10 30 50 n 60 Kaiser Window w(n) 1.0 0.8 0.6 0.4 0.2 0 0 10 30 50 n 60 Magnitude Response in dB 0 50 Decibels 0.2 0.3 frequency in pi units 1 Exemplo. Projete um filtro passa-faixa com as seguintes especificações: Pode-se usar a combinação de dois filtros. Usa-se a janela de Blackman. ws1 = 0.2*pi; wp1 = 0.35*pi; wp2 = 0.65*pi; ws2 = 0.8*pi; As = 60; tr_width = min((wp1-ws1),(ws2-wp2)) M = ceil(11*pi/tr_width) + 1 n=[0:1:M-1]; wc1 = (ws1+wp1)/2; wc2 = (wp2+ws2)/2; hd = ideal_lp(wc2,M) - ideal_lp(wc1,M); w_bla = (blackman(M))'; h = hd .* w_bla; [db,mag,pha,grd,w] = freqz_m(h,[1]); delta_w = 2*pi/1000; Rp = -min(db(wp1/delta_w+1:1:wp2/delta_w)) As = -round(max(db(ws2/delta_w+1:1:501))) subplot(2,2,1); stem(n,hd); title('Ideal Impulse Response') subplot(2,2,2); stem(n,w_bla); title('Blackman Window') subplot(2,2,3); stem(n,h); title('Actual Impulse Response') subplot(2,2,4);plot(w/pi,db); title('Magnitude Response in dB') % h = fir1(74,[wc1 wc2]/pi,'bandpass',w_bla); % Usando toolbox DSP M = N+1 = 75 wc1 = 0,275 wc2= 0,725 Rp = 0,03 As = 75 dB Ideal Impulse Response h_{\text{d}}(n) n -0.4 -0.2 0 0.2 0.4 0 20 40 60 Blackman Window w(n) n 0 0.2 0.4 0.6 0.8 1 0 20 40 60 Actual Impulse Response h(n) n -0.4 -0.2 0 0.2 0.4 0 20 40 60 Magnitude Response in dB Decibels frequency in pi units 0 20 40 60 80 0 0.2 0.35 0.65 1 1.1.2. Projeto por Amostragem de Frequência A resposta de frequência desejada é amostrada uniformemente com N pontos entre 0 e 2. 2 / ( ) ( ), 0,1,..., 1 [ ] [ ], 0 1 j k N d d k H k H e k N h n h n kN n N =− = = − = + − Dado o filtro ideal Hd , escolha o comprimento M e amostre essa resposta em M frequências equidistantes entre 0 e 2. A resposta do filtro digital H é a interpolação dessas amostras. Os erros de aproximação são maiores nas bordas das bandas e menores no meio destas. Exemplo. Projete um filtro FIR passa-baixa por amostragem de frequência com as seguintes especificações: Para filtros FIR tipo II, tem-se: 0,2 , 0,3 , 0,25dBe 50dB. p s p s R A = = = = Escolhe-se M = 20 para que as frequências dadas sejam contempladas por amostras. Assim, tem-se: M = 20; alpha = (M-1)/2; l = 0:M-1; wl = (2*pi/M)*l; Hrs = [1,1,1,zeros(1,15),1,1]; k1 = 0:floor((M-1)/2); k2 = floor((M-1)/2)+1:M-1; angH = [-alpha*(2*pi)/M*k1, alpha*(2*pi)/M*(M-k2)]; H = Hrs.*exp(j*angH); h = real(ifft(H,M)); [db,mag,pha,grd,w] = freqz_m(h,1); [Hr,ww,a,L] = Hr_Type2(h); Frequency Samples: M=20 H(e^{jω}) frequency in pi units 0 0.2 0.3 1 0 0.2 0.4 0.6 0.8 1 Impulse Response h(n) n -0.1 0 0.1 0.2 0.3 0 5 10 15 20 Amplitude Response |H(e^{jω})| frequency in pi units 0 0.2 0.3 1 0 0.2 0.4 0.6 0.8 1 Magnitude Response Decibels frequency in pi units 0 8 16 0 0.2 0.3 1 Exemplo. Repita o exemplo anterior usando duas amostras na banda de transição, T1 = 0,5925 e T2 = 0,1099, (Proakis e Manolakis, 2006). 1 2 2 1 7 uns 6 uns 43 zeros ( ) [1, ,1, , ,0, ,0, , ,1, ,1] H T T T T = M = 60; alpha = (M-1)/2; l = 0:M-1; wl = (2*pi/M)*l; Hrs = [ones(1,7),0.5925,0.1099,zeros(1,43),0.1099,0.5925,ones(1,6)]; k1 = 0:floor((M-1)/2); k2 = floor((M-1)/2)+1:M-1; angH = [-alpha*(2*pi)/M*k1, alpha*(2*pi)/M*(M-k2)]; H = Hrs.*exp(j*angH); h = real(ifft(H,M)); [db,mag,pha,grd,w] = freqz_m(h,1); [Hr,ww,a,L] = Hr_Type2(h); Lowpass: M=60, T1=0.59, T2=0.109 H(e^{jω}) frequency in pi units 0 0.2 0.3 1 0 0.109 0.59 1 Impulse Response h(n) n -0.1 0 0.1 0.2 0.3 0 10 20 30 40 50 60 Amplitude Response |H(e^{jω})| frequency in pi units 0 0.2 0.3 1 0 0.109 0.59 1 Magnitude Response Decibels frequency in pi units 0 21 42 63 0 0.2 0.3 1 1.2. Projeto de Filtros IIR por Filtros Analógicos Convertem-se protótipos de filtros analógicos para versões digitais. Para filtros analógicos, costuma-se usar especificações de resposta de magnitude quadrada. As constantes e e A são chamados de parâmetros de ripple da banda de passagem e de atenuação da banda de rejeição respectivamente. Como se deseja encontrar um filtro causal e estável, este deve possuir somente polos no semiplano esquerdo do plano s. Assim, escolhem-se esses polos de |Ha(jW)|2. Além disso, escolhem-se os zeros também no semiplano esquerdo para que o sistema seja de fase mínima. (i) Filtro Butterworth: ( ) 2 2 1 ( ) 1 / a N c H jW = + W W Características dos filtros Butterworth: 2 ( ) 1, para 0 Ha j • W = W = 2 ( ) 0,5, para a c H j • W = W = W 2 ( ) é uma função monotônica decrescente de Ha j • W W 2 ( ) é maximamente plana em 0 Ha j • W W = ( ) ( ) possui 2N polos com módulo e espaçamento angular /N a a c H s H s • − W Um polos só cai no eixo real se N for ímpar • ( ) ( ) ( ) /10 /10 10 10 log 10 1 10 1 2log p s R A p s N − − = W W (ii) Filtro Chebyshev tipo I: 1 1 1 1 0 1 cos( cos ( )), | | 1 ( ) cosh(cosh ( )), | | 1 ( ) 2 ( ) ( ), 1 ( ) 1 e ( ) N k k k N x x T x x x T x xT x T x k T x T x x − − + − = = − = = ( ) 2 2 2 1 ( ) 1 / a N c H j e T W = + W W (iii) Filtro Chebyshev tipo II: ( ) 2 1 2 2 1 ( ) 1 / a N c H j T e − W = + W W ( ) 2 10 2 10 2 2 log 1 log 1 1 , r r r s p g g N g A e + − = W + W − = − W = W W (iv) Filtro Elíptico: usa a função elíptica Jacobiana UN . ( ) 2 2 2 1 ( ) 1 / a N c H j e U W = + W W ( ) ( ) ( ) 2 1 2 1 2 1 2 2 0 ( ) 1 ( ) 1 , 1 ( ) 1 p s K k K k N K k K k k k A d K x x sen e − = − = W W = − = − 1.2.1. Método da Invariância ao Impulso Usa-se um mapeamento do plano s para o plano z: O mapeamento m(z) deve ter as seguintes propriedades: ⚫ O eixo jW deve ser mapeado para o círculo unitário. ⚫ Pontos do lado esquerdo do plano s devem ser mapeados para pontos dentro do círculo unitário. ⚫ m(z) deve ser uma função racional de z de tal forma que funções racionais Ha(s) sejam mapeadas para funções racionais H(z). No método de invariância ao impulso, a conversão é feita pela amostragem da resposta impulsiva do filtro analógico: ( ) ( ) a ( ) s m z H z H s = = [ ] ( ) a h n = h nT Nesse mapeamento, ocorre aliasing da resposta de frequência, portanto é um método restrito a filtros analógicos com banda limitada. Exemplo. Projete um filtro IIR passa-baixa usando protótipo Butterworth pelo método da invariância ao impulso com as seguintes especificações: Para filtros IIR com Butterworth usam-se as seguintes funções do MATLAB: afd_butt, imp_invr e dir2par. 0,2 , 0,3 , 1dBe 15dB. p s p s R A = = = = % Digital Filter Specifications: wp = 0.2*pi; % digital Passband freq in Hz ws = 0.3*pi; % digital Stopband freq in Hz Rp = 1; % Passband ripple in dB As = 15; % Stopband attenuation in dB % Analog Prototype Specifications: Inverse mapping for frequencies T = 1; % Set T=1 OmegaP = wp / T; % Prototype Passband freq OmegaS = ws / T; % Prototype Stopband freq % Analog Butterworth Prototype Filter Calculation: [cs,ds] = afd_butt(OmegaP,OmegaS,Rp,As); % Impulse Invariance transformation: [b,a] = imp_invr(cs,ds,T); [C,B,A] = dir2par(b,a) *** Butterworth Filter Order = 6 C = [] B = 1.8557 -0.6304 -2.1428 1.1454 0.2871 -0.4466 A = 1.0000 -0.9973 0.2570 1.0000 -1.0691 0.3699 1.0000 -1.2972 0.6949 Magnitude Response 1 0.8913 0.1778 0 |H| frequency in pi units 01 Phase Response 1 0 -1 frequency in pi units pi units 01 Magnitude in dB 0 5 10 15 decibels frequency in pi units 01 Group Delay Samples 0 2 4 6 8 10 frequency in pi units 01 Exemplo. Projete o mesmo filtro IIR anterior usando protótipo Chebyshev I. Para filtros IIR com Chebyshev I usam-se as seguintes funções do MATLAB: afd_chb1, imp_invr e dir2par. % Analog Chebyshev-1 Prototype Filter Calculation: [cs,ds] = afd_chb1(OmegaP,OmegaS,Rp,As); % Impulse Invariance transformation: [b,a] = imp_invr(cs,ds,T); [C,B,A] = dir2par(b,a) *** Chebyshev-1 Filter Order = 4 C = [] B = -0.0833 -0.0246 0.0833 0.0239 A = 1.0000 -1.4934 0.8392 1.0000 -1.5658 0.6549 Magnitude Response 1 0.8913 0.1778 0 |H| frequency in pi units 01 Phase Response 1 0 -1 frequency in pi units pi units 01 Magnitude in dB 0 5 10 15 decibels frequency in pi units 01 Group Delay Samples 0 5 10 15 frequency in pi units 01 1.2.2. Método da Transformação Bilinear Método baseado em um mapeamento definido por: Neste mapeamento, não ocorre aliasing, porém a transformação é não- linear, dada pela seguinte função de modificação de frequência: É um método usado geralmente para filtros de seleção de frequência 1 1 2 1 ( ) 1 a H z H T z z − − − = + 2tan 1 2 T − W = Exemplo. Projete o mesmo filtro IIR anterior usando protótipo Butterworth com transformação bilinear. Para isso, substitui-se a função imp_invr por bilinear. T = 1; Fs = 1/T; OmegaP = (2/T)*tan(wp/2); OmegaS = (2/T)*tan(ws/2); % Analog Butterworth Prototype Filter: [cs,ds] = afd_butt(OmegaP,OmegaS,Rp,As); % Bilinear transformation: [b,a] = bilinear(cs,ds,Fs); [C,B,A] = dir2cas(b,a) *** Butterworth Filter Order = 6 C = 5.7969e-004 B = 1.0000 2.0202 1.0206 1.0000 1.9794 0.9798 1.0000 2.0004 1.0000 A = 1.0000 -0.9459 0.2342 1.0000 -1.0541 0.3753 1.0000 -1.3143 0.7149 Magnitude Response 1 0.8913 0.1778 0 |H| frequency in pi units 01 Phase Response 1 0 -1 frequency in pi units pi units 01 Magnitude in dB 0 5 10 15 decibels frequency in pi units 01 Group Delay Samples 0 2 4 6 8 10 frequency in pi units 01 (pg.241) Exemplo. Projete o mesmo filtro IIR anterior usando protótipo Elíptico com transformação bilinear. Para isso, usa-se a função afd_elip. T = 1; Fs = 1/T; OmegaP = (2/T)*tan(wp/2); OmegaS = (2/T)*tan(ws/2); % Analog Elliptic Prototype Filter Calculation: [cs,ds] = afd_elip(OmegaP,OmegaS,Rp,As); % Bilinear transformation: [b,a] = bilinear(cs,ds,Fs); [C,B,A] = dir2cas(b,a) *** Elliptic Filter Order = 3 C = 0.1214 B = 1.0000 -1.4211 1.0000 1.0000 1.0000 0 A = 1.0000 -1.4928 0.8612 1.0000 -0.6183 0 1.2.3. Transformações de Frequência: (i) Transformação do filtro digital (abordagem 2) Exemplo. Projete um filtro IIR passa-alta usando protótipo Chebyshev I com as seguintes especificações: Para isso, usa-se a função zmapping. Projeta-se um filtro passa-baixa com as especificações do exemplo anterior. % Digital Lowpass Filter Specifications: wplp = 0.2*pi; % digital Passband freq in Hz wslp = 0.3*pi; % digital Stopband freq in Hz Rp = 1; % Passband ripple in dB As = 15; % Stopband attenuation in dB % Analog Prototype Specifications: Inverse mapping for frequencies T = 1; Fs = 1/T; % Set T=1 OmegaP = (2/T)*tan(wplp/2); % Prewarp Prototype Passband frq OmegaS = (2/T)*tan(wslp/2); % Prewarp Prototype Stopband frq % Analog Chebyshev Prototype Filter Calculation: [cs,ds] = afd_chb1(OmegaP,OmegaS,Rp,As); [blp,alp] = bilinear(cs,ds,Fs); 0,3 , 0,6 , 1dBe 15dB. s p p s R A = = = = % Digital Highpass Filter Cutoff frequency: wphp = 0.6*pi; % Passband edge frequency % LP-to-HP frequency-band transformation: alpha = -(cos((wplp+wphp)/2))/(cos((wplp-wphp)/2)) Nz = -[alpha,1]; Dz = [1,alpha]; [bhp,ahp] = zmapping(blp,alp,Nz,Dz); [C,B,A] = dir2cas(bhp,ahp) *** Chebyshev-1 Filter Order = 4 alpha = -0.3820 C = 0.0243 B = 1.0000 -2.0000 1.0000 1.0000 -2.0000 1.0000 A = 1.0000 1.0416 0.4019 1.0000 0.5561 0.7647 (ii) Transformação do filtro analógico (abordagem 1) Esta abordagem baseia-se nas funções do Toolbox de Processamento de Sinais do MATLAB e transformações no plano s. Exemplo. Projete um filtro IIR rejeita-faixa usando protótipo Chebyshev II com as especificações abaixo. Para isso, usam-se as funções cheb2ord e cheby2. 0,4 e 0,7 , 0,25 e 0,8 , 1dBe 40dB. s p p s R A = = = = % Digital Filter Specifications: ws = [0.4*pi 0.7*pi]; % digital stopband wp = [0.25*pi 0.8*pi]; % digital passband Rp = 1; % Passband ripple in dB As = 40; % Stopband attenuation in dB % Calculations of Chebyshev-II Filter Parameters: [N,wn] = cheb2ord(wp/pi,ws/pi,Rp,As); % Digital Chebyshev-II Bandstop Filter Design: [b,a] = cheby2(N,As,ws/pi,'stop'); % Cascade Form Realization: [b0,B,A] = dir2cas(b,a) Filtro de 10a. Ordem.
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
1
Atividade de Acompanhamento Filtros Digitais 2023 1
Sinais e Sistemas
UTFPR
3
Lista Final-2023-1
Sinais e Sistemas
UTFPR
1
Questao Sinais e Sistemas-2021 2
Sinais e Sistemas
UTFPR
14
Lista Laplace Resolvida e Anotações com Resolução-2023 1
Sinais e Sistemas
UTFPR
4
Exercício Resolvido-2023-2
Sinais e Sistemas
UTFPR
34
Trabalho 1 Resolvido-2023-2
Sinais e Sistemas
UTFPR
4
Prova 1 e 2 de Sinais e Sistemas-2022 1
Sinais e Sistemas
UTFPR
1
Exame Final Sinais e Sistemas-2021 2
Sinais e Sistemas
UTFPR
16
Prova Resolvida Sinais e Sistemas-2023 1
Sinais e Sistemas
UTFPR
16
Lista de Exercícios Sinais e Sistemas Resolvida-2022 2
Sinais e Sistemas
UTFPR
Texto de pré-visualização
Magnitude Response |H| frequency in pi units 1 0.8913 0.1778 0 0 0.2 0.3 1 Phase Response pi units frequency in pi units 1 0 0.2 0.3 1 -1 Magnitude in dB decibels frequency in pi units 0 15 30 0 0.2 0.3 1 Group Delay Samples frequency in pi units 0 5 10 15 0 0.2 0.3 1 Lowpass Filter Magnitude Response |H| frequency in pi units 1 0.8913 0 0.2 1 Lowpass Filter Magnitude in dB decibels frequency in pi units 0 30 0 0.2 1 Highpass Filter Magnitude Response |H| frequency in pi units 1 0.8913 0 0.6 1 Highpass Filter Magnitude in dB decibels frequency in pi units 0 30 0 0.6 1 Magnitude Response |H| Digital frequency in pi units 1 0.8913 0 0.25 0.4 0.7 0.8 1 Phase Response phase in pi units Digital frequency in pi units 1 0.5 0 0.25 0.4 0.7 0.8 1 -0.5 -1 Magnitude in dB Digital frequency in pi units 0 -40 0 0.25 0.4 0.7 0.8 1 Group Delay Digital frequency in pi units 0 5 10 15 0 0.25 0.4 0.7 0.8 1 Ideal Impulse Response hd(n) 0.3 0.2 0.1 -0.1 0 Actual Impulse Response 0.3 0.2 0.1 -0.1 0 0 20 40 n 60 0 20 40 n 60 Hamming Window w(n) 1.0 0.8 0.6 0.4 0.2 0 0 20 40 n 60 Magnitude Response in dB 0 50 Decibels 0.2 0.3 frequency in pi units 1 Exemplo. Repita o exemplo anterior usando uma janela de Kaiser. wp = 0.2*pi; ws = 0.3*pi; As = 50; tr_width = ws - wp M = ceil((As-7.95)/(14.36*tr_width/(2*pi))+1)+ 1 n=[0:1:M-1]; beta = 0.1102*(As-8.7) wc = (ws+wp)/2 hd = ideal_lp(wc,M); w_kai = (kaiser(M,beta))'; h = hd .* w_kai; [db,mag,pha,grd,w] = freqz_m(h,[1]); delta_w = 2*pi/1000; As = -round(max(db(ws/delta_w+1:1:501))) subplot(2,2,1); stem(n,hd); title('Ideal Impulse Response') subplot(2,2,2);stem(n,w_kai); title('Kaiser Window') subplot(2,2,3); stem(n,h); title('Actual Impulse Response') subplot(2,2,4);plot(w/pi,db); title('Magnitude Response in dB') M = N+1 = 61 = 4,5513 As = 52 dB Ideal Impulse Response hd(n) 0.3 0.2 0.1 -0.1 0 Actual Impulse Response 0.3 0.2 0.1 -0.1 0 0 10 30 50 n 60 0 10 30 50 n 60 Kaiser Window w(n) 1.0 0.8 0.6 0.4 0.2 0 0 10 30 50 n 60 Magnitude Response in dB 0 50 Decibels 0.2 0.3 frequency in pi units 1 Exemplo. Projete um filtro passa-faixa com as seguintes especificações: Pode-se usar a combinação de dois filtros. Usa-se a janela de Blackman. ws1 = 0.2*pi; wp1 = 0.35*pi; wp2 = 0.65*pi; ws2 = 0.8*pi; As = 60; tr_width = min((wp1-ws1),(ws2-wp2)) M = ceil(11*pi/tr_width) + 1 n=[0:1:M-1]; wc1 = (ws1+wp1)/2; wc2 = (wp2+ws2)/2; hd = ideal_lp(wc2,M) - ideal_lp(wc1,M); w_bla = (blackman(M))'; h = hd .* w_bla; [db,mag,pha,grd,w] = freqz_m(h,[1]); delta_w = 2*pi/1000; Rp = -min(db(wp1/delta_w+1:1:wp2/delta_w)) As = -round(max(db(ws2/delta_w+1:1:501))) subplot(2,2,1); stem(n,hd); title('Ideal Impulse Response') subplot(2,2,2); stem(n,w_bla); title('Blackman Window') subplot(2,2,3); stem(n,h); title('Actual Impulse Response') subplot(2,2,4);plot(w/pi,db); title('Magnitude Response in dB') % h = fir1(74,[wc1 wc2]/pi,'bandpass',w_bla); % Usando toolbox DSP M = N+1 = 75 wc1 = 0,275 wc2= 0,725 Rp = 0,03 As = 75 dB Ideal Impulse Response h_{\text{d}}(n) n -0.4 -0.2 0 0.2 0.4 0 20 40 60 Blackman Window w(n) n 0 0.2 0.4 0.6 0.8 1 0 20 40 60 Actual Impulse Response h(n) n -0.4 -0.2 0 0.2 0.4 0 20 40 60 Magnitude Response in dB Decibels frequency in pi units 0 20 40 60 80 0 0.2 0.35 0.65 1 1.1.2. Projeto por Amostragem de Frequência A resposta de frequência desejada é amostrada uniformemente com N pontos entre 0 e 2. 2 / ( ) ( ), 0,1,..., 1 [ ] [ ], 0 1 j k N d d k H k H e k N h n h n kN n N =− = = − = + − Dado o filtro ideal Hd , escolha o comprimento M e amostre essa resposta em M frequências equidistantes entre 0 e 2. A resposta do filtro digital H é a interpolação dessas amostras. Os erros de aproximação são maiores nas bordas das bandas e menores no meio destas. Exemplo. Projete um filtro FIR passa-baixa por amostragem de frequência com as seguintes especificações: Para filtros FIR tipo II, tem-se: 0,2 , 0,3 , 0,25dBe 50dB. p s p s R A = = = = Escolhe-se M = 20 para que as frequências dadas sejam contempladas por amostras. Assim, tem-se: M = 20; alpha = (M-1)/2; l = 0:M-1; wl = (2*pi/M)*l; Hrs = [1,1,1,zeros(1,15),1,1]; k1 = 0:floor((M-1)/2); k2 = floor((M-1)/2)+1:M-1; angH = [-alpha*(2*pi)/M*k1, alpha*(2*pi)/M*(M-k2)]; H = Hrs.*exp(j*angH); h = real(ifft(H,M)); [db,mag,pha,grd,w] = freqz_m(h,1); [Hr,ww,a,L] = Hr_Type2(h); Frequency Samples: M=20 H(e^{jω}) frequency in pi units 0 0.2 0.3 1 0 0.2 0.4 0.6 0.8 1 Impulse Response h(n) n -0.1 0 0.1 0.2 0.3 0 5 10 15 20 Amplitude Response |H(e^{jω})| frequency in pi units 0 0.2 0.3 1 0 0.2 0.4 0.6 0.8 1 Magnitude Response Decibels frequency in pi units 0 8 16 0 0.2 0.3 1 Exemplo. Repita o exemplo anterior usando duas amostras na banda de transição, T1 = 0,5925 e T2 = 0,1099, (Proakis e Manolakis, 2006). 1 2 2 1 7 uns 6 uns 43 zeros ( ) [1, ,1, , ,0, ,0, , ,1, ,1] H T T T T = M = 60; alpha = (M-1)/2; l = 0:M-1; wl = (2*pi/M)*l; Hrs = [ones(1,7),0.5925,0.1099,zeros(1,43),0.1099,0.5925,ones(1,6)]; k1 = 0:floor((M-1)/2); k2 = floor((M-1)/2)+1:M-1; angH = [-alpha*(2*pi)/M*k1, alpha*(2*pi)/M*(M-k2)]; H = Hrs.*exp(j*angH); h = real(ifft(H,M)); [db,mag,pha,grd,w] = freqz_m(h,1); [Hr,ww,a,L] = Hr_Type2(h); Lowpass: M=60, T1=0.59, T2=0.109 H(e^{jω}) frequency in pi units 0 0.2 0.3 1 0 0.109 0.59 1 Impulse Response h(n) n -0.1 0 0.1 0.2 0.3 0 10 20 30 40 50 60 Amplitude Response |H(e^{jω})| frequency in pi units 0 0.2 0.3 1 0 0.109 0.59 1 Magnitude Response Decibels frequency in pi units 0 21 42 63 0 0.2 0.3 1 1.2. Projeto de Filtros IIR por Filtros Analógicos Convertem-se protótipos de filtros analógicos para versões digitais. Para filtros analógicos, costuma-se usar especificações de resposta de magnitude quadrada. As constantes e e A são chamados de parâmetros de ripple da banda de passagem e de atenuação da banda de rejeição respectivamente. Como se deseja encontrar um filtro causal e estável, este deve possuir somente polos no semiplano esquerdo do plano s. Assim, escolhem-se esses polos de |Ha(jW)|2. Além disso, escolhem-se os zeros também no semiplano esquerdo para que o sistema seja de fase mínima. (i) Filtro Butterworth: ( ) 2 2 1 ( ) 1 / a N c H jW = + W W Características dos filtros Butterworth: 2 ( ) 1, para 0 Ha j • W = W = 2 ( ) 0,5, para a c H j • W = W = W 2 ( ) é uma função monotônica decrescente de Ha j • W W 2 ( ) é maximamente plana em 0 Ha j • W W = ( ) ( ) possui 2N polos com módulo e espaçamento angular /N a a c H s H s • − W Um polos só cai no eixo real se N for ímpar • ( ) ( ) ( ) /10 /10 10 10 log 10 1 10 1 2log p s R A p s N − − = W W (ii) Filtro Chebyshev tipo I: 1 1 1 1 0 1 cos( cos ( )), | | 1 ( ) cosh(cosh ( )), | | 1 ( ) 2 ( ) ( ), 1 ( ) 1 e ( ) N k k k N x x T x x x T x xT x T x k T x T x x − − + − = = − = = ( ) 2 2 2 1 ( ) 1 / a N c H j e T W = + W W (iii) Filtro Chebyshev tipo II: ( ) 2 1 2 2 1 ( ) 1 / a N c H j T e − W = + W W ( ) 2 10 2 10 2 2 log 1 log 1 1 , r r r s p g g N g A e + − = W + W − = − W = W W (iv) Filtro Elíptico: usa a função elíptica Jacobiana UN . ( ) 2 2 2 1 ( ) 1 / a N c H j e U W = + W W ( ) ( ) ( ) 2 1 2 1 2 1 2 2 0 ( ) 1 ( ) 1 , 1 ( ) 1 p s K k K k N K k K k k k A d K x x sen e − = − = W W = − = − 1.2.1. Método da Invariância ao Impulso Usa-se um mapeamento do plano s para o plano z: O mapeamento m(z) deve ter as seguintes propriedades: ⚫ O eixo jW deve ser mapeado para o círculo unitário. ⚫ Pontos do lado esquerdo do plano s devem ser mapeados para pontos dentro do círculo unitário. ⚫ m(z) deve ser uma função racional de z de tal forma que funções racionais Ha(s) sejam mapeadas para funções racionais H(z). No método de invariância ao impulso, a conversão é feita pela amostragem da resposta impulsiva do filtro analógico: ( ) ( ) a ( ) s m z H z H s = = [ ] ( ) a h n = h nT Nesse mapeamento, ocorre aliasing da resposta de frequência, portanto é um método restrito a filtros analógicos com banda limitada. Exemplo. Projete um filtro IIR passa-baixa usando protótipo Butterworth pelo método da invariância ao impulso com as seguintes especificações: Para filtros IIR com Butterworth usam-se as seguintes funções do MATLAB: afd_butt, imp_invr e dir2par. 0,2 , 0,3 , 1dBe 15dB. p s p s R A = = = = % Digital Filter Specifications: wp = 0.2*pi; % digital Passband freq in Hz ws = 0.3*pi; % digital Stopband freq in Hz Rp = 1; % Passband ripple in dB As = 15; % Stopband attenuation in dB % Analog Prototype Specifications: Inverse mapping for frequencies T = 1; % Set T=1 OmegaP = wp / T; % Prototype Passband freq OmegaS = ws / T; % Prototype Stopband freq % Analog Butterworth Prototype Filter Calculation: [cs,ds] = afd_butt(OmegaP,OmegaS,Rp,As); % Impulse Invariance transformation: [b,a] = imp_invr(cs,ds,T); [C,B,A] = dir2par(b,a) *** Butterworth Filter Order = 6 C = [] B = 1.8557 -0.6304 -2.1428 1.1454 0.2871 -0.4466 A = 1.0000 -0.9973 0.2570 1.0000 -1.0691 0.3699 1.0000 -1.2972 0.6949 Magnitude Response 1 0.8913 0.1778 0 |H| frequency in pi units 01 Phase Response 1 0 -1 frequency in pi units pi units 01 Magnitude in dB 0 5 10 15 decibels frequency in pi units 01 Group Delay Samples 0 2 4 6 8 10 frequency in pi units 01 Exemplo. Projete o mesmo filtro IIR anterior usando protótipo Chebyshev I. Para filtros IIR com Chebyshev I usam-se as seguintes funções do MATLAB: afd_chb1, imp_invr e dir2par. % Analog Chebyshev-1 Prototype Filter Calculation: [cs,ds] = afd_chb1(OmegaP,OmegaS,Rp,As); % Impulse Invariance transformation: [b,a] = imp_invr(cs,ds,T); [C,B,A] = dir2par(b,a) *** Chebyshev-1 Filter Order = 4 C = [] B = -0.0833 -0.0246 0.0833 0.0239 A = 1.0000 -1.4934 0.8392 1.0000 -1.5658 0.6549 Magnitude Response 1 0.8913 0.1778 0 |H| frequency in pi units 01 Phase Response 1 0 -1 frequency in pi units pi units 01 Magnitude in dB 0 5 10 15 decibels frequency in pi units 01 Group Delay Samples 0 5 10 15 frequency in pi units 01 1.2.2. Método da Transformação Bilinear Método baseado em um mapeamento definido por: Neste mapeamento, não ocorre aliasing, porém a transformação é não- linear, dada pela seguinte função de modificação de frequência: É um método usado geralmente para filtros de seleção de frequência 1 1 2 1 ( ) 1 a H z H T z z − − − = + 2tan 1 2 T − W = Exemplo. Projete o mesmo filtro IIR anterior usando protótipo Butterworth com transformação bilinear. Para isso, substitui-se a função imp_invr por bilinear. T = 1; Fs = 1/T; OmegaP = (2/T)*tan(wp/2); OmegaS = (2/T)*tan(ws/2); % Analog Butterworth Prototype Filter: [cs,ds] = afd_butt(OmegaP,OmegaS,Rp,As); % Bilinear transformation: [b,a] = bilinear(cs,ds,Fs); [C,B,A] = dir2cas(b,a) *** Butterworth Filter Order = 6 C = 5.7969e-004 B = 1.0000 2.0202 1.0206 1.0000 1.9794 0.9798 1.0000 2.0004 1.0000 A = 1.0000 -0.9459 0.2342 1.0000 -1.0541 0.3753 1.0000 -1.3143 0.7149 Magnitude Response 1 0.8913 0.1778 0 |H| frequency in pi units 01 Phase Response 1 0 -1 frequency in pi units pi units 01 Magnitude in dB 0 5 10 15 decibels frequency in pi units 01 Group Delay Samples 0 2 4 6 8 10 frequency in pi units 01 (pg.241) Exemplo. Projete o mesmo filtro IIR anterior usando protótipo Elíptico com transformação bilinear. Para isso, usa-se a função afd_elip. T = 1; Fs = 1/T; OmegaP = (2/T)*tan(wp/2); OmegaS = (2/T)*tan(ws/2); % Analog Elliptic Prototype Filter Calculation: [cs,ds] = afd_elip(OmegaP,OmegaS,Rp,As); % Bilinear transformation: [b,a] = bilinear(cs,ds,Fs); [C,B,A] = dir2cas(b,a) *** Elliptic Filter Order = 3 C = 0.1214 B = 1.0000 -1.4211 1.0000 1.0000 1.0000 0 A = 1.0000 -1.4928 0.8612 1.0000 -0.6183 0 1.2.3. Transformações de Frequência: (i) Transformação do filtro digital (abordagem 2) Exemplo. Projete um filtro IIR passa-alta usando protótipo Chebyshev I com as seguintes especificações: Para isso, usa-se a função zmapping. Projeta-se um filtro passa-baixa com as especificações do exemplo anterior. % Digital Lowpass Filter Specifications: wplp = 0.2*pi; % digital Passband freq in Hz wslp = 0.3*pi; % digital Stopband freq in Hz Rp = 1; % Passband ripple in dB As = 15; % Stopband attenuation in dB % Analog Prototype Specifications: Inverse mapping for frequencies T = 1; Fs = 1/T; % Set T=1 OmegaP = (2/T)*tan(wplp/2); % Prewarp Prototype Passband frq OmegaS = (2/T)*tan(wslp/2); % Prewarp Prototype Stopband frq % Analog Chebyshev Prototype Filter Calculation: [cs,ds] = afd_chb1(OmegaP,OmegaS,Rp,As); [blp,alp] = bilinear(cs,ds,Fs); 0,3 , 0,6 , 1dBe 15dB. s p p s R A = = = = % Digital Highpass Filter Cutoff frequency: wphp = 0.6*pi; % Passband edge frequency % LP-to-HP frequency-band transformation: alpha = -(cos((wplp+wphp)/2))/(cos((wplp-wphp)/2)) Nz = -[alpha,1]; Dz = [1,alpha]; [bhp,ahp] = zmapping(blp,alp,Nz,Dz); [C,B,A] = dir2cas(bhp,ahp) *** Chebyshev-1 Filter Order = 4 alpha = -0.3820 C = 0.0243 B = 1.0000 -2.0000 1.0000 1.0000 -2.0000 1.0000 A = 1.0000 1.0416 0.4019 1.0000 0.5561 0.7647 (ii) Transformação do filtro analógico (abordagem 1) Esta abordagem baseia-se nas funções do Toolbox de Processamento de Sinais do MATLAB e transformações no plano s. Exemplo. Projete um filtro IIR rejeita-faixa usando protótipo Chebyshev II com as especificações abaixo. Para isso, usam-se as funções cheb2ord e cheby2. 0,4 e 0,7 , 0,25 e 0,8 , 1dBe 40dB. s p p s R A = = = = % Digital Filter Specifications: ws = [0.4*pi 0.7*pi]; % digital stopband wp = [0.25*pi 0.8*pi]; % digital passband Rp = 1; % Passband ripple in dB As = 40; % Stopband attenuation in dB % Calculations of Chebyshev-II Filter Parameters: [N,wn] = cheb2ord(wp/pi,ws/pi,Rp,As); % Digital Chebyshev-II Bandstop Filter Design: [b,a] = cheby2(N,As,ws/pi,'stop'); % Cascade Form Realization: [b0,B,A] = dir2cas(b,a) Filtro de 10a. Ordem.