Buscar

Filtragem do ruído de 800Hz no Matlab

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

%Rodrigo Borges de Oliveira
%Eliminar o ruído de 800Hz da soma de 200Hz com 800Hz
clc;
close all;
clear all;
fs=3200; %frequência de amostragem. fs = 800*4 = 3200
Ts= 1/fs; %Período
t = [0:Ts:3]; %Tempo de 0 a 3, tendo o período como incremento
% Senoide de 200Hz
f1 = 200; %frequência de 200Hz
s1 = 2*sin(2*pi*f1*t);
subplot(421);
plot(t,s1);
title('Senoide de 200Hz no domínio do tempo')
ylabel('Amplitude')
xlabel('Tempo (s)');
% Espectro de frequência 200Hz
subplot(422);
my_fft(s1,fs);
title('Senoide de 200Hz no domínio da frequência');
% Senoide de 800Hz
f2 = 800; %frequência de 800Hz 
s2 = 4*sin(2*pi*f2*t);
subplot(423);
plot(t,s2);
title('Senoide de 800Hz no domínio do tempo')
ylabel('Amplitude')
xlabel('Tempo (s)');
% Espectro de frequência 800Hz
subplot(424);
my_fft(s2,fs);
title('Senoide de 800Hz no domínio da frequência');
% somando s1 e s2
s = s1+s2;
subplot(425);
plot(t,s);
title('Soma de 200Hz e 800Hz no domínio do tempo')
ylabel('Amplitude')
xlabel('Tempo (s)');
% Espectro de frequência soma de 200Hz e 800Hz
subplot(426);
my_fft(s,fs);
title('Soma de 200Hz e 800Hz no domínio da frequência');
% Filtro passa-baixa FIR
% frequência de amostragem (fs) de 3200Hz
fpass = 250;
fstop = 750;
wp = (fpass/(fs/2))*pi;
ws = (fstop/(fs/2))*pi;
wt = ws - wp; % frequência de transição
wc = (wp + ws)/2; % frequência de corte intermediária
M = ceil((6.2*pi/wt)) + 1;
hd = ideal_lp(wc,M); % função sinc passa-baixa ideal
%n = [0:M-1];
%w_han = 0.5-0.5*cos(2*pi*n/M-1);
w_han = hann(M)'; % calcula a janela de hamming
h = hd.*w_han; % multiplica os vetores no tempo
%figure;
%subplot();
%freqz(h); % mostra a magnitude e a fase do filtro;
sinal_filtrado = conv(h, s);
subplot(427);
plot(sinal_filtrado); % sinal filtrado no domínio do tempo
title('Sinal filtrado no domínio do tempo')
ylabel('Amplitude')
xlabel('Tempo (s)');
subplot(428);
my_fft(sinal_filtrado, fs); % sinal filtrado no domínio da frequência
title('Sinal filtrado no domínio da frequência');

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais