1. Faça um filtro passa-baixas com fc = 0.1fs e roll-off 0.01fs e plote sua resposta em magnitude. A função filtrosincpb pode ser conseguida aqui: filtrosincpb.m
fc = 0.1;
rolloff = 0.01;
h = filtrosincpb(fc,rolloff);
t = length(h)
H=fft(h,512);
MagH = abs(H);
f=linspace(0,0.5,257);
plot(f,MagH(1:257));
xlabel('fs')
ylabel('|H(f)|')
title('Filtro passa-baixas com fc=0.25 e rolloff=0.01')
rolloff = 0.01;
h = filtrosincpb(fc,rolloff);
t = length(h)
H=fft(h,512);
MagH = abs(H);
f=linspace(0,0.5,257);
plot(f,MagH(1:257));
xlabel('fs')
ylabel('|H(f)|')
title('Filtro passa-baixas com fc=0.25 e rolloff=0.01')
2. Repita o processo, relaxando agora o rolloff para 0.1fs
rolloff1 = 0.1;
h1 = filtrosincpb(fc,rolloff1);
t1=length(h1)
H1=fft(h1,512);
MagH1 = abs(H1);
figure;
plot(f,MagH1(1:257));
xlabel('fs')
ylabel('|H(f)|')
title('Filtro passa-baixas com fc=0.25 e rolloff=0.1')
3. Discuta a relação entre o rolloff e o comprimento da resposta em frequência do filtro.
4. Multiplique a resposta a impulso h1[n] por uma janela de Hamming. O que acontece com a resposta em magnitude? Porque?
t2 = length(h1);
h2 = h1.*hamming(t1)';
H2=fft(h2,512);
MagH2 = abs(H2);
figure;
plot(f,MagH2(1:257));
xlabel('fs')
ylabel('|H(f)|')
title('Filtro passa-baixas com fc=0.25 e rolloff=0.01 suavizado por uma janela de Hamming')
5. Crie um filtro passa-altas a partir de h2[n] usando o processo de inversão espectral. Qual a frequência de corte do novo filtro?
h2pa = -h2;
h2pa(round(t2/2))=h2pa(round(t2/2))+1;
H2PA=fft(h2pa,512);
MagH2PA = abs(H2PA);
figure;
plot(f,MagH2PA(1:257));
xlabel('fs')
ylabel('|H(f)|')
title('Filtro altas derivado de h2[n] por inversão espectral')
6. Crie um filtro passa-altas a partir de h2[n] usando o processo de reversão espectral. Qual a frequência de corte do novo filtro?
h2pa2=zeros(size(h2));
termo=1;
for i=1:length(h2)
h2pa2(i)=h2(i)*termo;
termo=-termo;
end
H2PA2=fft(h2pa2,512);
MagH2PA2 = abs(H2PA2);
figure;
plot(f,MagH2PA2(1:257));
xlabel('fs')
ylabel('|H(f)|')
title('Filtro altas derivado de h2[n] por reversão espectral')
7. Crie um filtro passa-faixa, com banda passante de 0.2fs a 0.3fs, a partir de um filtro passa-baixas com fc=0.3fs.
8. Crie um filtro rejeita-faixa, com banda de rejeição de de 0.2fs a 0.3fs, a partir de um filtro passa-baixas com fc=0.2 fs.
h2 = h1.*hamming(t1)';
H2=fft(h2,512);
MagH2 = abs(H2);
figure;
plot(f,MagH2(1:257));
xlabel('fs')
ylabel('|H(f)|')
title('Filtro passa-baixas com fc=0.25 e rolloff=0.01 suavizado por uma janela de Hamming')
5. Crie um filtro passa-altas a partir de h2[n] usando o processo de inversão espectral. Qual a frequência de corte do novo filtro?
h2pa = -h2;
h2pa(round(t2/2))=h2pa(round(t2/2))+1;
H2PA=fft(h2pa,512);
MagH2PA = abs(H2PA);
figure;
plot(f,MagH2PA(1:257));
xlabel('fs')
ylabel('|H(f)|')
title('Filtro altas derivado de h2[n] por inversão espectral')
6. Crie um filtro passa-altas a partir de h2[n] usando o processo de reversão espectral. Qual a frequência de corte do novo filtro?
h2pa2=zeros(size(h2));
termo=1;
for i=1:length(h2)
h2pa2(i)=h2(i)*termo;
termo=-termo;
end
H2PA2=fft(h2pa2,512);
MagH2PA2 = abs(H2PA2);
figure;
plot(f,MagH2PA2(1:257));
xlabel('fs')
ylabel('|H(f)|')
title('Filtro altas derivado de h2[n] por reversão espectral')
7. Crie um filtro passa-faixa, com banda passante de 0.2fs a 0.3fs, a partir de um filtro passa-baixas com fc=0.3fs.
8. Crie um filtro rejeita-faixa, com banda de rejeição de de 0.2fs a 0.3fs, a partir de um filtro passa-baixas com fc=0.2 fs.