Slides 9 erm
-
Upload
chico-fambrini -
Category
Health & Medicine
-
view
181 -
download
3
Transcript of Slides 9 erm
Desenvolvimento e Validação de um Conversor Analógico/Digital para Aquisição e
Registros de sinais em Matrizes Multi Eletrodo
9o. Encontro de Registros Multieletrodos
Julho de 2013
Francisco Fambrini – Faccamp
Orientador: prof. Dr. José Hiroki Saito
Soquete para MEA60, versão final• Foi desenhado, prototipado e validado soquete para MEA60 (Novembro
de 2012):
Trabalho anterior: Simulador MEA-SG• Desenvolvido e testado um simulador eletrônico, microcontrolado, com o
mesmo padrão de pinos da MEA-60 (setembro de 2012), MEA-SG:
Trabalho anterior: Amplificador para Matriz Multi-eletrodo
• Desenvolvido e implementado amplificador para sinais elétricos em matriz multi-eletrodo (dezembro de 2012):
Conversor Analógico/Digital (DAQ)• Os sinais elétricos presentes nos terminais do soquete da matriz multi-eletrodo
são analógicos, de baixa amplitude (entre 5 uV e 200 mV);• Para serem registrados no computador PC esses sinais precisam ser digitalizados,
isto é, transformados em sinais que tem nível lógicos 0 ou 1 apenas;
Parâmetros importantes do ADC1-Resolução
2-Taxa de Amostragem (Sample Rate)
3-Faixa dinâmica
4 – Erro de Linearidade
Teorema da Amostragem de Nyquist–Shannon• Um Sinal ou função é limitado em banda se não contém energia em
frequências maiores do que o limite de banda B.
• O teorema da amostragem assegura que as amostras discretas uniformemente espaçadas são uma representação completa do sinal, se sua largura de banda é menos do que a metade da taxa de amostragem.
• A condição suficiente para uma exata reconstrução a partir das amostras em uma taxa de amostragem uniforme (em amostras por unidade de tempo) é que a Frequência de Amostragem seja maior do que duas vezes o limite de banca B.
Nosso protótipo preliminar• Proposta: utilizar o conversor AD do microcontrolador PIC18F4620: 12
bits, sample rate maximo de 10 KHz, até 12 canais multiplexados, dos quais são testados apenas 2 canais por enquanto.
Firmware gravado no microcontrolador
set_adc_channel (0); //canal 0
delay_us(20);
M1 = read_adc(); // faz a leitura do CH0
set_adc_channel (1); // canal 1
delay_us(20);
M2 = read_adc(); // faz a leitura do canal 1
tecla = getch( ); //espera o computador pedir o dado
if (tecla=='a') printf ("P,%Lu,0,%Lu,0\n",M,M2 ); //envia
Filtros: Analógicos e Digitais• Filtros analógicos são construídos utilizando-se hardware (indutores,
resistores, capacitores e amplificadores operacionais). Filtros Digitais podem ser implementados apenas por software ou em FPGAs.
Filtro passa-baixa analógico remove o ruído de alta frequência presente no sinal antes do conversor analógico-digital (A / D). Desta maneira, o código de saída digital obtido na conversão não contém harmônicas indesejáveis (alias). Em contraste, a um filtro digital pode ser utilizado para reduzir o ruído em banda de freqüência, usando técnicas de cálculos de médias.
Usando scripts do Matlab% --------------- SCRIPT 1N=1000; s = serial ('COM5','BaudRate',460800,'DataBits',8,'Parity','none','FlowControl','none');
fopen(s); seq = 1:N; y = zeros(1,N); % Tamanho fixo é mais rápido. for i=1:N fprintf( s, '%s', 'a'); y(i) = str2num( fscanf(s,'%s') ); endfclose(s); plot(seq,y); % função lenta executada fora do loop. xlabel('registro');ylabel('Tensao (mV)');title('Sinal eletrico MEA60 - Fambrini & Saito DAQ ');b:
Matlab – script 2• Esse script apresenta uma segunda figura que mostra o conteúdo
espectral (no domínio da frequência) do sinal amostrado pelo DAC, aplicando FFT (Fast Fourier Transformer). O trecho abaixo aplica o FFT sobre as amostras e plota a figura:
figure(2) L=length(y); NFFT = 2^nextpow2(L); Y = fft(y,NFFT)/L; f = Fs/2*linspace(0,1,NFFT/2+1); plot(f,2*abs(Y(1:NFFT/2+1))) title('Espectro de Amplitude em Frequencia Unilateral de y(t)') xlabel('Frequencia (Hz)') ylabel('|Y(f)|')
Plotando 2 canais simultaneamente• Um terceiro script escrito em Matlab é capaz de plotar 2 canais do conversor
simultaneamente, em baixa velocidade, video no Youtube: http://www.youtube.com/watch?v=FYGL5N2hOxE&feature=youtu.be
Filtrando artefatos O principal ruído a ser filtrado é o de frequência igual a 60 Hz, proveniente da rede
elétrica. Esse ruído aparece mesmo quando se alimenta o sistema com baterias, pois o sistema capta a EMI (Interferência Eletromagnética) dos fios próximos ligados às tomadas. Um filtro muito usado, por hardware é o chamado Filtro Notch. Esse tipo de filtro possui uma curva típica como a mostrada abaixo:
Filtro Notch por softwareÉ possível economizar hardware, implementando-se um filtro notch por
software de modo muito simples no Matlab. O trecho de código abaixo implementa-o no Matlab e é usado no script-3 com a finalidade de melhorar a filtragem de 60 Hz. A variável que armazena os valores a serem plotados no eixo y é ‘m’. A e B determinam a largura de banda do filtro.
% Filtra m com 60 Hz - notch filter
Wo = 60/(Fs/2); BW = Wo/35;
[b,a] = iirnotch(Wo,BW);
y = filter(b,a,m);
Filtros digitais recursivos, ou do tipo IIR (Infinit Impulse Response), são aqueles que possuem componentes de realimentação, produzindo um efeito mais intenso na curva de atuação do filtro, e com isto, reduzindo a ordem do filtro.
Filtro IIR no Matlab
Implementando um filtro passa-baixas IIR no Matlab:
Equação a diferenças do filtro:
y(n)= K*x(n) +y(n-1)*(1-K)
com K = 1/ 2^12 ( 12 bits)
Código no Matlab, simula um sinal senoidal com ruído para testar os filtros por software
K=1/2^12b = Ka = [1 -(1-K)]Fs=200; % Frequencia de AmostragemTs=1/Fs;Nx=5000; % numero de AmostrasnT=Ts*(0:Nx-1); fin=10; % frequencia do Sinalrandn('state',sum(100*clock)); %gerando sinal aleatorio com ruido noise=randn(1,Nx); % simulando ruido noise=noise-mean(noise);xin=200+9*(cos(2*pi*fin*nT)); xin=xin+noise;out = filter(b,a,xin); plot(out,xin);
Aliasing• Aliasing é o fenômeno através do qual sinais
de frequências diferentes se tornam indistinguíveis quando amostrados através do uso de um conversor AD.
Frequencia de Nyquist e AliasingExemplo: Deseja-se ler apenas as frequencias f1 e f2. Note-se que f3 reside na banda de transição do filtro. Assim, a frequência f3 indesejada foi atenuada, mas sua imagem ainda é amostrada. Note-se também que f4 foi completamente eliminada, porque está acima da faixa de transição.
Filtros Anti-aliasing• Filtro RC passa-baixas passivo de 1ª ordem
Ref: http://ww1.microchip.com/downloads/en/appnotes/00699b.pdf
Como resolver o problema da frequência imagem f3 ?
• Resposta: usando-se filtros anti-aliasing ativos, com maior taxa de atenuação por década.
Curva do Filtro Ideal
4 Curvas para Filtros reais
Ref: http://www.maximintegrated.com/app-notes/index.mvp/id/928
4 tipos de filtros ativos
Butterworth de 4ª ordem Chebysev de 3ª ordem
Bessel de 4ª ordem Sallen-key de 2ª ordem
Ruído de quantização• O sinal (onda retangular) gerado internamente pelo funcionamento do
conversor AD subtrai-se por “batimento” do sinal que está sendo amostrado, gerando um outro sinal que é o ruído de quantização do AD:
Software grátis para Aquisição de dados Oscilloscope program library: Michael Bernstein, Ju l 2009
http://www.oscilloscope-lib.com
Videos no Youtube mostrando os testes do sistema
1 - Teste do Conversor AD (Fambrini e Saito DAQ)https://www.youtube.com/watch?v=FYGL5N2hOxE&feature=c4-overview&list=UU5oogEX4pk7PqJuDq6gG7QA
2 - Teste do MEA-SG + amplificadorhttps://www.youtube.com/watch?v=WTIEb4PUQFo&feature=c4-
overview&list=UU5oogEX4pk7PqJuDq6gG7QA
3 - Teste com matriz multi-eletrodo e folhas de arvores com osciloscopio convencionalhttps://www.youtube.com/watch?v=U4eUE929JRY&feature=c4-overview&list=UU5oogEX4pk7PqJuDq6gG7QA
4 - Teste do sistema de aquisição de dados completo de 1 canal, com folhas de arvores na matriz e também com o MEA-SG
https://www.youtube.com/watch?v=N2apZBI2mro&feature=c4-overview&list=UU5oogEX4pk7PqJuDq6gG7QA
Melhorias a implementar no DAQ1-Aumentar a resolução do conversor AD, de 12 bits para 16 ou
24 bits;
2-Aumentar a velocidade de transferência de dados entre o Conversor AD e a porta USB;
3-Usar microcontrolador com DMA (acesso direto a memória);
4-Usar técnicas de buffer de dados para aumentar a velocidade de aquisição de dados;
5-Fazer um software especifico (em C++ ou Visual Studio) para registrar os dados, que seja mais leve e mais rápido do que o Matlab.
Referências1-Apostila sobre conversores AD on-line:http://paginapessoal.utfpr.edu.br/rosangela/lcd-e-adc/Dig2Cap4-Conversor
%20DA%20e%20AD.doc/view
2-Comunicação Microcontrolador e Matlab:
http://kr3l.wordpress.com/2008/06/23/scope-with-pic-microcontroller-and-matlab/
3-Software gratuito de aquisição de dados:
http://www.msp430launchpad.com/2010/12/njcs-launchscope-launchpad-oscilloscope.html
4-DAQ32:
http://code.google.com/p/daq32datalogger11072010sohm/downloads/list