Processo de conversão A/D para aquisição de sinais mioelétricos
Full text
FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO Processo de Conversão A/D para Aquisição de Sinais Mioelétricos Ricardo Filipe Gonçalves Lopes Mestrado Integrado em Engenharia Eletrotécnica e de Computadores Orientador: Prof. José Machado da Silva 30 de Outubro de 2014
c Ricardo Lopes, 2014
ii
Resumo Os sinais mioelétricos são gerados em consequência da movimentação de cargas elétricas durante a atividade muscular. Dependendo do fim e contexto em que são usados, diferentes informações podem ser retiradas destes sinais, entre as quais, a simples ocorrência de atividade de um determinado músculo, a intensidade de contração do músculo, ou a periodicidade desta atividade. Dependendo do fim, pode ser analisado todo o sinal capturado durante um determinado período ou apenas certos parâmetros característicos tais como a amplitude de pico, a duração do sinal, ou o valor médio quadrático. O objetivo principal do trabalho aqui apresentado é o de desenvolver uma arquitetura de conversores analógico-digital, baseada em sensores de valor binário. Esta arquitetura tem na sua origem as leis do controlo, mais propriamente as de uma classe de sistemas de primeira ordem da forma yk=θuk+dk, tirando partido de algoritmos de estimação do parâmetro desconhecido. Os resultados obtidos mostram que esta arquitetura permite realizar um conversor inovador adaptado às características dos sinais mioelétricos e mais simples comparado com as soluções equivalentes existentes atualmente. De facto, com este conversor é possível implementar a aquisição de sinais quando a resolução pretendida é da ordem dos 4 ou 5 bits, e a largura de banda não excede alguns kHz, com a vantagem de economizar a potência consumida e a componente analógica dos circuitos. Palavras Chave: Sinais mioelétricos, Conversão Analógico-Digital, Leis do Controlo. iii
iv
Abstract Myoelectric signals are generated as a result of the movement of electric charges during muscle activity. Depending on the purpose and the context in which they are used, different information can be taken of these signs, including the level of contraction, the occurrence of a given muscle activity, or the frequency of this activity. Depending on the order, can be analyzed all the captured signal over a given period or only certain characteristic parameters such as peak amplitude, signal duration, or the root mean square value. The main objective of the work here presented is to develop a digital analog converter architecture based on binary value sensors. This architecture has at its roots control laws, more specifically those of a class of first-order systems at the form yk=θuk+dk, taking advantage of the unknown parameter estimation algorithms. The results obtained shows that this architecture can do a innovative converter adapted to the characteristics of the myoelectric signals and simpler compared to currently existing solutions. In fact, with this converter permits to implement the acquisition of signals when the desired resolution is on the order of 4 or 5 bits, and the bandwidth don’t exceed a few kHz, whit the advantage of saving the power consumed and analog circuitry component. Keywords: Myoelectric signals, Analog-Digital Conversion, Control Laws v
vi
Agradecimentos Em primeiro lugar gostava de agradecer ao meu orientador, o professor José Machado da Silva, pelos ensinamentos e apoio que me transmitiu ao logo deste projeto. Gostava também de agradecer aos meus pais pelo apoio e compreensão demonstrado, mais uma vez, nesta etapa da minha vida. Um agradecimento especial à minha tia Luísa, que apesar de travar as suas próprias batalhas, esteve sempre presente nestes últimos anos de faculdade. Ricardo Lopes vii
xiv LISTA DE FIGURAS
Lista de Tabelas 2.1 Características dos sinais biológicos . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1 Valores para a relação sinal-ruído(em dB) para diferentes frequências e diferentes valores do parâmetro de referência y∗....................... 25 xv
xvi LISTA DE TABELAS
Abreviaturas e Símbolos A/D Analógico-Digital D/A Digital-Analógico DC Direct Current DNL Differential NonLinearity EMG Electromyography Ne f f Effective number of bits INL Integral NonLinearity LSB Least Significant Bit MSB Most Significant Bit N Newton PWM Pulse With Modulation Σ−∆Sigma-Delta SINAD Signal-to-Noise and Distortion Ratio SNR Signal-to-Noise Ratio xvii
Capítulo 1 Introdução 1.1 Motivação Os sinais mioelétricos são gerados em consequência da movimentação de cargas elétricas durante a atividade muscular. Estes sinais têm amplitudes que vão da ordem de alguns microns de Volt até alguns milésimos de Volt. As frequências a que estes sinais se manifestam são relativamente baixas, geralmente compreendidas entre alguns Hertz até cerca de 400 Hz, podendo por vezes chegar aos 500 Hz, sendo esta banda dependente do indivíduo. Em função do propósito e contexto em que são usados, diferentes informações podem ser retiradas destes sinais, entre as quais, a simples deteção da ocorrência da atividade de um determinado músculo, a intensidade do nível de contração, ou a periodicidade da atividade, sendo para o efeito analisado todo o sinal capturado durante um determinado período ou apenas certos parâmetros característicos tais como a amplitude de pico, a duração do sinal, ou o valor médio quadrático [1,2]. Atendendo às características deste tipo de sinais e ao tipo de informação de interesse, assim podem ser determinadas as características dos circuitos de aquisição e condicionamento do sinal. Nomeadamente, pode ser usado um conversor analógico/digital (A/D) cujas características não são muito exigentes em termos de resolução e rapidez de conversão. 1.2 Objetivos O principal objetivo é desenvolver uma nova arquitetura de conversor A/D que permita garantir os requisitos mínimos exigidos em termos de gama dinâmica e banda de frequências face as características dos sinais mioelétricos e que, simultaneamente, seja simples em termos da sua estrutura física analógica e digital. Os conversores A/D do tipo Sigma-Delta (Σ−∆) satisfazem em parte este objetivo, contudo exigem o uso de amplificadores operacionais de elevado desempenho, que exigem o consumo de uma corrente de polarização, e de filtros digitais passa-baixo. A arquitetura de conversor analógico-digital aqui proposta recorre de igual modo a uma amostragem binária do sinal analógico mas dispensa o uso do modulador Σ−∆. Pretende diminuir a 1
2Introdução complexidade da parte analógica do conversor, tirando partido das potencialidades de plataformas digitais para implementação de algoritmos de interpolação de dados, e recorre a conceitos das leis de controlo adaptativo de primeira ordem com observações de valor binário geradas por níveis de decisão thresholds fixos. 1.3 Estrutura da Dissertação Para além da introdução, esta dissertação é composta por mais 3 capítulos. No capítulo 2são apresentados os sinais mioelétricos e alguns fins em que estes são utilizados. É ainda feita uma apresentação sumária das arquiteturas dos conversores A/D mais utilizados, focando as suas caraterísticas funcionais principais e campos de aplicação mais comuns. No capítulo 3é apresentado o algoritmo da nova arquitetura proposta, apresentando as suas vantagens e desvantagens. Para além da descrição funcional são apresentados resultados de simulação comportamental e é feita uma caracterização do processo de conversão em termos de distorção harmónica e número efetivo de bits obtidos, incluindo uma avaliação da influência dos parâmetros funcionais nestes parâmetros. No capítulo 4é apresentado o protótipo laboratorial implementado recorrendo a uma plataforma microcontrolador/Arduino e alguns circuitos externos adicionais e são descritos resultados experimentais obtidos. No capítulo 5são resumidas as conclusões principais do trabalho realizado. São ainda apresentadas algumas sugestões de melhoria dos resultados obtidos e perspetivas de trabalhos futuros.
Capítulo 2 Revisão da Literatura e Estado da Arte 2.1 Introdução A motivação para o desenvolvimento deste trabalho decorre da constatação de que a análise das características e da informação que se retira dos sinais mioelétricos que, em última instância, determinam as necessidades em termos de condicionamento e conversão A/D destes sinais, levam a que nem sempre sejam necessários os índices de resolução e rapidez comummente usadas nestas aplicações. Neste capítulo apresentam-se as características principais dos sinais mioelétricos, exemplos de aplicações que ilustram a sua utilização, e descrevem-se circuitos típicos de condicionamento e aquisição destes sinais. 2.2 Sinais Mioelétricos Os sinais mioelétricos são gerados em consequência da movimentação de cargas elétricas durante a atividade muscular. A amplitude destes sinais anda na ordem de alguns µVaté alguns mV [3,4]. São muito semelhantes, em amplitude e características das suas formas de onda, às ondas de radio e ao ruído eletromagnético que as lâmpadas florescentes emitem, o que ponde levar os sinais mioelétricos a serem confundidos com ruído. Uma característica principal é que a sua amplitude é proporcional à força e à intensidade da contração muscular realizada. A figura seguinte ilustra formas de onda correspondentes a realização de um exercício em que o sujeito realiza uma força de 362 Newton (N) (primeira contração), uma força de 575 N (segunda contração) e uma força de 772 N (terceira contração)[5]. A contração dos músculos é controlada por nervos motores que os envolvem. Estes nervos são constituídos por vários axónios que por sua vez controlam um número de fibras musculares. A chamada ’unidade motora’ consiste num axónio e nas fibras musculares que este controla [1]. Estas unidades motoras estão diretamente envolvidas na movimentação das cargas elétricas nos músculos. Quando estes estão relaxados, há uma maior concentração de iões carregados positivamente fora do músculo do que dentro. Quando o músculo é estimulado os iões positivos fluem 3
4Revisão da Literatura e Estado da Arte Figura 2.1: Sinal mioelétrico e força respetiva para dentro das células e os negativos fazem o trajeto oposto, levando a mudança de polarização. À medida que este fenómeno se espalha pelo músculo, começa a repolarização no local onde a estimulação começou, o que retorna o músculo ao seu estado inicial [6, Cap.2]. Quando um músculo está relaxado, as unidades motoras enviam algumas cargas para que o músculo fique minimamente tonificado. À medida que a tensão muscular aumenta mais unidades motoras disparam e cada uma com maior intensidade. Ao serem observados os padrões elétricos gerados por estes eventos num osciloscópio, inicialmente vemos alguns desvios verticais no sinal ao redor do ponto zero à medida que as unidade motoras polarizam e despolarizam. Ao aumentar a tensão muscular mais unidades motoras disparam e os sinais destas, que chegam aos sensores praticamente ao mesmo tempo, tendem a somar-se uns com os outros numa aparente forma aleatória de ondas positivas e negativas. Quantos mais sinais chegarem ao mesmo tempo aos sensores maior será a amplitude do sinal observado. A forma mais comum de caracterizar a amplitude do sinal é por meio da sua amplitude picoa-pico. As ondas geradas têm um aspeto característico e podem ser frequentemente diferenciadas visualmente. Os músculos ao contraírem produzem sinais com um conteúdo espectral diverso, mas vendo o sinal em bruto podem-se distinguir alguns picos que se repetem algumas vezes por segundo e outros de aspeto diferente que acontecem centenas de vezes por segundo. A gama de frequências alvo para efeitos práticos e pesquisa anda entre os 8 e os 500 Hz[8], pelo que normalmente no condicionamento dos sinais capturados são usados filtros com bandas passantes nesta banda de frequências. Cada músculo gera um padrão de frequências característico para diferentes níveis de contração muscular. Isto leva a que cada músculo apresente densidades espectrais diferentes para cada nível de tensão muscular. Por exemplo, o músculo oblíquo interno (figura 2.2) tem praticamente todo o seu espectro de potências entre os 8 e os 150 Hz enquanto que ambos os biceps eflexor radialis
2.2 Sinais Mioelétricos 5 Figura 2.2: Unidade motora e respetivo sinal mioelétrico [7] apresentam uma distribuição bimodal do seu espectro. Os biceps têm a maioria da sua potência abaixo dos 100 Hz, um poço entre os 100 e os 150 Hz, e depois mais potência entre os 150 e os 500 Hz. O flexor radialis apresenta a maioria da sua potência centrada nos 100 e nos 200 Hz e potência mais reduzida nas bandas abaixo, acima e entre estas duas frequências [9]. Os sinais mioelétricos podem ser usados para diversos fins. Por exemplo podem servir para a caracterização de propriedades relacionadas com padrões de movimento, identificar relações entre força e sinais mioelétricos em circunstâncias específicas, podem servir para identificar fadiga muscular e alterações na unidade motora. Outra forma interessante de usar os sinais mioelétricos é no controlo de próteses. Em função da aplicação, a informação que pretendemos extrair pode variar [10,11]. Em aplicações onde é necessário a captura de sinais mioelétricos os conversores comerciais têm resoluções que podem ir desde os 8 aos 24 bit, sendo mais predominante o uso de conversores com resoluções de 12 bit [12]. Em [13] são apresentados resultados da observação de sinais EMG gerados por diferentes indivíduos ao realizarem padrões de força controlados recorrendo a um dinamómetro. O objetivo da experiência era reconhecer a força exercida pelo indivíduo e a forma como a fadiga muscular altera os sinais mioelétricos. O conversor usado nesta experiência tem 16 bits de resolução e o sinal mioelétrico é amostrado a 4096 Hz. O sinal recolhido pelos sensores passa por um filtro ativo de segunda ordem, passa-banda (25 – 1350 Hz) antes de ser convertido. As anomalias são detetadas recorrendo ao domínio das frequências nomeadamente à frequência média e mediana da frequência. Um exemplo de aplicação concreta é o do controlo de um membro superior com recurso a sinais mioelétrico recolhidos à superfície da pele [14]. Nesta aplicação é usado um conversor comercial que faz parte de um sistema integrado composto por amplificador, conversor e sensores de captura. A frequência de amostragem utilizada é de 1 kHz e a resolução de 14 bits.
12 Revisão da Literatura e Estado da Arte equivalente digital da tensão analógica da entrada. A taxa de conversão de palavras é limitada pelo facto de cada bit ter de ser sucessivamente experimentado antes da conversão estar completa. Além disso, uma vez que é um processo programado, tem de se dar tempo suficiente para que todas as transições aconteçam antes de passar para o passo seguinte. Em cada passo do processo tem de existir tempo suficiente para o comparador recuperar da entrada anterior e gerar uma saída dependendo da entrada nova que vem do conversor D/A, que por sua vez, tem de ter tempo para chegar ao valor final dentro das restrições de precisão [19]. Aplicações que requerem resoluções na gama média-alta (8 a 16 bits), na ordem das 5 milhões de amostras e baixo consumo, tornam esta arquitetura o candidato ideal. Alguns exemplos deste género de aplicações são instrumentos portáteis alimentados a baterias, controlos industriais, digitalizadores portáteis, e aquisição de dados e sinal. 2.3.2.5 Rampa Os conversores em rampa ou contador utilizam um comparador analógico para detetar quando uma tensão analógica gerada internamente a partir dum conversor D/A, iguala o sinal analógico da entrada. À medida que o contador incrementa um bit a saída analógica do descodificador segue uma característica em escada, em que cada passo corresponde a um nível do descodificador. A sequência temporal do processo é a seguinte: o impulso de reset reinicia os flip-flops para o estado ’zero’. Em seguida enquanto a entrada analógica Via for maior do que a saída analógica Voa do descodificador, a saída do comparador é ’um’ e o sinal de enable mantém-se a ’um’ para que os impulsos do relógio continuem a incrementar o contador. Quando a contagem chegar ao fim, é iniciada novamente uma nova contagem e o valor do contador retorna a zero. Se no processo descrito anteriormente a entrada Via igualar ou superar Voa a saída do comparador muda para ’zero’, o sinal de enable passa a ’zero’. Isto para a contagem no tempo em que as saídas digitais dos flip-flops no contador possam ser lidas, o que corresponde à palavra digital de conversão do sinal de tensão analógica de entrada [19, Cap. 11]. 2.4 Resumo Neste capítulo são apresentados aspetos determinantes dos sinais mioelétricos, nomeadamente os fenómenos que lhes dão origem e as suas características em termos de amplitude e frequência. São ainda apresentados exemplos do modo como estes sinais podem ser usados. Em alguns casos foi constatado que é possível utilizar um menor número de bits do que os normalmente utilizados. Foram mencionadas as topologias de conversores A/D mais comuns e aplicações típicas, bem como alguns parâmetros de caracterização dos mesmos.
Capítulo 3 Conversor Analógico/Digital Baseado em Sensor de Valor Binário 3.1 Introdução Neste capítulo são apresentados o algoritmo descritivo da funcionalidade deste novo processo de conversão A/D e as suas vantagens em relação aos conversores convencionais, nomeadamente aos sigma-delta que são os que mais se aproximam funcionalmente do aqui proposto. São ainda apresentados alguns resultados com vista à caracterização e comportamento deste conversor. 3.2 Algoritmo funcional O conversor proposto tem por base as leis do controlo, mais propriamente as de uma classe de sistemas de primeira ordem da forma yk=θuk+dk,k=1,2,..., (3.1) em que uk∈ℜ,θ∈ℜedk,k⩾1 são, respetivamente, a entrada do sistema, um parâmetro de calibração desconhecido e o ruído. yké a saída controlada, que não pode ser medida mas é o sinal a ser regulado. O sinal que pode ser observado e que é usado para projetar o controlo é o sinal de valor binário seguinte: sk=I[yk⩽C] 1 se yk⩽C 0 outros casos em que Cé um nível de decisão binária. Como a saída controlada yké desconhecida, pretendese projetar um controlo adaptativo para gerar e controlar um sinal y∗ kque seja uma estimativa suficientemente aproximada e capaz de seguir a saída controlada yk. A cada instante de tempo k, pretende-se atualizar o sinal ukbaseado nas observações passadas, {s1,...,sk−1,u1,...,uk−1}com 13
14 Conversor Analógico/Digital Baseado em Sensor de Valor Binário o objetivo de minimizar o erro dado por: Jk=E(yk−y∗ k)2(3.2) A informação a priori sobre o parâmetro desconhecido, sinal de referência e ruído do sistema têm por base determinados pressupostos e observações, que podem ser consultados em [24]. A formulação da lei de controlo adaptativa, quando se conhece o parâmetro θ, a lei do controlo que minimiza 3.2 deve satisfazer y∗ k=θuk.(3.3) Depois de substituir 3.3 em 3.1, obtém-se a seguinte equação: yk−y∗ k−dk=0, e então Jk=E(yk−y∗ k)2=Ed2 k=Ed2 1. Por outro lado, quando o parâmetro θé desconhecido, necessitamos de o estimar. Para isso é proposto, por Guo et al. em [24], o seguinte algoritmo de projeção recursiva : ˆ θk=ΠΘ{ˆ θk−1+βPk−1uk 1+Pk−1u2 k [F(C−θk−1uk−sk)]},(3.4) Pk=Pk−1−γP2 k−1u2 k 1+Pk−1u2 k ,(3.5) onde Θ= [−θ,θ], o valor inicial |θ0|∈ [θ,θ]eP0>0 pode ser escolhido arbitrariamente, β> 0 e γ∈]0,1]são dois números reais; ΠΘ(.)é a projeção do operador definido por ΠΘ(x) = argminz∈Θ|x−z|para qualquer valor de x∈ℜ;F(.)é a função distribuição de probabilidade dada pelo pressuposto 3 descrito em [24], e que esta função é uma sequencia estocástica com média nula e variância finita; Cé o nível de decisão binária (threshold). Aplicando um principio equivalente, ao substituir θem 3.3 pela sua estimativa ˆ θk−1, obtém-se uma equação da lei de controlo adaptativa: y∗ k=ˆ θk−1ukem que uknão pode ser obtido quando ˆ θk−1=0. Para evitar isto, é feita a seguinte modificação: uk=y∗ k ˆ θk−1 I[θ⩽|ˆ θk−1|⩽θ]+y∗ k θ(I[0<|ˆ θk−1|<θ]−I[−θ<|ˆ θk−1|⩽0])(3.6) As modificações feitas em 3.6, permitem fazer uso total da informação a priori sobre θ. A figura 3.1 ilustra em diagrama de blocos este processo de controlo adaptativo. Tendo por base os princípios descritos nos parágrafos anteriores, os algoritmos e as equações apresentadas anteriormente foram adaptados de forma a se adaptarem aos requisitos do conversor. As adaptações foram realizadas após uma primeira análise, através de simulação em ambiente MatLab, do comportamento das equações de controlo adaptativo e do algoritmo de projeção recursiva. Em primeiro lugar, dado o seu peso computacional e com vista à implementação, foram
3.2 Algoritmo funcional 15 Figura 3.1: Mecanismo de design da lei de controlo adaptativa substituídos 3.4 e3.5 por uma tabela de valores ordenados Go,G1,...,Gnem que Gn=G(n−1)+K em que Ké uma constante. Com isto a equação 3.6 pode ser simplificada ficando apenas uk=y∗ k ˆ θk (3.7) e em que ˆ θké um dos valores da tabela de valores ordenados. Após estas simplificações o processo de controlo adaptativa foi reorganizado de forma a melhorar o desempenho e por outro lado a simplificar a parte analógica do conversor tendo em vista a implementação, de modo que esta seja feita o mais possível em plataformas digitais. Estas reorganizações podem ser visualizadas na figura 3.2, que ilustra o diagrama de blocos do novo mecanismo de controlo adaptativo, e 3.3, visão geral da execução do algoritmo do conversor. Tabela de ganhos θ Sensor de valor binario 3.7 Skˆ θk y∗ uk yk C Figura 3.2: Mecanismo de controlo adaptativo adaptado. Cada uma das variáveis apresentadas nas equações anteriores, equivale a um sinal ou parâmetro do conversor. Fazendo a correspondência entre eles temos: •yk— sinal analógico usado como realimentação do sinal digital resultante da conversão A/D;
16 Conversor Analógico/Digital Baseado em Sensor de Valor Binário •C— sinal analógico a converter que na verdade será tomado como nível de decisão binária para avaliar a progressão de yk; •Sk— sinal binário resultante da comparação entre Ceyk; •ˆ θk— ganho variável; •y∗— parâmetro do conversor (referência controlada de valor constante); •uk— resultado intermédio resultante da equação 3.7; •θ— ganho fixo. y <= C Inicio Inicializar Variáveis Calcular u Calcular y S=0 S=1 Sim Não Incrementa Apontador Decrementa Apontador Atualiza Ganho Figura 3.3: Fluxo de execução do algoritmo do conversor. A figura 3.3 ilustra a sequência em que o algoritmo do conversor é executado. O primeiro passo é inicializar todas as variáveis, isto é, definir y∗,ukeθ, construir a tabela de ganhos e
3.3 Simulação e Caracterização Funcional 17 inicializar o apontador para a mesma. Feito isto é calculado o valor de ukcom base no ganho controlado ˆ θdefinido pelo apontador para a tabela de ganhos e y∗recorrendo à expressão 3.6. No passo seguinte, é calculado ykatravés da expressão 3.1 em que dkpode ser visto como ruído de quantificação. Em seguida, é efetuada uma comparação entre ykeC. O resultado desta comparação é dado pela expressão I[yk⩽C]através da qual se obtém o valor de sk. Caso skseja ’1’ o apontador da tabela de ganhos é decrementado, caso contrário, se skfor ’0’ o apontador é incrementado. Por fim, o valor para o qual o apontador aponta na tabela de ganhos é atribuído a ˆ θe volta-se novamente a calcular uk,yke assim por diante. Comparativamente ao Σ∆, este conversor permite simplificar não só a parte analógica, mas também reduzir a complexidade da componente digital do mesmo. Quanto à parte analógica, a arquitetura proposta apenas necessita de um comparador e de um filtro passa-baixo usado na reconstrução do sinal digitalizado por meio de um modulador Σ∆ D/A digital. O conversor A/D Σ∆ usa um modulador Σ∆, que compreende um somador, um integrador (no caso do modulador de 1aordem) e de um comparador. Já na parte digital, enquanto que no Σ∆ é obrigatório recorrer-se a um filtro passa-baixo digital seguido de um processo de down-sampling, nesta solução, embora se obtenha melhores resultados se se usar também uma filtragem passa-baixo do sinal digitalizado, pode-se contudo obter uma conversão A/D apenas pela implementação do algoritmo apresentado anteriormente que é comparativamente mais simples. 3.3 Simulação e Caracterização Funcional De forma a compreender o funcionamento dos algoritmos e para servir como prova de conceito foram realizadas numa fase inicial simulações em MatLab. Foram também efetuadas alguns cálculos e medições para verificar o desempenho do conversor. 3.3.1 Simulação De início foi realizada uma simulação funcional com recurso ao MatLab, com o intuito de implementar o algoritmo apresentado anteriormente de forma a verificar o conceito apresentado. Tendo em conta as equações iniciais, constatou-se que o valor do parâmetro γda equação 3.5, caso tome valores próximos dos seus limites superior e inferior faz com que o resultado do cálculo de ˆ θkem 3.4 leve a uma divergência, isto é, que tome valores muito distantes do esperado e assim não é possível estimar de todo yk. O valor de γ=0.5 mostrou-se ser o que permite um melhor desempenho. Já o valor do parâmetro βda equação 3.4 influencia a rapidez e a exatidão com que o algoritmo estima o valor de referência y∗ ke o parâmetro θ. Valores baixos, na ordem de algumas unidades fazem com que o algoritmo convirja mais lentamente, enquanto que por outro lado à medida que aumentamos βa rapidez de convergência aumenta. Quanto à exatidão, para valores baixos de β temos aproximações mais finas ao sinal que estamos a seguir enquanto que para valores maiores obtemos uma exatidão menor, proporcional ao aumento de β.
18 Conversor Analógico/Digital Baseado em Sensor de Valor Binário 0 50 100 150 200 250 300 350 400 0 5 10 15 20 25 0 50 100 150 200 250 300 350 400 0 1 2 3 4 5 6 beta = 2 beta = 4 beta = 6 beta = 8 beta = 10 Figura 3.4: Estimativa do valor de referência(cima) e de tetha(baixo) para diferentes valores de beta Na figura 3.4 é visível, para diferentes valores de β, o comportamento tanto da estimativa do valor de referência y∗ kcomo da estimativa do valor de θ. Para valores mais baixos de βas estimativas têm uma aproximação mais suave aos valores de referência, de notar que para β=2 não há convergência. À medida que se aumenta o valor de βtemos aproximações mais rápidas aos valores de referência. Em termos de exatidão, como é evidenciado na figura, com valores de β maiores temos uma maior oscilação do valor estimado, em torno do valor esperado após atingido esse valor. Neste exemplo, temos como referências y∗ k=4 e θ=5. Este comportamento implica chegar a um compromisso entre rapidez de convergência e exatidão na escolha do parâmetro β. Por um lado, queremos que o sinal convirja rapidamente, por outro, pretendemos um sinal suficientemente preciso. Depois de aplicadas as alterações mencionadas na secção anterior, foram efetuadas novas simulações, com vista a perceber de que forma este conversor se comporta. Verificou-se que com estas alterações e a utilização de uma tabela de ganhos, o parâmetro que mais influencia o comportamento do conversor é a diferença entre valores sucessivos dessa mesma tabela, denominado de passo. Com um passo mais pequeno consegue-se uma maior aproximação ao sinal original, por outro lado, quando este apresenta variações mais acentuadas em amplitude e frequência, o conversor não consegue acompanhar essas variações, uma vez que é necessário um maior número de iterações para chegar ao valor a converter desejado . Valores de passo muito pequenos incremen-
3.3 Simulação e Caracterização Funcional 19 tam o espaço em memória necessário para a elaboração da tabela de ganhos. Portanto a escolha do passo depende das características do sinal original, nomeadamente a amplitude e a banda de frequências, e é necessário chegar a um compromisso entre exatidão e rapidez de resposta. Na figura 3.5 estão representados alguns sinais para diferentes valores do passo. No primeiro gráfico foi utilizado o passo com menor valor e nos seguintes esse valor foi aumentado gradualmente. A forma de onda tem as seguintes características: frequência de 100 Hz e uma tenção pico-a-pico de 1 Volt. Os parâmetros y∗eθsão 6 e 5, respetivamente. Os passos utilizados foram 0.5, 1, 2, 3 e 4. Figura 3.5: Sinusoides com 100 Hz para diferentes valores do passo Outros parâmetros com influência no comportamento do conversor são o ganho θe o parâmetro y∗. Olhando com mais atenção para a formulação do algoritmo e substituindo a expressão 3.7 em 3.1 obtemos yk=θ×y∗ ˆ θk (3.8) yk=Γ ˆ θk (3.9) em que Γ=θ×y∗. Isto é equivalente a ter apenas um parâmetro. A variação dos parâmetros θe y∗levam a comportamentos semelhantes no processo de convergência. Utilizando valores de Γmais pequenos obtemos uma conversão menos exata e com ligeira oscilação em torno dos picos da onda original. Aumentando o valor de Γestas oscilações vão diminuindo, principalmente quando a forma de onda atinge os seus picos, e consequentemente aumenta a exatidão da conversão. Observando a figura 3.6 podemos verificar este comportamento. Nesta simulação foi usada uma onda sinusoidal com uma frequência de 100 Hz e uma tenção
20 Conversor Analógico/Digital Baseado em Sensor de Valor Binário pico-a-pico de 1 Volt. Foi utilizado um passo de 1 unidade e y∗=6. O parâmetro θassume os valores 1, 2, 3, 4 e 5. Figura 3.6: Sinusoides com 100 Hz para diferentes valores de theta Para verificar o comportamento referido anteriormente foi feito uma nova simulação. Esta visou entender de que forma a amplitude do sinal afeta o resultado final. Na figura 3.7 podemos observar os resultados obtidos para diferentes valores de amplitude do sinal de referência, sendo os seus valores 0.2, 0.5, 1, 1.5 e 2 Volt respetivamente. Nesta simulação foi usada uma onda sinusoidal com uma frequência de 100 Hz, passo de 1 unidade e y∗=6 e o parâmetro θ=5. À medida que a amplitude aumenta torna-se percetível uma ligeira oscilação quando a onda passa pelos picos. O facto deste aumento de oscilação com o aumento da amplitude e do passo e diminuição do parâmetro Γdeve-se ao estarmos a dividir um valor constante por um outro que vai variando á razão de uma constante. À medida que vamos aumentando o denominador a razão com que o resultado da equação 3.9 aumenta é cada vez menor. Por forma a diminuir este comportamento a tabela de ganhos poderia ser elaborada de forma diferente. Em vez de utilizar um passo fixo poderia ser usado um passo incremental. Na figura 3.8 temos representado um comparativo do comportamento do algoritmo para diferentes frequência. Nas frequências mais elevadas, nomeadamente nos 400 Hz e 500 Hz, começa-se a notar uma ligeira distorção no sinal convertido. Nesta simulação foram usadas ondas sinusoidais com frequências de 0, 50, 100, 200, 300, 400 e 500 Hz com uma tenção pico-a-pico de 1 Volt. Foi utilizado um passo de 1 unidade, y∗=6 e o parâmetro θ=5. Das experiências anteriores constatou-se que o algoritmo segue sem dificuldades referências contínuas e sinusoides. O passo seguinte foi verificar como o algoritmo se comportava ao seguir
3.3 Simulação e Caracterização Funcional 21 Figura 3.7: Sinusoides com 100 Hz para diferentes valores de amplitude outros tipos de sinais com comportamento bem definido ao longo do tempo, como por exemplo, onda dente de serra ou triangular e onda quadrada. Uma onda dente de serra está ilustrada na figura 3.9. As características desta onda são uma frequência de 100 Hz e uma tensão pico-a-pico de 1 Volt. Foi utilizado um passo de 1 unidade, y∗= 6 e o parâmetro θ=5. Neste sinal podemos observar que o sinal convertido segue relativamente de perto o sinal original na rampa ascendente, novamente com algum ruído, oscilação pelas mesmas razões referidas anteriormente. Nas transições descendentes o sinal convertido apresenta uma ligeira distorção, já que, tem alguma dificuldade em acompanhar a entrada, uma vez que, esta transição representa uma frequência bastante elevada. Outro sinal interessante de observar é uma onda quadrada, ilustrado na figura 3.10. Este sinal tem uma frequência de 100 Hz, uma tensão pico-a-pico de 1 Volt e um duty-cycle de 50%. Novamente foi utilizado um passo de 1 unidade, y∗=6 e o parâmetro θ=5. Neste caso nota-se um ligeiro ruido e oscilação nos extremos. Nas transições o comportamento é semelhante ao de dente de serra. Por forma a compreender como o algoritmo de conversão aqui proposto se comportava em casos mais realista, nomeadamente convertendo um sinal mioelétrico (EMG), foi efetuada uma simulação para este tipo de sinais. O resultado da conversão encontra-se ilustrado na figura 3.11. O EMG real foi obtido na biblioteca de sinais disponibilizada em [25]. Observa-se na figura que a saída y consegue acompanhar o sinal EMG a maior parte do tempo, sendo o erro maior quando este apresenta transições, ascendentes como descendentes, bastante bruscas, ou seja, mudanças acentuadas em amplitude e frequência.
28 Conversor Analógico/Digital Baseado em Sensor de Valor Binário 3.4 Resumo Neste capítulo foi apresentado o algoritmo funcional do processo de conversão analógico/- digital proposto. É feita uma comparação qualitativa com o conversor A/D do tipo Σ∆ e são apresentados resultados de avaliação preliminar da qualidade do desempenho. A influência dos parâmetros do conversor no comportamento do mesmo foi analisada bem como apresentados alguns indicadores de desempenho. Destes resultados pode-se concluir que, em primeira instância, para sinais na gama de frequências comuns dos sinais mioelétricos, o processo de conversão aqui proposto permite uma conversão com bastante exatidão, e uma relação sinal-ruído aceitável.
Capítulo 4 Protótipo de Avaliação Experimental 4.1 Introdução Neste capítulo é apresentado o protótipo implementado para efeitos de avaliação experimental. São ainda apresentados os resultados obtidos nas avaliações funcionais do protótipo do conversor proposto. 4.2 Implementação Com base no algoritmo apresentado no capítulo anterior, foi desenhado e implementado um protótipo para verificar o funcionamento do conversor proposto em condições reais. Partindo deste e analisando o diagrama de blocos apresentado na figura 3.2 foi possível identificar os blocos que seriam implementados do lado analógico e os blocos passíveis de implementação em plataformas digitais. No lado analógico, e observando o diagrama de blocos 3.2, identificámos o sensor de valor binário. Do lado digital temos o bloco da tabela de ganhos, o bloco para o cálculo de uke finalmente o bloco para o cálculo de yk. Para efeitos de comparação do sinal de entrada com o valor ykestimado, é incluído do lado digital um conversor digital-analógico (D/A) e à sua saída, do lado analógico, um filtro passa-baixo para filtrar as componentes de alta frequência. O diagrama ds figura 4.1 ilustra a distribuição dos vários blocos do protótipo que compõem o conversor A/D. 4.2.1 Sensor de valor binário O sensor de valor binário pode ser implementado basicamente como um comparador, visto que este tem como função comparar o sinal de entrada (sinal analógico de referência) com o resultado da conversão. O comparador foi implementado com recurso ao circuito integrado LM311. Este é um comparador de tensão cujas características principais são um tempo de resposta suficiente rápido (na ordem das dezenas de nanosegundos), versátil quanto à tensão de alimentação, cuja saída é compatível com diversas tecnologias de circuitos, tais como TTL, MOS entre outras, e com correntes de entrada e de offset na ordem dos nanoamperes. 29
30 Protótipo de Avaliação Experimental Analógico Digital Tabela de ganhos yk=θuk Sensor de valor binário uk=y∗ ˆ θk Skˆ θk y∗ uk y(t) C(t) yk Filtro Passa-Baixo DAC y(kt) Figura 4.1: Diagrama de blocos do conversor A/D. 4.2.2 Filtro Dadas as características dos sinais mioelétricos, as frequências com interesse são de até aproximadamente 500 Hz (Cap. 1.1), o que implica um filtro passa-baixo com uma frequência de corte de 500 Hz. O filtro passa-baixo tem como finalidade finalizar a conversão de digital para analógico, isto é, extrair o valor médio (variável) dos impulsos do sinal convertido, filtrando as componentes de alta frequência do sinal obtido à saída do microcontrolador. O filtro implementado é do tipo ativo, de segunda ordem, com uma topologia Sallen-Key. A escolha recaiu neste tipo de filtro, em detrimento dos de tipo passivo, devido ao facto de ser bastante simples, não ser necessário o uso de indutâncias, as capacidades serem mais pequenas, o ganho poder ser controlado, ter impedância de entrada bastante elevada, impedância de saída praticamente nula, e possibilitar um elevado fator de qualidade Q. A figura 4.2 ilustra a implementação do filtro. O dimensionamento do filtro pode ser consultado no anexo A. 4.2.3 Bloco Digital Por forma a implementar os vários sub-blocos do lado digital foi utilizada uma plataforma baseada em microprocessador. A implementar a tabela de ganhos controlados, as expressões matemáticas e o conversor digital analógico. 4.2.4 Implementação em Microprocessador Devido à sua popularidade, baixo custo, e possibilidade de desenvolvimento rápido de protótipos, foi usada uma plataforma Arduino para implementar o algoritmo de conversão. De entre as vária opções foi escolhida a placa Arduino nano. Esta possui um microprocessador de 8 bits, 32
4.2 Implementação 31 C1 C2 R2 R1 R4 R3 10k 10k 33n 33n 8.2k 10k Entrada Saída Figura 4.2: Filtro Sallen-Key passa-baixo. kb de Flash, 1kb EEPROM, 2kb de SRAM (Atmega 328p), operando a uma frequência de relógio de 16 MHz. A implementação do algoritmo consistiu basicamente em converter o algoritmo escrito em MatLab para o IDE do Arduino, com as devidas correções e configurações específicas a esta plataforma, nomeadamente a da definição de entradas e saídas, configuração de portos e modos de funcionamento dos mesmos. Os blocos implementados no Arduino são os descritos na secção anterior (tabela de ganhos controlados, operações matemáticas, conversão D/A). Para estes blocos são usadas soluções diferentes inerentes aos recursos e arquitetura do microprocessador. O resultado do sensor binário é lido através de uma entrada digital do microprocessador, os ganhos controlados são definidos a priori e guardados em memória, o cálculo intermédio e o da estimação do sinal analógico é feito com recurso a duas funções em linguagem C. A construção da tabela de ganhos com base num passo constante da forma Sn=S(n−1)+k;kinteiro leva a que os intervalos entre os níveis de quantificação sejam diferentes (não uniformes). Para tornar estes intervalos equidistantes, em primeiro lugar há que defini-los com base no número de bits pretendidos para o conversor, e em seguida calcular os ganhos controlados com base nas expressões de yeu. O valor de ka utilizar na expressão Sné tanto maior quanto maior for o valor de Sn. A figura 4.3 ilustra bem o comportamento descrito anteriormente para os valores do ganho controlado. A conversão da estimativa para analógico é implementada com recurso a um processo PWM, onde é feita uma correspondência entre os níveis de quantificação e a largura do impulso da onda. Esta encontra-se ligada à entrada do filtro analógico onde é finalizada a conversão do sinal para analógico. O microcontrolador usado permite a geração de ondas PWM com valores médios com uma resolução de 8 bit. Com isto, o número máximo de valores possíveis é de 28=256
32 Protótipo de Avaliação Experimental Figura 4.3: Exemplo de comportamento do valor do ganho controlado. níveis. Atendendo a que o microcontrolador é alimentado a 5 V consegue-se uma resolução de 5/256 ≈19.5mV. O sinal de PWM é gerado com uma frequência de 2 MHz. Esta frequência resulta do uso do valor do prescaler de 8 e como o microcontrolador opera a uma frequência de 16 MHz daí resultar uma frequência de portadora para o sinal PWM gerado de 2 MHz. 4.2.5 Desempenho, Validação experimental Depois de implementados o circuito e os módulos digitais foram efetuados testes para validar experimentalmente o processo de conversão proposto. Em primeiro lugar foi testada a conversão D/A por PWM, para conhecer os seus limites. A estratégia consistiu em variar a largura do impulso e em colocar o sinal resultante à entrada do filtro analógico e na medição do valor DC do sinal após filtragem. Na figura 4.4 estão ilustradas algumas medições. Para praticamente toda a gama da largura de impulso a conversão é feita com ligeiros desvios do valor teórico esperado. Porém, constatou-se que acima dos 85 % de largura de impulso o valor da conversão medido à saída do filtro saturou em (aproximadamente) 4,1 V . De seguida, foi verificado o processo de conversão completo. Para perceber o seu desempenho, foram usadas diversas formas de onda com diferentes características tanto em termos de frequência, como de amplitude e forma. Inicialmente foi selecionada uma tenção DC para verificar o comportamento do conversor a frequência nula. Para melhor compreensão das próximas imagens segue-se uma descrição das formas de onda observadas. A amarelo temos a onda PWM obtida à saída do microprocessador (y(kt)). A azul o resultado do sensor binário(Sk), a vermelho temos o sinal analógico de referência (C(t)), por fim, a verde temos o resultado da conversão D/A (y(t)). Como está ilustrado na figura 4.5, é visível uma ligeira oscilação do sinal a verde em torno do sinal de referência. De notar que a escala vertical tem uma resolução de 0.2 V por divisão. Este
4.2 Implementação 33 (a) 1 V aproximadamente(verde) PWM a 20 % (amarelo) (b) 4 V aproximadamente (verde) PWM a 80 % (amarelo) Figura 4.4: Onda PWM e respetiva conversão para DC para diferentes larguras de impulso.(Escala: 0,5V/div.eixo yy; 0,2ms/div.eixo xx). comportamento ocorre para outras amplitudes para tensão DC, tornando-se mais pronunciado à medida que a tensão aumenta. Este comportamento manifesta-se em sinais de baixa frequência como é visível na figura 4.6 em que o sinal de referência é uma rampa com muito baixa frequência(5 Hz). Outro dado importante observado nesta imagem é o facto de esta tendência oscilatória em torno do sinal de referência tender a aumentar de amplitude de oscilação à medida que a amplitude do outro sinal também aumenta. Para encontrar o limite em amplitude, foi usado um sinal em rampa com 5 Hz de frequência com a amplitude a variar de forma crescente iniciando em 1 mV até ser encontrado o limite. Este limite começou a tornar-se evidente por volta dos 4 V, como é visível na figura 4.7(b), o sinal a
34 Protótipo de Avaliação Experimental Figura 4.5: Tenção DC com uma amplitude de 3v (Escala: 0,2V/div.(verde, vermelho), 2V/div.(amarelo, azul) eixo yy; 2ms/div.eixo xx). verde atinge a saturação. Mesmo para amplitudes superiores do sinal a converter o resultado da saturação manteve-se no valor referido anteriormente. Outro dado importante é o de perceber quais os limites de frequência em que o conversor funciona. Foram utilizados diversos valores para a frequência do sinal de referência, iniciando com valores baixos e aumentando progressivamente esses valores. Na figura 4.8 são ilustrados os resultados para as frequências de 25, 50, 100 e 200 Hz todos com uma amplitude de 3,5 V. A partir dos 100 Hz começa-se a notar uma ligeira degradação do sinal. Nas transições ascendentes é notório um ligeiro atraso face ao sinal de referência. Aos 200 Hz é bem percetível a degradação tanto na amplitude, cerca de metade do sinal de referência, como em termos de atraso. O conversor não consegue acompanhar o sinal de referência tanto nas transições de subida, como nas rampas descendentes. Na figura 4.9 estão ilustradas duas ondas, uma sinusoidal e uma triangular. Ambas têm as mesmas características em termos de frequência e amplitude, 40 Hz, 3,5 V. De notar que nestas formas de onda também se observa oscilação na conversão em torno da onda de referência. Em todas estas simulações o passo usado é da forma apresentada em 4.3Esta forma mostrou ser a que levava a melhores resultados na conversão. Esta implementação para frequências baixas, da ordem das dezenas de Hz, segue o sinal a
4.2 Implementação 35 Figura 4.6: Rampa com amplitude de 3.5 V e 1 Hz de frequência (Escala: 0,5V/div.eixo yy; 20ms/div.eixo xx) converter de forma razoável, apesar das oscilações em torno do mesmo. Esta oscilação, que ocorre de forma ressonante ao longo de todo o sinal, pode ser diminuída ajustando o filtro para uma frequência de corte mais baixa. Outra solução é com o melhoramento da conversão D/A, usando um conversor dedicado de modo a melhorar a qualidade da conversão. Na figura 4.10 ilustra uma onda com as mesmas características da apresentada na figura 4.9(a) mas com uma frequência de corte do filtro passa baixo ajustada para metade (cerca de 250 Hz). A oscilação diminuiu em relação ao caso anterior, mas não foi eliminada totalmente, ficando ainda com alguma oscilação remanescente em torno do pico da amplitude máxima. Para os outros casos foram efetuadas novas medições para verificar as novas condições de funcionamento, com esta nova configuração do filtro. Para todos os casos apresentados, ouve uma ligeira melhoria, visto que a frequência de oscilação diminuiu. Estes resultados podem ser observados na figura 4.11.
36 Protótipo de Avaliação Experimental (a) Amplitude 2.5 Volt (b) Amplitude 4 Volt Figura 4.7: Onda em rampa com diferentes amplitudes, com frequência de 5 Hz. (Escala: 0,5V/div.eixo yy; 20ms/div.eixo xx)
4.2 Implementação 37 (a) Frequência de 25 Hz, Amplitude 3 Volt (b) Frequência de 50 Hz (c) Frequência de 100 Hz (d) Frequência de 200 Hz Figura 4.8: Onda em rampa com diferentes frequências, amplitude de 3 Volt. (Escala: 0,5V/div. eixo yy; 5ms/div.eixo xx)
44 Dimensionamento do Filtro Os parâmetros do filtro são: A=k(A.3) ωo=1 RC (A.4) Q=1 2m(A.5) m=3−k 2(A.6) (A.7) Para garantir a estabilidade do filtro o parâmetro ktem de cumprir os seguintes requisitos: k<2R×C RC (A.8) . O filtro foi dimensionado inicialmente para uma frequência de corte na ordem dos 500 Hz. Para esta frequência e substituindo na equação A.4 temos: ωo=2πfo=1 RC (A.9) 2π500 =1 RC (A.10) ficámos com uma equação e duas incógnitas. Fixamos C=33nF que é um valor normalizado e assim ficamos com: R=1 2π500×33n(A.11) R≈9645.8Ω(A.12) Tendo em conta o valor encontrado para a resistência, este foi arredondado para o valor normalizado mais próximo para facilitar a implementação do filtro.
Anexo B Código simulação B.1 Simulação Principal 1%% %inicializacao 3c l e a r a l l c l o s e a l l 5 T = 10000; % # de i t e r a c o e s 7Ts = 0.00005; Fs = 1/ Ts ; 9%tempo t1 = [ 0 : Ts : 1 0 ] ’ ; 11 t = t1 ( 1 : T , : ) ; STEP = 1;% Passo dos ganhos co nt ro la dos 13 P_e = zeros ( 5 , 1 ) ; 15 P_c = zeros ( 5 , 1 ) ; SNR_dB = zeros (5 ,1); 17 N_eff= zeros (5 ,1); 19 y = ones (T , 1 ) ; u = zeros (T , 1 ) ; 21 S = ones (T , 1 ) ; erro = zeros(T , 1 ) ; 23 theta = zeros(T , 1 ) ; 25 n f f t = 2^nextpow2 (length( y ) ) ; 45
46 Código simulação 27 t h e t a _ t a b = 1:STEP : 60 0; t e t a = 3; %ganho fixo 29 r = 6;% referencia 31 i = 5;%apontador para t a b e l a v al o re s de t h e t a sigma_sq = . 0 1 ; 33 t h e t a ( 1) = 5;%va lor i n i c i a l t h e t a %% 35 %Sinais f = [10 50 100 200 300 400 500];%frequencia 37 A = 1;%amplitude for l =1: length (f) 39 %C = A∗square (2∗pi ∗f ( l )∗t ,50 ) + 2 ; %C = A∗sawtooth(2∗pi ∗f ( l )∗t ) + 2 ; 41 C = A( l )∗sin(2∗pi ∗f∗t ) + 2 . 5 ; 43 %% %Ciclo p r i n c i p a l 45 for k = 2:T 47 u ( k ) = r / t h e t a ( k −1); y ( k ) = t e t a ∗u ( k ) + sigma_sq ∗randn (); 49 S( k ) = Sk ( y ( k ) ,C( k ) ) ; %sen so r b i n a r i o 51 i f S( k ) == 0 53 i = i + 1; else 55 i=i−1; end 57 t h e t a ( k ) = t h e t a _ t a b ( i ) ; 59 er ro ( k ) = C( k ) −y ( k ) ; 61 end %% 63 %erro c = C(1000:5000); 65 E = erro(1000:5000);
B.1 Simulação Principal 47 67 P_e ( l ) = mean (E.^2); 69 P_c ( l ) = mean (c.^2); %Rel s i n a l ruido 71 SNR_dB( l ) = 10 ∗log10 ( P_c ( l ) / P_e ( l ) ) ; 73 %N e f e t i v o de b i t s N_eff ( l ) = (SNR_dB( l ) −1.76)/6.02; 75 %FFT 77 Y_spect= f f t ( y ( 5 : length( y ) , : ) , n f f t ) ; Y_dB=20∗log10 (abs ( Y_spect ) ) ; 79 Y_P = ( abs ( Y_spect ) . ∗abs( Y_spect ) ) ; maxdB=max(Y_dB ( 5 : n f f t / 2 ) ) ; 81 %figure; % p lot ( [ 0 : n f f t /2 −1].∗Fs / nf ft , Y_dB ( 1 : n f f t / 2 ) ) ; 83 % gri d on ; % t i t l e ( ’FFT PLOT’ ) ; 85 % xl ab el ( ’ANALOG INPUT FREQUENCY (Hz ) ’ ) ; % yl ab el ( ’AMPLITUDE (dB ) ’ ) ; 87 f i n =fi nd (Y_dB (1 : n f f t /2)==maxdB ) ; 89 %fo + harmonicos HD( l , : )= Y_dB( f i n : f i n : f i n ∗5); 91 %Rel s i n a l rui do e d i s t o r c a o 93 SINAD_dB( l ) = −20∗log10(s qr t (( 10 ^(HD( l , 1 ) / 2 0 ) ) ^ 2 + . . . (10^(HD( l , 2 ) / 2 0 ) ) ^ 2 + (10^(HD( l , 3 ) / 2 0 ) ) ^ 2 + . . . 95 (10^(HD( l , 4 ) / 2 0 ) ) ^ 2 + (10^(HD( l , 5 ) / 2 0 ) ) ^ 2 ) ) ; 97 THD_dB( l ) = 20∗log10(s qr t (( 10 ^(HD( l , 2 ) / 2 0 ) ) ^ 2 + . . . (10^(HD( l , 3 ) / 2 0 ) ) ^ 2 + (10^(HD( l , 4 ) / 2 0 ) ) ^ 2 + . . . 99 (10^(HD( l , 5 ) / 2 0 ) ) ^ 2 ) ) ; 101 figure ( 2 ) ; subplot(length ( f ) ,1 , l ) 103 p l o t ( t , y , t ,C, ’m’ ) ;%legend ( ’ sa ida y ’ , ’ ent rad a C ’ ) ; a x i s ([ 0 0.05 0 5 ]) 105 xlabel( ’ tempo ( s ) ’ ) ; ylabel( ’Amp. (V) ’ ) ;
48 Código simulação 107 end %% 109 %P l o t s 111 figure subplot (2 ,1 ,1); 113 p l o t ( f , SNR_dB ) ; %t i t l e ( ’SNR (dB ) ’ ) ; 115 %x la be l ( ’ Freq . a bs ol ut a (Hz ) ’ ) ; ylabel( ’SNR (dB) ’ ) ; 117 subplot (2 ,1 ,2); 119 p l o t ( f , N_eff ) ; %t i t l e ( ’N Efe tivo de bi ts ’ ) ; 121 xlabel( ’ Freq . abs ol uta (Hz) ’ ) ; ylabel( ’ Neff ( b i t s ) ’ ) ; 123 125 figure (4 ) subplot (2 ,1 ,1); 127 p l o t ( f ,THD_dB) xlabel( ’ Freq . abs ol uta (Hz) ’ ) ; 129 ylabel( ’THD (dB) ’ ) ; 131 subplot (2 ,1 ,2); p l o t ( f , SINAD_dB) 133 xlabel( ’ Freq . abs ol uta (Hz) ’ ) ; ylabel( ’SINAD (dB) ’ ) ; B.2 Função Sk 1function s = Sk ( y , C) %r e t o r n s 1 i f y < C, and 0 oth er wis e 3%y −Value of the sample %C −Threshold 5%s −Result of the comparation i f y <= C 7s = 1; else 9s = 0;
B.2 Função Sk49 end 11 end
50 Código simulação
Referências [1] Leif Sörnmo e Pablo Laguna. Bioelectrical Signal Processing in Cardiac and Neurological Applications: Biomedical Engineering. Academic Press, 2005. [2] Angkoon Phinyomark, Franck Quaine, Sylvie Charbonnier, Christine Serviere, Franck Tarpin-Bernard, e Yann Laurillau. {EMG} feature evaluation for improving myoelectric pattern recognition robustness . Expert Systems with Applications, 40(12):4832 – 4840, 2013. URL: http://www.sciencedirect.com/science/article/pii/ S0957417413001395, doi:http://dx.doi.org/10.1016/j.eswa.2013.02.023. [3] C.J. De Luca. Physiology and mathematics of myoelectric signals. Biomedical Engineering, IEEE Transactions on, BME-26(6):313–325, June 1979. doi:10.1109/TBME.1979.326534. [4] E.A Clancy, E.L Morin, e R Merletti. Sampling, noise-reduction and amplitude estimation issues in surface electromyography. Journal of Electromyography and Kinesiology, 12(1):1 – 16, 2002. URL: http://www.sciencedirect.com/science/article/ pii/S1050641101000335, doi:http://dx.doi.org/10.1016/S1050-6411(01)00033-5. [5] EMG-force relationship. disponível em http://www.ucs.mun.ca/~dbehm/Lab5. htm, acedido pela última vez em 24 de Setembro de 2014. [6] Powered Upper Limb Prostheses. Springer Berlin Heidelberg, 2004. doi:10.1007/978-3642-18812-1. [7] Motor Unit and EMG signal. disponível em http://www.intechopen.com/source/ html/18019/media/image19.png, acedido pela última vez em 24 de junho de 2013. [8] C.J. De Luca. Surface electromyography: Detection and recording. Delsys Inc., 2002. URL: http://delsys.com/Attachments_pdf/WP_SEMGintro.pdf. [9] Richard A. Sherman. Instrumentation Methodology for Recording and Feeding-Back Surface Electromyographi(SEMG) Signals. Applied Psychophysiology and Biofeedback, 28(2):107–119, Junho 2003. [10] Edward A. Clancy, Dario Farina, e Roberto Merletti. Cross-comparison of timeand frequency-domain methods for monitoring the myoelectric signal during a cyclic, forcevarying, fatiguing hand-grip task. Journal of Electromyography and Kinesiology 15, páginas 256–265, 11 2004. doi:10.1016/j.jelekin.2004.11.002. [11] C. Frigo, M. Ferrarin, W. Frasson, E. Pavan, R. Thorsen, et al. EMG signals detection and processing for on-line control of functional electrical stimulation. Journal of Electromyography and Kinesiology 10, 2000. 51
52 REFERÊNCIAS [12] A.M. Husain e A. Husain. A Practical Approach to Neurophysiologic Intraoperative Monitoring. Demos Medical Publishing, 2008. URL: http://books.google.pt/books? id=Gxz22SdPwa4C. [13] Edward A. Clancy, Dario Farina, e Roberto Merletti. Cross-comparison of timeand frequency-domain methods for monitoring the myoelectric signal during a cyclic, forcevarying, fatiguing hand-grip task. Journal of Electromyography and Kinesiology, 15:256– 265, 2005. [14] S. Herle, S. Man, G. Lazea, C. Marcu, P. Raica, e R. Robotin. Hierarchical myoelectric control of a human upper limb prosthesis. Em Robotics in Alpe-Adria-Danube Region (RAAD), 2010 IEEE 19th International Workshop on, páginas 55–60, 2010. doi:10.1109/RAAD.2010.5524609. [15] Shuenn-Yuh Lee, Chih-Jen Cheng, Cheng-Pin Wang, e Shyh-Chyang Lee. A 1-v 8-bit 0.95mw successive approximation adc for biosignal acquisition systems. Em Circuits and Systems, 2009. ISCAS 2009. IEEE International Symposium on, páginas 649–652, May 2009. doi:10.1109/ISCAS.2009.5117832. [16] M.A Oskoei e Huosheng Hu. Myoelectric based virtual joystick applied to electric powered wheelchair. Em Intelligent Robots and Systems, 2008. IROS 2008. IEEE/RSJ International Conference on, páginas 2374–2379, Sept 2008. doi:10.1109/IROS.2008.4650664. [17] John G. Webster. The Measurement, Instrumentation, and Sensors: Handbook. Electrical engineering handbook series. 1999. [18] M. B. I. Reaz, M. S. Hussain, e F Mohd-Yasin. Techniques of emg signal analysis: detection, processing, classification and applications. Biological Procedures Online, 2006. [19] D.F. Hoeschele. Analog-to-digital/digital-to-analog Conversion Techniques. Wiley, 1968. URL: http://books.google.pt/books?id=QYhQkgEACAAJ. [20] Bang-Sup Song. Nyquist-Rate ADC and DAC, chapter 58. Principles and Applications in Engineering. CRC Press, mar 2003. doi:10.1201/9780203008812.ch7. doi:10.1201/9780203008812.ch7. [21] Ieee standard for terminology and test methods for analog-to-digital converters. IEEE Std 1241-2010 (Revision of IEEE Std 1241-2000), páginas 1–139, Jan 2011. doi:10.1109/IEEESTD.2011.5692956. [22] Daniel H. Sheingold. Analog-Digital Conversion Handbook. Englewood Cliffs : PrenticeHall, cop, Third edição, 1986. [23] Brian Betts. A/D and D/A Conversion. Mechatronic System Control, Logic, and Data Acquisition, chapter 31. Taylor & Francis Group,LLC, 2008. [24] Jin Guo, Ji-Feng Zhang, e Yanlong Zhao. Adaptive tracking of a class of first-order systems with binary-valued observations and fixed thresholds. Journal of Systems Science and Complexity, 25:1041–1051, 2012. URL: http://dx.doi.org/10.1007/ s11424-012-1257-0, doi:10.1007/s11424-012-1257-0. [25] McGill KC. EMG signal. Online dataset R005, disponível em http://www.emglab.net, acedido pela última vez em 20 de junho de 2013.