Escolar Documentos
Profissional Documentos
Cultura Documentos
Atividade 01
A seguinte sequência de comandos pode ser usada para gerar um tom em 700 Hz que dura 2s.
%Atividade1.m
clear all; close all;
Fs = 16000; %Frequência de amostragem
Duracao = 2; %Duração em segundos
tempotom = 0:1/Fs:Duracao; %Vetor de tempos
freqtom = 700;
xtom = cos(2*pi*freqtom*(0:Duracao*Fs)/Fs);
sound(xtom,Fs);
Atividade 02
Seja g ( t ) um sinal de potência e
g ( t ), t ≤ T
gT ( t ) = 2 .
0, caso contrário
GT ( f )
2
S g ( f ) ≜ lim
T →+∞ T
em que GT ( f ) é a transformada de Fourier de gT ( t ) . Nas aulas de teoria, mostraremos que
+∞
Pg = ∫ S g ( f )df
−∞
A PSD de um sinal pode ser obtida no Matlab® usando a função psd. A seguinte sequência
de comandos calcula a PSD do tom gerado na Atividade 1.
% Atividade 2
h = spectrum.welch; % Cria um estimador espectral de Welch.
HPSDtom = psd(h,xtom,'Fs',Fs,'NFFT', 4048);% Calcula a PSD
figure(1);
plot(HPSDtom.Frequencies,HPSDtom.Data/max(HPSDtom.Data));
1
EN2611– Aula 03 – Prof. Marcio Eisencraft – junho 2012
Atividade 03
O programa a seguir repete as Atividades 1 e 2 para o caso de um pulso retangular de 0.5 ms.
Lembre-se que
t
Π ⇔ τ sinc ( π f τ )
τ
Atividade 04
Um filtro real muito usado em aproximações de filtros passa-baixas ideais é o filtro de But-
terworth. O seguinte programa obtém os coeficientes e gera a resposta em frequência de um
filtro passa-baixas de Butterworth de ordem 30 e frequência de corte 2 kHz.
% Atividade 4 - Filtro de Butterworth
clear all; close all;
N = 30; %Ordem do Filtro
Wn = 2*pi*2000; %rad/s - frequência de corte
[Bbut,Abut] = butter(N,Wn,'s'); %Filtro de Butterworth
%Resposta em frequência
%Faixa de frequências em que H(j\omega) é calculada
Fs = 16000; %Frequência de amostragem
w = linspace(0,2*pi*Fs/2,1000);
f = w/(2*pi);
[Hbut] = freqs(Bbut,Abut,w);
2
EN2611– Aula 03 – Prof. Marcio Eisencraft – junho 2012
plot(f,abs(Hbut));
xlabel('f (Hz)'); ylabel ('|H(f)|');
grid;
Atividade 05
Podemos filtrar os tons gerados na Atividade 01 usando os filtros da Atividade 04. Veja a
sequência de comandos abaixo.
%Atividade 05- filtragem tom
close all;
sysbut = tf(Bbut,Abut);
tomfilt = lsim(sysbut,xtom,tempotom)';
HPSDtomfilt = psd(h,tomfilt,'Fs',Fs);
figure (1);
plot(f,abs(Hbut),HPSDtom.Frequencies,HPSDtom.Data/max(HPSDtom.Data),HPSDtom
filt.Frequencies,HPSDtomfilt.Data/max(HPSDtom.Data))
grid;
legend ('H(f)', 'x(t) - tom original', 'y(t) - tom filtrado');
xlabel('f (Hz)');
ylabel('PSD normalizaza');
Rode o programa e comente os resultados obtidos. Mude a frequência do tom gerado para
frequências acima da frequência de corte do filtro. O que ocorre?
Atividade 06
Na seguinte sequência de comandos, usamos o filtro da Atividade 04 para filtrar o pulso da
Atividade 03. Rode esta sequência e verifique o que ocorre com o pulso filtrado no domínio
do tempo e da frequência.
% Atividade 06 - filtragem pulso
sysbut = tf(Bbut,Abut);
pulsofilt = lsim(sysbut,pulso,tpulso)';
HPSDpulsofilt = psd(h,pulsofilt,'Fs',Fs);
close all;
figure(1);
subplot(211); plot(tpulso,pulso,tpulso,pulsofilt); axis([0 0.01 -0.5 1.1]);
grid;
xlabel('t(s)');
ylabel('x(t), y(t)');
legend('x(t)', 'y(t)');
%freq
subplot(212);
plot(f,abs(Hbut),HPSDpulso.Frequencies,HPSDpulso.Data/max(HPSDpulso.Data),H
PSDpulsofilt.Frequencies,HPSDpulsofilt.Data/max(HPSDpulsofilt.Data))
grid;
xlabel('f(Hz)');
ylabel('PSD nromalizada');
legend('H(f)', 'PSD de x(t)', 'PSD de y(t)');
Rode novamente o programa, mas agora para filtros com frequência de corte 500Hz e
4000Hz. Comente os resultados obtidos. Tente usar também filtros passa-altas.