Electromiografo Final
Electromiografo Final
Electromiografo Final
PROCESAMIENTO DE SEÑAL EN
TIEMPO REAL
Profesor:
Hernan Villafuerte Barreto
Curso:
Metodos numéricos
2016
INTRODUCCIÓN
1
llamado Electromiógrafo que consta de tres etapas fundamentales. La primera etapa consiste
en la adquisición y amplificación de la señal, la segunda es una etapa de filtrado de la señal,
es decir se aplicarán conceptos básicos de electrónica para poder implementar un sencillo
electro miógrafo y la tercera y última etapa consta de la digitalización y muestreo de la señal
para finalmente ser mostrada en pantalla.
OBJETIVO DE TRABAJO:
PROPUESTA DE SOLUCIÓN
HIPÓTESIS:
2
Desarrollar una aplicación en hardware y software de “bajo costo” capaz de detectar la flexión
de los músculos de una persona, con un mínimo error usando sensores de EMG y técnicas de
procesamiento de señales en tiempo real.
El uso del software se ha convertido en una muy buena opción de solución, debido a que es
exacto ya que los integrados y de más elementos de un circuito poseen un margen de error y
sumando todos los errores, se tiene a la salida un error de medición considerable, no tiene
interferencias (como ruido, no le afecta la temperatura, no se daña, etc.), además brinda
herramientas que facilitan la implementación de los bloques (como factor principal los cálculos
matemáticos). Es decir, la utilización de software es la solución a muchos de los problemas que
se presentan en este tipo de aplicaciones.
MARCO TEORICO
ELECTROMIÓGRAFO:
3
La electromiografía, consiste en la medición de potenciales eléctricos creados por la contracción
de los músculos. Internamente, los músculos generan tensiones alrededor de 100mV cuando se
contraen. Las señales típicas EMG superficial (sEMG) para los músculos grandes, como el bíceps,
están alrededor de 2.1mV en amplitud, estas señales sEMG contienen frecuencias que van de 2
Hz hasta los 500 Hz o mayor en algunos casos. Un caso especial del EMG es el ECG
(electrocardiograma), a menudo referido como el EKG (electrokardiograma) debido a su origen
alemán, que es una medida EMG del corazón. Señales de ECG son muy fuertes generalmente
poseen 4.3mV en amplitud.
La unidad motora es un grupo de fibras musculares inervado por una sola neurona motora.
Realizar un simple movimiento requiere la intervención de muchas neuronas tanto sensoriales
como motoras, que trabajando en conjunto logran ejecutar la acción indicada; el
funcionamiento es el siguiente: se genera la orden en el cerebro en forma de un impulso
eléctrico; este impulso viaja a través de la espina dorsal y llega hasta las motoneuronas
responsables de inervar el músculo que realizará la acción estimulando las fibras musculares,
produciendo así la expansión o inhibición del músculo. Cabe mencionar que, para realizar un
movimiento complejo, digamos la extensión o flexión del brazo, intervienen muchas
motoneuronas, y no puede lograrse solo estimulando un solo músculo, el cual está ligado a más
de una UM.
Fibras Musculares:
4
Son las fibras individuales de un músculo los cuales están inervados por las ramificaciones de la
motoneurona. Cuando se excitan, estas fibras producen una fuerza de contracción las cuales en
forma consecutiva genera la fuerza tetánica. Aquella fuerza que nos permite interactuar con el
medio que nos rodea. En la figura se puede observar estas fibras musculares las cuales
conforman el músculo completo.
Sensores
Sensores no invasivos
El sensor no invasivo hace referencia de los sensores EMG que se ubica por encima de la piel,
más no ingresado a través de este órgano; permitiendo un estudio sin agujas que implica un
estricto uso.
5
Los factores que influyen en la perturbación de la sEMG tiene dos clases, siendo estas causas
intrínsecas y extrínsecas, esta última puede ser manejable por el usuario y según la tecnología
usada puede ser atenuado o relativamente eliminado.
Los conjuntos de amplificadores operacionales están configurados con el objetivo de tener una
amplificación alta, con una impedancia alta en la entrada, impedancia baja en la salida, alto
índice de rechazo al modo común, ganancia lineal y bajo índice de offset y mínima corriente en
la entrada.
6
Figura Etapas de un amplificador instrumental basado en amplificadores operacionales y componentes
resistivos
Modelo Matemático
Series de Fourier
Las señales unidimensionales periódicas más simples definidas sobre un continuo son las
sinusoides, 𝑠 (𝑡) 𝑎. 𝑐𝑜𝑠 (2𝑡) o 𝑠(𝑡)𝑎. 𝑠𝑖𝑛 (2𝑡), que se representan con una onda de
amplitud a y cuya frecuencia es .
Serie de Fourier:
7
Aproximación mediante Series de Fourier:
Desde el punto de vista matemático son también funciones, pero ahora definidas sobre un
conjunto discreto {0,1,2,.....,N 1} , donde N es el número total de datos obtenidos.
Representaremos una señal discreta de la forma f [n],n 0,1,2,....,N 1, para distinguirla de una
señal continua.
8
2𝜋
donde i es la unidad imaginaria y 𝑒𝑁 es la N-ésima raíz de la unidad. (Esta expresión se puede
escribir también en términos de una matriz DFT; cuando se escala de forma apropiada se
convierte en una matriz unitaria y Xk puede entonces ser interpretado como los coeficientes
de x en una base ortonormal.)
El cálculo:
9
Filtrado Analógico
Filtro pasa bajo:
Según el diagrama figura, se muestra un circuito RC usado para el filtro de primer orden:
1
𝑉𝑜𝑢𝑡 𝐶𝑠 1 1 𝑉𝑜𝑢𝑡 1
= = = → =
𝑉𝑖𝑛 1 1 + 𝑅𝐶𝑠 1 + 𝜏𝑠 𝑉𝑖𝑛 1 + 𝑗𝜔𝜏
𝑅+
𝐶𝑠
𝜔𝜏
𝜑 = −𝑡𝑎𝑛−1 ( )
1
Respuesta en función a la
frecuencia filtro pasa bajo.
Magnitud en la parte superior,
fase en la parte inferior.
10
El filtro Notch es importante para eliminar el ruido de inducción eléctrica por el cual es prioritario
tener un filtro de con selectividad alta y atenuación considerable para la frecuencia de corte,
para este caso 60Hz.
Siendo las ecuaciones que describen el inductor sintético basados para el diseño del filtro.
𝑅 = 𝑅8 + 𝑅7
𝐿 = 𝐶2 ∗ 𝑅8 ∗ 𝑅7
1
𝑓𝑁𝑂𝑇𝐶𝐻 =
2𝜋√𝐿𝐶
El filtro pasa alto elimina las componentes de baja frecuencia, es también filtro DC, es decir
elimina el offset que está presente ante la salida de cualquier amplificador previo. El circuito se
muestra en la figura.
𝑣𝑖 . 𝑅
𝑉𝑜 =
𝑅 + 𝑍𝑐
𝑉𝑜 𝑅
=
𝑉𝑖 𝑅 + 1
𝑗𝜔𝐶
11
El proyecto cuenta con software y hardware:
Filtrado Filtrado
Amplificacion Digitalizacion
De 1° Digital
De La Señal
Orden Butterworth
Electrodos Y
Adquisicion
De La Señal
HARDWARE SOFTWARE
HARDWARE:
En la parte del hardware vamos a encontrar la placa impresa en la cual van a estar los
integrados INA128PA y el OPA4131, se analizarán sus etapas a continuación:
12
Amplificación
13
𝑉𝑜 = 𝐺 ∗ [𝑉1 + 𝑛 − ( 𝑉2 + 𝑛) ]
Dónde:
50kΩ
𝐺=1+
RG
Para este caso sea 𝑅𝐺 igual a 1KΩ, la ganancia real es de 51 V/V, teniendo como CMRR120
dB y una respuesta en frecuencia dentro de los 200KHz.
Filtrado de 1° Orden
Para iniciar como filtro anti-aliasing, dado que la etapa de acondicionamiento será
digitalizada siendo obligatorio limitar las altas frecuencia según lo estudiado por la teoría de
procesamiento digital. Los valores utilizados para el filtro con una frecuencia de corte a los
530Hz según la ecuación del capítulo II, los valores de los componentes serán de C=100nF y
R=3kΩ. Las respuestas en frecuencia y Fase se observan en la figura.
14
La banda de rechazo es centrada en 60Hz y calibrada según los potenciómetros para ajustar
la atenuación y la frecuencia central de rechazo.
El circuito del Notch tipo Gyrator, tiene 2 potenciómetros los cuales permite ajustar la
atenuación y modificar la banda de rechazo. Si bien la atenuación a dicha frecuencia está
dentro del rango de las señales sEMG, no implica mayor problema según lo indicado.
El filtro pasa alto siendo la última etapa del circuito acondicionador permite una salida
libre de señal de corriente continua con una frecuencia de corte de 20Hz dado que así
lo recomienda. Con valores de C=100nF y R=80kΩ siendo la gráfica de respuesta en
frecuencia en magnitud y fase.
15
En esta etapa la señal que sale del Electromiógrafo va a ser digitalizada al Matlab mediante
el arduino.
La tarjeta Arduino tiene una circuito interno llamado convertidor análogo-digital (también
conocido como ADC, por sus siglas en ingles Analog to Digital Converter) que lee un voltaje
de 0V a 5V y devuelve un número en una escala entre 0 a 1023. El comando analogRead()
retorna el valor del ADC que es aproximadamente proporcional al valor de voltaje aplicado
al pin de entrada analógica
/*
AnalogReadSerial
Reads an analog input on pin 0, prints the result to the serial monitor.
Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.
Una vez que se obtiene la señal es necesaria filtrarla de nuevo para eliminar el ruido provocado
por las perturbaciones causadas medio ambiente y la inducción eléctrica en el circuito.
SOFTWARE:
16
En esta parte veremos la señal ya digitalizada, como hemos visto atreves del hardware solo se
hizo un filtrado de primer orden. Acá implementaremos el Matlab, para el filtrado en segundo
orden y obtener una señal mas limpia.
Matlab permite calcular numéricamente la respuesta en frecuencia de sistemas continuos y
discretos para valores discretos de frecuencia.
La respuesta en frecuencia de un sistema es la transformada de Fourier de su respuesta impulso.
Emplearemos los filtros Butterworth.
*La instrucción para generar un filtro del grado que el usuario desee, así como la manipulación
de la frecuencia de corte.
*El comando para que a partir del grado, tipo y amortiguamiento, se obtengan los polos, zeros
y ganancia que pueda tener el filtro.
A la señal digitalizada se le emplearan los filtros pasa baja, rechaza banda y pasa alta.
17
CODIGO MATLAB PARA RECIBIR LA SEÑAL DEL ARDUINO:
18
FILTRO RECHAZABANDA:
pas=0.01;
t=0:pas:10;
%DEFINIMOS LA FRECUENCIA DE MUESTREO QUE ES EL INVERSO DEL PERIODO
DE LA
%SEñAL ADEMAS DE LA FRECUENCIA DE CORTE QUE ES EL INVERSO DE LA
FRECUENCIA
%DE MUESTREO LA CUAL VA A SER UTILIZADA EN NUESTRO FILTRO Y RESULTA
EL
%INVERSO DEL PERIODO DE LA SEñAL
fm=1/pas;
fs=fm/2;
rp=1;
rs=4;
****
pas1=0.05;
t=0:pas1:250;
ejet=[0:pas:(length(senal1)-1).*pas]./10;
dim=length(senal1).*pas;
spectr=abs(fft(senal1));
[n,wn]=buttord(wp,ws,rp,rs);
[b,a]=butter(n,wn);
[h,f]=freqz(b,a,[],fm);
19
ysig1=filter(b,a,senal1);
plot(ejet,ysig1);
axis([min(ejet) max(ejet) min(ysig1) max(ysig1)]);
xlabel('Tiempo(s)');
title('Senal Filtrada')
ejet=[0:pas:(length(senal)-1).*pas]./10;
plot(ejet,senal);
axis([min(ejet) max(ejet) min(senal) max(senal)]);
xlabel('t(s)');
ylabel('Input(s)')
title('Grafico de la Senal')
pas=0.01;
t=0:pas:10;
20
MUESTRA DE LA SEÑAL FILTRADA:
CONCLUSION:
El costo de este producto para la venta al publico es : $ 4.000
Para la implementación de este quipo se necesitaron dispositivos del extranjero ;
El costo de implementación del producto en bruto : 350 soles
CIRCUITO ESQUEMATICO:
21
FILTRO PASA
22
BAJO
ETAPA DE
AMPLIFICACION
FILTRO
FILTRO PASA
RECHAZO DE
BAJO
BANDA
CIRCUITO IMPRESO:
23