Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
MANAUS
Agosto - 2017
Aula de Laboratrio 3: Aquisio de Sinais
MANAUS
2017
RESUMO
Este trabalho se refere aquisio de sinais com faixa de amostragem. Os sinais
aquisitados foram gerados em uma faixa de frequncia que engloba a frequncia de
amostragem com o intuito de verificar a importncia do teorema de Nyquist de modo a
preservar a informao contida na forma do sinal original obtida pelo gerador de funes,
para a aquisio foi utilizada uma placa NI 6212 e no processo de aquisio de sinais
utilizou-se um filtro mdia mvel. Foram aquisitados os dados do sinal de entrada para as
frequncias de 35Hz, 350Hz, 1kHz, 3,5kHz, 7kHz, 10kHz e 35kHz, simultaneamente, no
osciloscpio e no programa NIMAX. Na finalizao deste experimento foi analisado que
quanto menor a frequncia de entrada do gerador de funes em comparao a taxa de
amostragem de 3,5kHz analisada pelo DAQ que foi especificada no roteiro deste relatrio,
maior ser a fidelidade do sistema.
LISTA DE TABELAS
Tabela 1 Dados das medies feitas para o filtro ativo passa-baixa. .................................12
Tabela 2 Erro das amplitudes do osciloscpio e do DAQ. .................................................17
SUMARIO
Introduo: ................................................................................................................. 6
Objetivos: ................................................................................................................... 8
Referncias: ............................................................................................................. 18
Anexo ....................................................................................................................... 19
Introduo:
De acordo com Cetinkunt (2015), para garantir que o sinal lido contenha toda a
informao do sinal original preciso obedecer ao Teorema da amostragem de Nyquist,
pois a taxa de amostragem a frequncia na qual o conversor A/D converte a forma de
onda da entrada analgica em dados digitais. Onde de acordo com Amaral (2016), o
7
Objetivos:
O intuito deste trabalho consiste projetar um filtro ativo passa-baixa com o objetivo de
verificar o comportamento dos sinais de entrada e sada quando postos em conjunto com
amplificadores operacionais de modo a comparar os dados da prtica com os resultados
analticos obtidos atravs do Matlab.
Procedimentos Experimentais:
3.1. Equipamentos:
Para a anlise dos sinais de entrada e para a alimentao dos circuitos projetados
foram utilizados os seguintes equipamentos:
3.2. Metodologia:
1 M 1
y (i ) x(i j)
M j 0 (1)
Frequncia de
Grau do filtro
entrada (Hz)
35 20
350 5
1000 5
3500 2
7000 2
10000 2
35000 2
Resultados e discusses:
Referncias:
Amaral S. Conceitos Bsicos de Aquisio de Dados. Joinville.SC. 2016. Disponvel em:
http://www.joinville.udesc.br/portal/professores/silas/materiais/Conceitos_Basicos_de_Aq
uisicao_de_Dados.pdf>. Acesso em: 20 de Agosto de 2017.
Cetinkunt S. Mechatronics with Experiments. Second Edition. University of Illinois,
Chicago. USA. 2015. Disponvel em: < https://goo.gl/qsfMSk>. Acesso em: 20 de Agosto
de 2017.
National Instruments. Aquisio de dados DAQ. Disponvel em:< http://www.ni.com/data-
acquisition/what-is/pt/>. Acesso em: 20 de Agosto de 2017.
19
Anexo
6.1. Anexo A Linha de comandos da funo mdia-mvel
% Funo para clcular a mdia mvel
% Calcula a Mdia mvel do sinal
% Criador: lvaro de Azevedo Peres
% Adaptado e melhorado de: Wagner Rambo do Canal WR Kits.
% Fonte: https://www.youtube.com/watch?v=GBHZfOVcwro
%
% Funo media_movel(sinal,n)
%
% sinal - varivel que recebe o sinal a ser filtrado
% n - grau do filtro
%
% O filtro abre mo de um atraso na funo em troca de preciso de modo que
% o grau n determina tal medida.
function filtro = media_movel(sinal,n)
% filtro(1) = sinal(1);
% filtro(2) = (sinal(1)+sinal(2))/2;
% filtro(3) = (sinal(1)+sinal(2)+sinal(3))/3;
% filtro(1) = sinal(1);
% filtro(2) = (filtro(1)+sinal(2))/2;
% filtro(3) = (2*filtro(2)+sinal(3))/3;
% .
% .
% .
% filtro(i) = ((i-1)*filtro(i-1)+sinal(i))/i
filtro(1) = sinal(1);
for i = 2:n
filtro(i) = ((i-1)*filtro(i-1)+sinal(i))/i;
end
for i = (n+1):length(sinal)
% n=2 filtro(i) = (sinal(i)+sinal(i-1))/2
% n=3 filtro(i) = (sinal(i)+sinal(i-1)+sinal(i-2))/3
% n=4 filtro(i) = (sinal(i)+sinal(i-1)+sinal(i-2)+sinal(i-3))/4
% ...
% n=x filtro(i) = (sinal(i)+sinal(i-1)+...+sinal(i-n-1))/(n);
soma = 0;
for x = 0:(n-1)
soma = sinal(i-x)+soma;
end
filtro(i) = soma/n;
% filtro(i) = (sinal(i)+sinal(i-1)+sinal(i-2)+sinal(i-
3))/4;%(sinal(i)+sinal(i-1)+sinal(i-2)+sinal(i-3)+sinal(i-4)+sinal(i-
5)+sinal(i-6)+sinal(i-7)+sinal(i-8)+sinal(i-9))/10;
end
end
20
%% Osciloscopio 35Hz
figure(1)
data = load('35Hz_Osc.csv');
osctime35hz = data(:,1);
oscamplitude35hz = data(:,2);
osctime35hz = osctime35hz - osctime35hz(1);
sinal_filtrado35hz = media_movel(oscamplitude35hz,20);
plot(osctime35hz,oscamplitude35hz,'b',osctime35hz,sinal_filtrado35hz,'r-
.');
title('Sinal do Osciloscpio - Frequncia 35 Hz');
legend('Sinal Direto do Osciloscpio','Sinal filtrado por Mdia
Mvel','Location','Best');
axis([0 0.04 -1.7 1.7]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
set(gcf,'Position',[2000 2000 2000 2000]);
set(gca,'FontSize',18);
grid on
saveas(gcf,'Sinal do Osciloscpio x Filtro - Frequncia 35 Hz.bmp');
%% DAQ 35Hz
figure(2)
data = load('35Hz_DAQ.csv');
daqtime35hz = data(1:1000,1);
daqamplitude35hz = data(1:1000,2);
plot(daqtime35hz,daqamplitude35hz);
title('Sinal do DAQ');
legend('Sinal do DAQ','Location','BestOutside');
axis([0 daqtime35hz(1000) -1.7 1.7]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
set(gcf,'Position',[2000 2000 2000 2000]);
set(gca,'FontSize',18);
grid on
saveas(gcf,'Sinal DAQ - 35 Hz.bmp');
%% Comparao 35Hz
figure(3)
plot(osctime35hz,sinal_filtrado35hz,'b',daqtime35hz,daqamplitude35hz,'r-
.');
axis([0 daqtime35hz(1000) -1.5 1.5]);
title('Sinal do DAQ x Sinal do Oscilocpio');
legend('Sinal do Oscilocpio','Sinal do DAQ','Location','Best');
axis([0 0.04 -1.7 1.7]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
set(gcf,'Position',[2000 2000 2000 2000]);
set(gca,'FontSize',18);
grid on
saveas(gcf,'Sinal DAQ x Osciloscpio - 35 Hz.bmp');
close all;
21
%% Osciloscopio 350Hz
figure(1)
data = load('350Hz_Osc.csv');
osctime350hz = data(:,1);
oscamplitude350hz = data(:,2);
osctime350hz = osctime350hz - osctime350hz(1);
sinal_filtrado350hz = media_movel(oscamplitude350hz,5);
plot(osctime350hz,oscamplitude350hz,'b',osctime350hz,sinal_filtrado350hz,'r
-.');
title('Sinal do Osciloscpio - Frequncia 350 Hz');
legend('Sinal Direto do Osciloscpio','Sinal filtrado por Mdia
Mvel','Location','Best');
axis([0 0.005 -1.7 1.7]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
set(gcf,'Position',[2000 2000 2000 2000]);
set(gca,'FontSize',18);
grid on
saveas(gcf,'Sinal do Osciloscpio x Filtro - Frequncia 350 Hz.bmp');
%% DAQ 350Hz
figure(2)
data = load('350Hz_DAQ.csv');
daqtime350hz = data(1:1000,1);
daqamplitude350hz = data(1:1000,2);
plot(daqtime350hz,daqamplitude350hz);
title('Sinal do DAQ');
legend('Sinal do DAQ','Location','BestOutside');
axis([0 daqtime350hz(1000) -1.7 1.7]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
set(gcf,'Position',[2000 2000 2000 2000]);
set(gca,'FontSize',18);
grid on
saveas(gcf,'Sinal DAQ - 350 Hz.bmp');
%% Comparao 350Hz
figure(3)
plot(osctime350hz,sinal_filtrado350hz,'b',daqtime350hz,daqamplitude350hz,'r
-.');
axis([0 daqtime350hz(1000) -1.5 1.5]);
title('Sinal do DAQ x Sinal do Oscilocpio');
legend('Sinal do Oscilocpio','Sinal do DAQ','Location','Best');
axis([0 0.005 -1.7 1.7]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
set(gcf,'Position',[2000 2000 2000 2000]);
set(gca,'FontSize',18);
grid on
saveas(gcf,'Sinal DAQ x Osciloscpio - 350 Hz.bmp');
close all;
22
%% Osciloscopio 1kHz
figure(1)
data = load('1kHz_Osc.csv');
osctime1khz = data(:,1);
oscamplitude1khz = data(:,2);
osctime1khz = osctime1khz - osctime1khz(1);
sinal_filtrado1khz = media_movel(oscamplitude1khz,5);
plot(osctime1khz,oscamplitude1khz,'b',osctime1khz,sinal_filtrado1khz,'r-
.');
title('Sinal do Osciloscpio - Frequncia 1k Hz');
legend('Sinal Direto do Osciloscpio','Sinal filtrado por Mdia
Mvel','Location','North');
axis([0 1.5e-3 -1.7 1.7]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
set(gcf,'Position',[2000 2000 2000 2000]);
set(gca,'FontSize',18);
grid on
saveas(gcf,'Sinal do Osciloscpio x Filtro - Frequncia 1k Hz.bmp');
%% DAQ 1kHz
figure(2)
data = load('1kHz_DAQ.csv');
daqtime1khz = data(1:1000,1);
daqamplitude1khz = data(1:1000,2);
plot(daqtime1khz,daqamplitude1khz);
title('Sinal do DAQ');
legend('Sinal do DAQ','Location','BestOutside');
axis([0 daqtime1khz(1000) -1.7 1.7]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
set(gcf,'Position',[2000 2000 2000 2000]);
set(gca,'FontSize',18);
grid on
saveas(gcf,'Sinal DAQ - 1k Hz.bmp');
%% Comparao 1kHz
figure(3)
plot(osctime1khz,sinal_filtrado1khz,'b',daqtime1khz,daqamplitude1khz,'r-
.');
axis([0 daqtime1khz(1000) -1.5 1.5]);
title('Sinal do DAQ x Sinal do Oscilocpio');
legend('Sinal do Oscilocpio','Sinal do DAQ','Location','BestOutside');
axis([0 6e-3 -1.7 1.7]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
set(gcf,'Position',[2000 2000 2000 2000]);
set(gca,'FontSize',18);
grid on
saveas(gcf,'Sinal DAQ x Osciloscpio - 1k Hz.bmp');
close all;
23
%% Osciloscopio 3.5kHz
figure(1)
data = load('3.5kHz_Osc.csv');
osctime3_5khz = data(:,1);
oscamplitude3_5khz = data(:,2);
osctime3_5khz = osctime3_5khz - osctime3_5khz(1);
sinal_filtrado3_5khz = media_movel(oscamplitude3_5khz,2);
plot(osctime3_5khz,oscamplitude3_5khz,'b',osctime3_5khz,sinal_filtrado3_5kh
z,'r-.');
title('Sinal do Osciloscpio - Frequncia 3_5k Hz');
legend('Sinal Direto do Osciloscpio','Sinal filtrado por Mdia
Mvel','Location','Best');
axis([0 0.005 -1.7 1.7]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
set(gcf,'Position',[2000 2000 2000 2000]);
set(gca,'FontSize',18);
grid on
saveas(gcf,'Sinal do Osciloscpio x Filtro - Frequncia 3.5k Hz.bmp');
%% DAQ 3.5kHz
figure(2)
data = load('3.5kHz_DAQ.csv');
daqtime3_5khz = data(1:1000,1);
daqamplitude3_5khz = data(1:1000,2);
plot(daqtime3_5khz,daqamplitude3_5khz);
title('Sinal do DAQ');
legend('Sinal do DAQ','Location','BestOutside');
axis([0 0.04 -1.7 1.7]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
set(gcf,'Position',[2000 2000 2000 2000]);
set(gca,'FontSize',18);
grid on
saveas(gcf,'Sinal DAQ - 3.5k Hz.bmp');
%% Comparao 3.5kHz
figure(3)
plot(osctime3_5khz,sinal_filtrado3_5khz,'b',daqtime3_5khz,daqamplitude3_5kh
z,'r-.');
axis([0 daqtime3_5khz(1000) -1.5 1.5]);
title('Sinal do DAQ x Sinal do Oscilocpio');
legend('Sinal do Oscilocpio','Sinal do DAQ','Location','Best');
axis([0 0.005 -1.7 1.7]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
set(gcf,'Position',[2000 2000 2000 2000]);
set(gca,'FontSize',18);
grid on
saveas(gcf,'Sinal DAQ x Osciloscpio - 3.5k Hz.bmp');
close all;
24
%% Osciloscopio 7kHz
figure(1)
data = load('7kHz_Osc.csv');
osctime7khz = data(:,1);
oscamplitude7khz = data(:,2);
osctime7khz = osctime7khz - osctime7khz(1);
sinal_filtrado7khz = media_movel(oscamplitude7khz,20);
plot(osctime7khz,oscamplitude7khz,'b',osctime7khz,sinal_filtrado7khz,'r-
.');
title('Sinal do Osciloscpio - Frequncia 7k Hz');
legend('Sinal Direto do Osciloscpio','Sinal filtrado por Mdia
Mvel','Location','Best');
axis([0 0.005 -1.7 1.7]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
set(gcf,'Position',[2000 2000 2000 2000]);
set(gca,'FontSize',18);
grid on
saveas(gcf,'Sinal do Osciloscpio x Filtro - Frequncia 7k Hz.bmp');
%% DAQ 7kHz
figure(2)
data = load('7kHz_DAQ.csv');
daqtime7khz = data(1:1000,1);
daqamplitude7khz = data(1:1000,2);
plot(daqtime7khz,daqamplitude7khz);
title('Sinal do DAQ');
legend('Sinal do DAQ','Location','BestOutside');
axis([0 0.005 -1.7 1.7]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
set(gcf,'Position',[2000 2000 2000 2000]);
set(gca,'FontSize',18);
grid on
saveas(gcf,'Sinal DAQ - 7k Hz.bmp');
%% Comparao 7kHz
figure(3)
plot(osctime7khz,sinal_filtrado7khz,'b',daqtime7khz,daqamplitude7khz,'r-
.');
axis([0 daqtime7khz(1000) -1.5 1.5]);
title('Sinal do DAQ x Sinal do Oscilocpio');
legend('Sinal do Oscilocpio','Sinal do DAQ','Location','Best');
axis([0 0.005 -1.7 1.7]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
set(gcf,'Position',[2000 2000 2000 2000]);
set(gca,'FontSize',18);
grid on
saveas(gcf,'Sinal DAQ x Osciloscpio - 7k Hz.bmp');
close all;
25
%% Osciloscopio 10kHz
figure(1)
data = load('10kHz_Osc.csv');
osctime10khz = data(:,1);
oscamplitude10khz = data(:,2);
osctime10khz = osctime10khz - osctime10khz(1);
sinal_filtrado10khz = media_movel(oscamplitude10khz,20);
plot(osctime10khz,oscamplitude10khz,'b',osctime10khz,sinal_filtrado10khz,'r
-.');
title('Sinal do Osciloscpio - Frequncia 10k Hz');
legend('Sinal Direto do Osciloscpio','Sinal filtrado por Mdia
Mvel','Location','Best');
axis([0 3e-3 -0.06 0.06]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
set(gcf,'Position',[2000 2000 2000 2000]);
set(gca,'FontSize',18);
grid on
saveas(gcf,'Sinal do Osciloscpio x Filtro - Frequncia 10k Hz.bmp');
%% DAQ 10kHz
figure(2)
data = load('10kHz_DAQ.csv');
daqtime10khz = data(1:1000,1);
daqamplitude10khz = data(1:1000,2);
plot(daqtime10khz,daqamplitude10khz);
title('Sinal do DAQ');
legend('Sinal do DAQ','Location','BestOutside');
axis([0 3e-3 -0.06 0.06]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
set(gcf,'Position',[2000 2000 2000 2000]);
set(gca,'FontSize',18);
grid on
saveas(gcf,'Sinal DAQ - 10k Hz.bmp');
%% Comparao 10kHz
figure(3)
plot(osctime10khz,sinal_filtrado10khz,'b',daqtime10khz,daqamplitude10khz,'r
-.');
title('Sinal do DAQ x Sinal do Oscilocpio');
legend('Sinal do Oscilocpio','Sinal do DAQ','Location','Best');
axis([0 1.5e-3 -1.5 1.5]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
set(gcf,'Position',[2000 2000 2000 2000]);
set(gca,'FontSize',18);
grid on
saveas(gcf,'Sinal DAQ x Osciloscpio - 10k Hz.bmp');
close all;
26
%% Osciloscopio 35kHz
figure(1)
data = load('35kHz_Osc.csv');
osctime35khz = data(:,1);
oscamplitude35khz = data(:,2);
osctime35khz = osctime35khz - osctime35khz(1);
sinal_filtrado35khz = media_movel(oscamplitude35khz,20);
plot(osctime35khz,oscamplitude35khz,'b',osctime35khz,sinal_filtrado35khz,'r
-.');
title('Sinal do Osciloscpio - Frequncia 35k Hz');
legend('Sinal Direto do Osciloscpio','Sinal filtrado por Mdia
Mvel','Location','Best');
axis([0 3e-3 -0.06 0.06]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
set(gcf,'Position',[2000 2000 2000 2000]);
set(gca,'FontSize',18);
grid on
saveas(gcf,'Sinal do Osciloscpio x Filtro - Frequncia 35k Hz.bmp');
%% DAQ 35kHz
figure(2)
data = load('35kHz_DAQ.csv');
daqtime35khz = data(1:1000,1);
daqamplitude35khz = data(1:1000,2);
plot(daqtime35khz,daqamplitude35khz);
title('Sinal do DAQ');
legend('Sinal do DAQ','Location','BestOutside');
axis([0 3e-3 -0.06 0.06]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
set(gcf,'Position',[2000 2000 2000 2000]);
set(gca,'FontSize',18);
grid on
saveas(gcf,'Sinal DAQ - 35k Hz.bmp');
%% Comparao 35kHz
figure(3)
plot(osctime35khz,sinal_filtrado35khz,'b',daqtime35khz,daqamplitude35khz,'r
-.');
title('Sinal do DAQ x Sinal do Oscilocpio');
legend('Sinal do Oscilocpio','Sinal do DAQ','Location','Best');
axis([0 3e-3 -1.5 1.5]);
xlabel('Tempo [s]');
ylabel('Amplitude [V]');
set(gcf,'Position',[2000 2000 2000 2000]);
set(gca,'FontSize',18);
grid on
saveas(gcf,'Sinal DAQ x Osciloscpio - 35k Hz.bmp');
close all;