Aula 4 2015
2 pág.

Aula 4 2015

Pré-visualização1 página
Aula 04 \u2013 Análise Espectral de Sinais e Ruído 
 
O Matlab é muito útil para a análise espectral de sinais, como já foi visto nas atividades 
anteriores. Neste momento, é interessante observar como se comporta um determinado sinal 
na presença de ruído e como este ruído pode ser retirado através de operações no domínio 
da frequência. Primeiramente, considere o caso descrito pelo script a seguir. 
 
clear all; 
% variáveis auxiliares 
p = 0.05; % percentagem da largura do filtro 
f1 = 450; % frequencia do sinal livre de ruído 
f2 = f1/2; % frequencia do sinal com ruído 
T1 = 1/f1; % perído do sinal com ruído 
Fs = 10000; % frequencia de amostragem 
T = 1/Fs; % período de amostragem 
N = 1024; % Número de amostras 
t = (0:N-1)*T; % vetor de tempo 
x1 = sin(2*pi*f1*t); % sinal sem ruído 
x2 = sin(2*pi*f2*t) + 0.5*randn(size(t)); % sinal com ruído 
x3 = sin(2*pi*f2*t); % sinal original, livre de ruído 
% transformada de fourier de N pontos 
y1 = fft(x1,N)/N; 
y2 = fft(x2,N)/N; 
% frequência parametrizada 
f = ([-N/2:N/2-1]/N)*Fs; 
y1a = fftshift(abs(y1)); 
y2a = fftshift(abs(y2)); 
% plot sinal no tempo 
figure(1); 
plot(t,x1,'r'); 
hold on; 
ylabel('Amplitude'), grid on; 
xlabel('Tempo (s)'); 
plot(t,x2,'b'); 
legend('x1','x2'); 
axis([0 5*T1 -2 2]); 
% plot espectro de frequência 
figure(2); 
plot(f,y1a,'r'); 
hold on; 
ylabel('Amplitude'), grid on; 
xlabel('Frequência [Hz]'); 
plot(f,y2a,'b'); 
legend('X1','X2'); 
axis([-2*f1 2*f1 0 1]); 
 
 
Observe que na figura 1 será plotado o gráfico de x1, que é um sinal livre de ruído e o sinal 
x2, que é um sinal na presença de ruído. Observe que foi empregada a função randn. Use 
o help do Matlab para saber mais a respeito desta função. Além disso, verifique também o 
funcionamento da função fftshift. No material complementar há um texto sobre a 
utilização do Matlab para a análise espectral, onde o funcionamento da função fft é 
descrito minuciosamente. 
A partir do espectro de frequências é possível analisar muitas situações que não são 
possíveis no domínio do tempo. A seguir, é dado o complemento do script anterior, onde 
volta-se ao domínio do tempo a partir dos dados no domínio da frequência, usando a função 
inversa ifftshift e ifft. 
 
 
 
% trasnsformada inversa de fourier 
xx1 = ifft(y1*N,N); 
xx2 = ifft(y2*N,N); 
% plot sinal no tempo, a partir do espectro 
figure(3); 
plot(t,xx1,'r'); 
hold on; 
ylabel('Amplitude'), grid on; 
xlabel('Tempo (s)'); 
plot(t,xx2,'b'); 
legend('x1*','x2*'); 
axis([0 5*T1 -2 2]); 
% definição espectral do filtro 
uf = f2 + f2*p; 
df = f2 - f2*p; 
fru = find(df < f & f < uf); 
frd = find(-df > f & f > -uf); 
fr = [frd fru]; 
yft = zeros(1,length(y2)); 
yft(fr) = 1; 
yy = fftshift(y2).*yft; 
yya = abs(yy); 
% plot filtro e sinal a ser filtrado 
figure(4); 
plot(f,yft,'r'); 
hold on; 
ylabel('Amplitude'), grid on; 
xlabel('Frequência [Hz]'); 
plot(f,yya,'b'); 
legend('Filtro','Sinal Filtrado'); 
axis([-2*f1 2*f1 0 1.5]); 
% transformada inversa de fourier do sinal filtrado 
xf = ifft(ifftshift(yft)*N,N); 
xx = ifft(ifftshift(yy)*N,N); 
 
A idéia é que a partir dos dados da análise espectral do sinal com ruído seja possível 
recuperar o sinal sem a presença de ruído. Para que isso seja possível, descreve-se um filtro 
com banda de passagem em torno de p% da frequência fundamental do sinal com ruído f2. 
Explique o que está sendo feito no trecho de código identificado como definição espectral 
do filtro. Comente cada uma das linhas com o máximo de detalhes possível. Comente os 
resultados que serão apresentados na Figura 4, explicando o significado de cada curva. 
Complementarmente, a Figura 5 dada a seguir apresenta o sinal filtrado no domínio do 
tempo. Explique o que foi feito para a obtenção desta figura, comentando a utilização das 
funções ifft e ifftshift. 
 
% sinal recuperado 
figure(5) 
plot(t,xx,'b'); 
hold on; 
ylabel('Amplitude'), grid on; 
xlabel('Tempo (s)'); 
plot(t,x2,'g'); 
legend('Sinal Filtrado','Sinal Ruído'); 
axis([0 5*T1 -2 2]); 
 
 
Comente os resultados, dando explicações para os resultados obtidos. Compreenda todos os 
passos envolvidos na tarefa de filtragem e plote o gráfico do filtro no domínio do tempo, 
juntamente com o gráfico do sinal recuperado (filtrado). Faça comentários a respeito da 
amplitude da resposta do filtro e se sua fase. Por que a fase do filtro e do sinal filtrado são 
diferentes?