Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 04 – 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?
Compartilhar