Anda di halaman 1dari 10

1

Universidad Manuela Beltrán. Sebastian Balaguera,Santiago Gonzalez, jeisson prieto . Laboratorio 5 (Procesamiento
Digital de Señales)

ANÁLISIS ESPECTRAL DE LA SEÑAL ECG


Sebastian Balaguera,Santiago Gonzalez, Jeisson prieto solano
Universidad Manuela Beltrán
Bogotá, Colombia
Resumen— En esta práctica de laboratorio se diseñará y Es una plataforma la cual incluye un gran rango de utilidades
elaborará algoritmos en Matlab, haciendo ejercicios para el así mismo proporciona un entorno para el análisis y procesos
manejo de datos implicando conocimientos previos para un de diseño en la cual se puede manipular señales digitales,
elaborar simulaciones y una interfaz en Matlab por medio de filtros y mas en una interfaz gráfica interactiva.[1]
Guide utilizando diagramas a partir de transformaciones en el El fin de esta práctica es doble primero se pondrá a prueba la
tiempo y/o la amplitud, con el objetivo de construir un ECG a creatividad y habilidad del ingeniero en la elaboración, e
partir de ondas sinusoidales con diferentes frecuencias, para implementación de un código que permita resolver problemas
después sumarle el ruido gaussiano y de artefactos, los cuales en transformaciones del tiempo y/o la amplitud de señales ;
están presentes en un examen de electrocardiografía. Después además se consolidarán y aplicaran los conceptos básicos de
se calculará la FFT de la señal de ECG y de la señal sumada programación para la creación de gráficas que permita
con ruido; Así relacionando elementos de la plataforma de interpretar los principios de la técnica específica elaborando
programación generando algoritmos para el manejo de datos y simulaciones y diagramas.; Analizando los datos obtenidos
la solución de problemas básicos. generando algoritmos para el manejo de datos a partir de la
recreación de las señales obteniendo su fórmula manualmente.
Índice de Términos— ECG, Ruido, FFT, MATLAB. [8]

Abstract— In this laboratory practice algorithms will be II. OBJETIVOS


designed and developed in Matlab, making exercises for data
management involving prior knowledge for a simulation and
● Conocer el concepto de una señal, así como su
an interface in Matlab through Guide using diagrams from
composición para la obtención de diagramas y
transformations in time and / or amplitude , with the objective simulaciones a partir de Matlab
of constructing an ECG from sinusoidal waves with different
frequencies, to then add the Gaussian noise and artifacts, ● Implementar los comandos de Matlab para el manejo
which are present in an electrocardiography examination. de señales a partir de transformaciones en el tiempo
Then the FFT of the ECG signal and the signal added with y/o la amplitud.
noise will be calculated; Thus relating elements of the
programming platform generating algorithms for the handling ● Generar algoritmos de programación para dar
of data and the solution of basic problems. solución a problemas planteados

Key words— ECG, Noise, FFT, MATLAB. III. MARCO TEÓRICO

1. Señales
I. INTRODUCCIÓN
El mundo real que rodea la aplicación de la tecnología son Una señal puede ser definida como la observación de una
grandes sistemas que interactúan de acuerdo al tipo de magnitud fısica, que contiene información en este caso en
alimentación, el parámetro variable y según la magnitud de función de variables independientes de tiempo y espacio, Esta
medida. señal debe de tener los procesos observados. De acuerdo a esta
En esta rama de la tecnología mezcla múltiples disciplinas en información será modificada con respecto a unos requisitos
dependiendo la aplicación requerida.. [7]
este caso la medicina y la electrónica podemos encontrar el
procesamiento digital de señales; Se trata de la representacion,
a. Sistemas discretos
transformacion y manipulacion de señales y de la importancia
que contienen. Las señales pueden ser discretas en el tiempo o continuas,
El software utilizado para la implementación de las Siendo infinita en un intervalo muy pequeño de tiempo si es
transformaciones básicas de las señales en el tiempo así continuo o un número finito de muestras en un intervalo de
mismo modificando su amplitud en esta práctica es MATLAB, tiempo si es discreto. [5]
2
Universidad Manuela Beltrán. Sebastian Balaguera,Santiago Gonzalez, jeisson prieto . Laboratorio 5 (Procesamiento
Digital de Señales)

Un sistema discreto es un algoritmo que permite transformar transformación de una señal a otra). Junto con el
una secuencia en otra. Este puede ser estatico o dinamico al procesamiento de señales un sistema le da una modificación
depender de una o más variables las cuales pueden ser la de una señal digital en un sistema para resaltar o eliminar
secuencia de entrada o de salida de un índice, Siendo Estático diferentes patrones o características de la señal con su
si solo depende de la secuencia de la entrada y dinámico si respectiva aplicación implementado en un circuito electrónico
depende de las dos secuencias.[15] (o virtual) así mismo la utilización del manejo de datos a
En este caso la relación entrada-salida, el sistema discreto y su través de algoritmos de software. [9]
estructura interna no nos interesa, pero la importancia de un
sistema discreto es la disposición que va tomar la entrada.[8] a. Estructura
A lo largo de la historia de la ingeniería se ha descubierto que
las señales poseen una propiedad fundamental en la cual sus
valores se aprecian por ser continuos (Reales) , esta
característica que es propia de las senales es analogica.
Pero el procesamiento digital de señales como su nombre lo
indica requiere que la entrada sea digital así como se muestra
en la figura 1.
Figura 1: Relación Entrada/Salida de un sistema discreto

b. Conversión de datos

Figura 3. Procesamiento digital de una señal analogica

En este proceso los siguientes pasos son necesarios para el


procesamiento digital de una señal analogica:

● Entra una señal de entrada analogica


Figura 2: Pasos basicos en la conversión Analogica/Digital ● La senal es digitalizada en una conversiona analogica
-digital, [10]
● Muestreo: El muestreo consiste en el hecho de la ● Esto ocurre en microcontroladores hasta circuitos
tomar datos de una señal de variable continua a otra diseñados para un tipo de aplicación en específica
variable discreta a una frecuencia constante.[11] mientras se implementan en un software configurable
● Cuantificación: Es la conversión de la señal de ● Así mismo se desea analizar nuevamente la señal
variable discreta la cual posee valores continuos a para este caso es necesario realizar un convertidor
otra señal de variable discreta pero que tenga valores digital-analogico (Esta etapa puede ser omitida si se
discretos. [6] desea representar digitalmente). [12]
● Codificación: Después de la cuantificación los
valores de amplitud que se tomaron; se asignan en 3. MATLAB
una forma binaria , para posteriormente poder
representar los valores cuantificados.[7] a. Algoritmos
Conjunto ordenado de operaciones sistemáticas que permite
c. Ventajas y desventajas del procesamiento hacer un cálculo y hallar la solución de un tipo de problemas,
digital en el cual junto al procesamiento digital de señales tiene varias
areas de aplicacion como lo es el reconocimiento, cifrado,
● Mayor pérdida de información considerable con filtración (Eliminación de ruido), inferencia de patrones para
respecto a una señal analogica a menos que la señal la identificación de señales y el contenido de las mismas
sea digitalizada sin perder información. además de realizar tareas de reconocimiento para el registro de
● Mayor confiabilidad, económico, Almacenamiento anomalías, entre otras. [11]
● Mayor flexibilidad en el diseño b. Ventajas
● Los sistemas analogicos carecer de asegurar un
comportamiento idéntico, los digitales muestran una ● Permite al usuario una mayor facilidad programado
mayor característica de reproducibilidad.[14] ya sea estructurado o orientada a objetos
● Facilita al usuario su tarea con su caja de
2. Sistemas herramientas (Toolboxes)
Un sistema manifiesta elementos que tienen relación entre sí ; ● La manipulación de señales se trabaja con vectores y
Generando un conjunto de datos intercambiando información, matrices [13]
materia o energía para cumplir su meta. (En este caso la
3
Universidad Manuela Beltrán. Sebastian Balaguera,Santiago Gonzalez, jeisson prieto . Laboratorio 5 (Procesamiento
Digital de Señales)

4. Electrocardiografía temperatura en un tiempo dado a partir de la distribución en el


instante inicial. Inventando el método de separación de
Estudia el registro de la actividad eléctrica cardiaca mediante variables, conocido actualmente como el método de Fourier
el electrocardiógrafo. Esta actividad se registra en forma de [4].
una línea que presenta distintas inflexiones que corresponden Fourier toma los coeficientes dados de unos datos iniciales y
al paso del estímulo eléctrico desde el lugar donde los convierte en una serie trigonométrica. El desarrollo las
normalmente se origina, el nodo sinusal, hasta los ventrículos diferentes fórmulas, utilizando sistemas lineales de infinitas
a través del sistema específico de conducción [1]. ecuaciones [4]. Una de las aplicaciones de las series de
El sistema de conducción está formado por el nodo sinusal, las Fourier, se dan en el campo del procesamiento de las señales
vías preferenciales de conducción interauricular e internodal, de naturaleza transitoria y no periódica como las de EMG,
el nodo auriculoventricular (AV), el haz de His, las dos utilizando técnicas básicas y sencillas como el análisis
temporal, después se realizan un análisis espectral mediante la
ramas del haz de His y sus divisiones, con sus respectivas transformada de Fourier. El análisis de señales biomédicas se
redes de Purkinje. Cuando el estímulo llega a la unión realizan técnicas basadas en la transformada de Fourier [5].
Purkinje-músculo, se produce el acoplamiento excitación- El análisis espectral se utiliza para pasar la señal a
contracción [2]. componentes frecuenciales con el fin de realizar un estudio
La actividad cardíaca, implica primero la despolarización, más preciso de esta [6]. En este trabajo se pretende obtener los
después su repolarización y más tarde, una fase de reposos componentes frecuenciales de una señal de ECG Y EMG, con
eléctrico (polarización). La estructura cardíaca esta polarizada la finalidad de poner en práctica los conceptos de
cuando existe un equilibrio entre las cargas eléctricas positivas transformadas de Fourier y su importancia en el
de la superficie externa y las cargas eléctricas negativas del procesamiento de señales biomédicas.[16]
interior celular. La despolarización celular significa la pérdida
de este equilibrio, por hacerse negativo el exterior celular y
positivo el interior, la repolarización celular significa la
recuperación del equilibrio perdido [1]. IV. RESULTADOS Y ANÁLISIS
Por cada ciclo cardíaco se registran sucesivamente en el ECG
las ondas de despolarización auricular (Onda P), un espacio La práctica realizada se basó en un análisis espectral de la
recto que corresponde al paso del estímulo por el sistema His- señal de ECG, que se muestra a través de un GUIDE en el
Purkinje, la despolarización ventricular (complejo QRS) y la software MATLAB. En primera medida se realizó la suma de
repolarización ventricular (segmento ST y onda T) para, a aproximadamente 20 señales sinusoidales distribuidas para
continuación, registrarse un intervalo rectilíneo representadas cada una de las ondas del ECG. Como se puede
correspondiente al reposo eléctrico diastólico [2]. observar en el anexo, que muestra el código desarrollado, se
Normalmente, se registran estas diferentes ondas desde propuso una frecuencia de muestreo de 400 Hz para la señal
diferentes derivaciones mediante electrodos. En el momento resultante. Para generar cada una de las ondas del ECG, se
de realizar el registro del ECG, se presenta ruido el cual es determinó la frecuencia a través de la duración de cada
considerado como una señal ajena a la señal de interés y que intervalo normal en el tiempo, implementando así la onda p, la
es susceptible de provocar un error en el sistema de medida. onda pqr, onda s onda t. La gráfica de la suma de todas las
Este tipo de ruido se puede clasificar en externo o interno al ondas sinusoidales se muestra en la Figura 1, la cual se genera
sistema de medida. Las fuentes de ruido e interferencia que se al pulsar el pushbutton 1, ya que se implementó el algoritmo
encuentran habitualmente en un registro son [3]: en su respectivo Callback.

Fuentes de ruido:
1. Interfaz electrodo-paciente
2. Sistema de medida

Fuentes de interferencia:

1. Red de distribución eléctrica


2. Otras fuentes: Ordenadores, monitores, equipos
electrónicos.

5. FFT

Las series de Fourier surgieron en 1802, dando las leyes de Figura 1. Ondas sinusoidales y señal de ECG.
propagación del calor, en las tres obras que realizó Fourier
comienza deduciendo la ecuación que gobierna la difusión del Para generar la señal del ECG, se sumó cada una de las
calor. Después resuelve el problema de la distribución de señales de las ondas del ECG , en el código se evidencia el uso
4
Universidad Manuela Beltrán. Sebastian Balaguera,Santiago Gonzalez, jeisson prieto . Laboratorio 5 (Procesamiento
Digital de Señales)

de un ciclo for para la onda con el fin de cumplir la


metodología , así mismo se variarán valores de amplitud y
frecuencia de la onda P y se obtuvo la señal mostrada en la
figura 2, la cual tiene una amplitud de aproximadamente 2
mV.

Figura 4. Señal de ruido + señal ECG

En las figuras 5 y 6 se observa la gráfica generada en el


GUIDE cuando se implementa un algoritmo para graficar de
manera discreta la transformada rápida de Fourier de la señal
original de ECG y de la señal de ECG contaminada con ruido.
Figura 2. señal de ECG a partir de la suma de ondas sinusoidales.
Así mismo para centralizarlo; El algoritmo utilizado para
ambos casos es el siguiente:
Posteriormente se configuró el siguiente axes del GUIDE para
que a través del algoritmo:

y =amp*rand(size(x)); global senalecg


fftecg=fft(senalecg); % se realiza la transformada de Fourier
de la señal. %
plot(y)
fftecg=fftshift(fftecg); % El uso de “Fftshift” para centralizar
datos
Se genera una señal de ruido gaussiano, de amplitud (mV)
ingresada por el usuario, la cual se guarda en la variable amp. % 2nd half are complex conjugates
Como se observa en la Figura 3, se ingresa una amplitud de n = size(fftecg,2)/2; % Se define que la segunda mitad son
conjugados complejos%
ruido de 2 Mv, y se obtiene la gráfica mostrada, al accionar el
dt = 1/100; %tasa de muestreo%
correspondiente PushButton.
% absolute value and normalize
freq = (0:79)/(2*n*dt); %se define frecuencia segun dt%
plot(freq,amp_spec(1:80)); % gráfica
figure;
plot(fftecg);
xlabel('Frequency (Hz)');
ylabel('Amplitude');
bar(fftecg);

Figura 3. Señal de Ruido Gaussiano.

En la figura 4 se observa la gráfica que se genera al sumar la


señal original de ECG y la señal con Ruido Gaussiano.

Figura 5. FFT de Señal de ECG


5
Universidad Manuela Beltrán. Sebastian Balaguera,Santiago Gonzalez, jeisson prieto . Laboratorio 5 (Procesamiento
Digital de Señales)

no se logran captar la totalidad de los datos, impidiendo la


visualización de la señal, afectando los análisis que se le
quieren hacer.

● Justifique qué frecuencia de muestreo escogería


para una señal ECG, EEG, EMG, Pletismografía,
electrooculografía y potenciales evocados visuales.

Tipo de señal Frecuencia de muestreo

ECG 5 Hz

EEG 250 Hz
Figura 6. FFT de Señal de ECG + Ruido EMG 200 Hz
Finalmente se configura junto a las gráficas mostradas en las
Pletismografía 6HZ
Figura 2 y 4 un Pushbutton para cada uno llamado
EXPORTAR, en el cual se desarrolla en su callback el Electrooculograma 1 Hz
algoritmo:
Potenciales 1 Hz
xlswrite ('archivoecg.xlsx', senalecg , 'Hoja1', 'A1'); %Escribe evocados visuales
en un archivo de Word los datos obtenidos del vector senalecg

xlswrite ('archivoecgruido.xlsx', suma , 'Hoja1', 'A1'); Para la señal de ECG se toma una frecuencia mínima de 5 Hz
%Escribe en un archivo de Word los datos obtenidos del debido a que el periodo normal de la señal que se lleva a cabo
vector suma es de 425 Hz.

Por medio de estos algoritmos se obtiene en un archivo plano, Para la señal de EEG se propone una frecuencia de muestreo
en este caso en un archivo de Excel los datos obtenidos en la de 250 Hz.
gráfica original de ECG y la señal contaminada con ruido Para la señal de EMG se toma una frecuencia de muestreo de
gaussiano. 200 Hz Como mínimo debido a que el periodo de la señal es
aproximadamente 10 ms , dando una frecuencia se 100 Hz.
V. CUESTIONARIO Se plantea que la frecuencia de muestreo para la
● Explique qué sucede cuando la frecuencia de pletismografía sea de 6 Hz, debido a que este examen se mide
muestreo está muy por debajo de la señal a el volumen de aire que presenta los pulmones.
muestrear.
Para las dos últimas señales se plantea frecuencias de
La frecuencia de muestro de una señal, es la generación de un muestreo de 1 Hz, debido a que estas señales son obtenidas de
gráfico continuo a partir de una señal analógica a través de un los ojos y sus periodos de cambio son mayores comparados a
convertidor digital. La conversión analógica/digital y la los de otras bioseñales.
reconstrucción del gráfico como una señal continua depende
fundamentalmente de la frecuencia de muestreo, es decir, el VI. CONCLUSIONES
número de puntos que son necesarios para que el convertidor
● Tener aplicaciones que permitan simular señales
digital entienda y registre la señal. Para la digitalización de
biológicas con variación de parámetros, permitirá a
una señal, esta debe ser muestreada con una frecuencia por lo
los ingenieros biomédicos calibrar adecuadamente
menos el doble del componente de máxima frecuencia en la
equipos médicos, evitando el uso de dispositivos
señal. Si la frecuencia de muestreo es menor a la mínima
externos como el Fluke.
establecida por el teorema de Shannon/Nyquist, la resultante
● La interfaz de Matlab permite la interacción del
será una gráfica distorsionada y su contenido se perderá. [7]
usuario a parámetros y variables matemáticas para
poder simular señales biológicas, así mismo se puede
● Explique qué sucede cuando la frecuencia de
relacionar con otras interfaces como Labview y
muestreo es la mitad de la señal a muestrear.
Arduino.
● Por último, como se pudo observar, estableciendo
En los casos cuando se presenta una frecuencia de muestreo
adecuadamente las funciones matemáticas y usando
menor a la frecuencia de la señal y para la hipótesis planteada,
las series de Fourier se puede establecer cualquier
6
Universidad Manuela Beltrán. Sebastian Balaguera,Santiago Gonzalez, jeisson prieto . Laboratorio 5 (Procesamiento
Digital de Señales)

tipo de señal, inclusive si esta es muy compleja, se http://repositorio.utp.edu.co/dspace/bitstream/


puede acudir a la transformada de Fourier para 1059/91/3/6213822A473as.pdf
conocer el espectro de frecuencia de las señales [4] J. H. Alonso, «Historia de las series de Fourier,» La
sinusoidales que la componen. Gaceta de la RSME, vol. 10, nº 3, pp. 651-688, 2007.
[5] H. Romo, «Análisis de Señales EMG Superficiales y su
VII. CAUSAS DE ERROR Aplicación en Control de Prótesis de Mano,» Red de
Revistas Científicas de América Latina y el Caribe,
● Utilizar una sintaxis incorrecta al momento de España y Portugal, vol. 4, nº 1, pp. 127-136, 2007.
desarrollar un algoritmo que dé solución a un [6] M. Canals, «Historia de la resonancia magnética de
problema, debido a que parámetros sencillos al Fourier,» Revista Chilena, vol. 14, nº 1, pp. 39-45, 2008.
momento de programar puede generar errores que [7] "Introducción al Procesamiento digital de Señales",
impidan la implementación del programa, es Elai.upm.es, 2018. [Online]. Available:
necesario investigar y aprender la sintaxis adecuada http://www.elai.upm.es/webantigua/spain/Publicaciones/p
de algoritmos y comandos que proporciona Matlab. ub01/intro_procsdig.pdf. [Accessed: 09- Feb-
2018].Ashlock, D & Warren, A. Guía de
● Es necesario conocer las características generales de acondicionamiento de señales para ingenieros. (2015).
cada comando que se va a utilizar dentro del Recuperado de:
algoritmo, así como sus respectivas funciones, debido ftp://ftp.ni.com/evaluation/signal_conditioning/23807_En
a que se puede implementar un comando de manera gineer_s_guide_to_signal_conditioning_Spanish_localisat
incorrecta que genere errores en el algoritmo o una ion_HR.pdf
solución poco esperada para resolver un problema. [8] D. Alvarado Moya, "Procesamiento Digital de Señales",
2018. [Online]. recuperado de
:http://www.ie.itcr.ac.cr/palvarado/PDS/pds.pdf.
VIII. APLICACIÓN PROFESIONAL [Accesado el: 28- Feb- 2018].
Los comandos utilizados en esta práctica son una base [9] Itlalaguna.edu.mx, 2018. [Online]. Available:
importante para entender el procesamiento digital de señales y http://www.itlalaguna.edu.mx/academico/carreras/electro
aplicar estos conocimiento profesionalmente en el campo de nica/opteca/OPTOPDF3_archivos/UNIDAD3TEMA1.PD
Ingeniería Biomédica para el diseño e implementación de F. [Accessddo: 28- Feb- 2018].
algún tipo de software o aplicación que permita realizar un
análisis detallado de señales interpretando los principios de la [10] Mathworks.inc (2017) Signal Processing Toolbox.
técnica específica elaborando simulaciones y diagramas; Recuperado de:
usando transformaciones de variables, desplazamientos de https://es.mathworks.com/products/signal.html
tiempo y así poder obtener datos e información relevante por [11] Chambi P. (2011) Procesamiento digital de señales con
medio algoritmos desarrollados en Matlab, además es posible Matlab. Recuperado de:
también llevar a cabo algoritmos que estudien patrones https://es.slideshare.net/lonely113/procesamiento-digital-
relacionados a imágenes y señales y detectar diferentes de de-seales-con-matlab
patologías médicas gracias a la comparación entre una señal [12] W. Stanley, G. Dougherty and R. Dougherty, Digital
tomada y bases de datos guardadas en este software . Además, signal processing. Reston, Va.: Reston Pub. Co., 1984, pp.
con las herramientas que proporciona el Signal processing 3-6.
toolbox de Matlab es posible llevar a cabo el modelado de [13] ]"Actividad 2 - Transformaciones y Operaciones Basicas
señales con el fin de desarrollar una descripción del de Senales", Scribd, 2018. [Online]. Recuperado de:
comportamiento de un proceso observado y proporcionar un https://es.scribd.com/doc/210641359/Actividad-2-
análisis a través de la información entregada lo cual es útil Transformaciones-y-Operaciones-Basicas-de-Senales.
para corroborar o detectar diferentes casos médicos. [Accesado el: 08- Mar- 2018].
[14] "Procesamiento digital de señales en tiempo real con
IX. REFERENCIAS Matlab", Ingenierobeta.com, 2018. [Online]. Recuperado
dehttp://ingenierobeta.com/procesamiento-digital-de-
senales-tiempo-real-matlab/. [Accesado el: 08- Mar-
.
2018].
[1] Malvino, P. Miller, M. Zbar, B. (2001).Prácticas de [15] "TRANSFORMACIÓN DE LA VARIABLE
electrónica. México D.F. Séptima edición. Mc Graw Hill, INDEPENDIENTE", Scribd, 2018. [Online]. Recuperado
Inc. de:https://www.scribd.com/doc/34186123/TRANSFORM
[2] Azcona, L. (S.f). Libro del Corazón. Cap. 4.Recuperado ACION-DE-LA-VARIABLE-INDEPENDIENTE.
de: http://www.fbbva.es/TLFU/microsites/salud_car [Accesado el: 08- Mar- 2018].
dio/mult/fbbva_libroCorazon_cap4.pdf [16] "3 Sistemas Discretos", Scribd, 2018.
[3] Osorio, L. (2007). Acondicionamiento de Señales [Online].Recuperadodehttps://es.scribd.com/doc/4324430
Bioeléctricas. Recuperado de: 8/3-Sistemas-Discretos. [Accesado el: 09- Mar- 2018].
7
Universidad Manuela Beltrán. Sebastian Balaguera,Santiago Gonzalez, jeisson prieto . Laboratorio 5 (Procesamiento
Digital de Señales)

[17] S. Mitra, Procesamiento de señales digitales. México: end


McGraw Hill, 2007, pp. 88-91.
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State,
varargin{:});
ANEXOS else
gui_mainfcn(gui_State, varargin{:});
end
1. Código % End initialization code - DO NOT EDIT

function varargout = guideguia5_final(varargin)


% --- Executes just before guideguia5_final is made visible.
% GUIDEGUIA5_FINAL MATLAB code for
function guideguia5_final_OpeningFcn(hObject, eventdata,
guideguia5_final.fig
handles, varargin)
% GUIDEGUIA5_FINAL, by itself, creates a new
% This function has no output args, see OutputFcn.
GUIDEGUIA5_FINAL or raises the existing
% hObject handle to figure
% singleton*.
% eventdata reserved - to be defined in a future version of
%
MATLAB
% H = GUIDEGUIA5_FINAL returns the handle to a new
% handles structure with handles and user data (see
GUIDEGUIA5_FINAL or the handle to
GUIDATA)
% the existing singleton*.
% varargin command line arguments to guideguia5_final
%
(see VARARGIN)
%
GUIDEGUIA5_FINAL('CALLBACK',hObject,eventData,han
% Choose default command line output for guideguia5_final
dles,...) calls the local
handles.output = hObject;
% function named CALLBACK in
GUIDEGUIA5_FINAL.M with the given input arguments.
% Update handles structure
%
guidata(hObject, handles);
% GUIDEGUIA5_FINAL('Property','Value',...) creates a
new GUIDEGUIA5_FINAL or raises the
% UIWAIT makes guideguia5_final wait for user response
% existing singleton*. Starting from the left, property
(see UIRESUME)
value pairs are
% uiwait(handles.figure1);
% applied to the GUI before
guideguia5_final_OpeningFcn gets called. An
% unrecognized property name or invalid value makes
% --- Outputs from this function are returned to the
property application
command line.
% stop. All inputs are passed to
function varargout = guideguia5_final_OutputFcn(hObject,
guideguia5_final_OpeningFcn via varargin.
eventdata, handles)
%
% varargout cell array for returning output args (see
% *See GUI Options on GUIDE's Tools menu. Choose
VARARGOUT);
"GUI allows only one
% hObject handle to figure
% instance to run (singleton)".
% eventdata reserved - to be defined in a future version of
%
MATLAB
% See also: GUIDE, GUIDATA, GUIHANDLES
% handles structure with handles and user data (see
GUIDATA)
% Edit the above text to modify the response to help
guideguia5_final
% Get default command line output from handles structure
varargout{1} = handles.output;
% Last Modified by GUIDE v2.5 04-May-2018 22:38:04

% Begin initialization code - DO NOT EDIT


% --- Executes during object creation, after setting all
gui_Singleton = 1;
properties.
gui_State = struct('gui_Name', mfilename, ...
function axes1_CreateFcn(hObject, eventdata, handles)
'gui_Singleton', gui_Singleton, ...
% hObject handle to axes1 (see GCBO)
'gui_OpeningFcn',
% eventdata reserved - to be defined in a future version of
@guideguia5_final_OpeningFcn, ...
MATLAB
'gui_OutputFcn',
% handles empty - handles not created until after all
@guideguia5_final_OutputFcn, ...
CreateFcns called
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
% Hint: place code in OpeningFcn to populate axes1
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
8
Universidad Manuela Beltrán. Sebastian Balaguera,Santiago Gonzalez, jeisson prieto . Laboratorio 5 (Procesamiento
Digital de Señales)

x1=0.01:1/Fs1:2;
% --- Executes on button press in pushbutton1. x1=x1+0.05;
function pushbutton1_Callback(hObject, eventdata, as1=0.2;
handles) bs1=(2*l)/0.066;
% hObject handle to pushbutton1 (see GCBO) ns1=100;
% eventdata reserved - to be defined in a future version of s11=(as1/(2*bs1))*(2-bs1);
MATLAB s21=0;
% handles structure with handles and user data (see for i = 1:ns1
GUIDATA) s1=(((2*bs1*as1)/(i*i*pi*pi))*(1-
axes(handles.axes1); cos((i*pi)/bs1)))*cos((i*pi*x1)/l);
s21=s21+s1;
Fs=400; end
x=0.01:1/Fs:2; sonda1=-1*(s11+s21);

%% plot(sonda1)
%onda p
Fs=400;
l=25/72; x=0.01:1/Fs:2;
ap=0.25; aqrs=1.6;
x=x+0.30; bqrs=(2*l)/0.11;
bp=(2*l)/0.09; nqrs=100;
np=100; qrs1=(aqrs/(2*bqrs))*(2-bqrs);
p1=1/l; qrs2=0;
p2=0; for i = 1:nqrs
for i = 1:np qrs=(((2*bqrs*aqrs)/(i*i*pi*pi))*(1-
p=(((sin((pi/(2*bp))*(bp-(2*i))))/(bp- cos((i*pi)/bqrs)))*cos((i*pi*x)/l);
(2*i))+(sin((pi/(2*bp))*(bp+(2*i))))/(bp+(2*i)))*(2/pi))*cos((i*pi qrs2=qrs2+qrs
*x)/l); end
p2=p2+p; qrsonda=(qrs1+qrs2);
if(p2<=20)
figure; e=sonda1+qrsonda;
plot(p2); figure;
end plot(e);
end
%%
pwav1=p1+p2; % % complejo qrs
% aqrs=1.6;
ponda=ap*pwav1; % bqrs=(2*l)/0.11;
figure; % nqrs=100;
plot(ponda) % qrs1=(aqrs/(2*bqrs))*(2-bqrs);
% qrs2=0;
%% % for i = 1:nqrs
%onda q % qrs=(((2*bqrs*aqrs)/(i*i*pi*pi))*(1-
% l=30/72 cos((i*pi)/bqrs)))*cos((i*pi*x)/l);
% x=x+0.166; % qrs2=qrs2+qrs;
% aq=0.025; % end
% bq=(2*l)/0.066; % qrsonda=qrs1+qrs2;
% nq=100; % plot(qrsonda);
% q1=(aq/(2*bq))*(2-bq); %%
% q2=0; %onda s
% for i = 1:nq l=30/72;
% q=(((2*bq*aq)/(i*i*pi*pi))*(1- x=x-0.09;
cos((i*pi)/bq)))*cos((i*pi*x)/l); as=0.25;
% q2=q2+q; bs=(2*l)/0.066;
% end ns=100;
% qonda=-1*(q1+q2); s1=(as/(2*bs))*(2-bs);
% plot(qonda); s2=0;
%% for i = 1:ns
%Q s=(((2*bs*as)/(i*i*pi*pi))*(1-cos((i*pi)/bs)))*cos((i*pi*x)/l);
l=30/72; s2=s2+s;
Fs1=400; end
9
Universidad Manuela Beltrán. Sebastian Balaguera,Santiago Gonzalez, jeisson prieto . Laboratorio 5 (Procesamiento
Digital de Señales)

sonda=-1*(s1+s2);
figure; % Hint: edit controls usually have a white background on
plot(sonda) Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
%% get(0,'defaultUicontrolBackgroundColor'))
%onda t set(hObject,'BackgroundColor','white');
at=0.35; end
x=x-0.2-2;
bt=(2*l)/0.142;
nt=100; % --- Executes on button press in pushbutton3.2
t1=1/l; function pushbutton3_Callback(hObject, eventdata,
t2=0; handles)
for i = 1:nt % hObject 12 handle to pushbutton3 (see GCBO)
t=(((sin((pi/(2*bt))*(bt-(2*i))))/(bt- % eventdata re1served - to be23 defined in a future
(2*i))+(sin((pi/(2*bt))*(bt+(2*i))))/(bt+(2*i)))*(2/pi))*cos((i*pi*x version of MATLAB
)/l); % handles s3tructure with handles a3nd user data (2see
t2=t2+t; GUIDATA)
end %%
twav1=t1+t2; %ruido + ecg
tonda=at*twav1; Fs=400;
figure; x=0.01:1/Fs:2;
plot (tonda) global amp
global y;
%% axes(handles.axes3);
%suma señal y =amp*randn(size(x));
%señales utilizadas plot(y);
plot(t,ponda,t,e,t,sonda,t,tonda); xlabel('Tiempo(s)')
ylabel('Amplitud(mV)')
axes(handles.axes2);
global senalecg; % --- Executes on button press in pushbutton4.
senalecg=ponda+e+sonda+tonda; function pushbutton4_Callback(hObject, eventdata,
plot(senalecg); handles)
% hObject handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
function edit1_Callback(hObject, eventdata, handles) % handles structure with handles and user data (see
% hObject handle to edit1 (see GCBO) GUIDATA)
% eventdata reserved - to be defined in a future version of axes(handles.axes4);
MATLAB global y;
% handles structure with handles and user data (see global senalecg;
GUIDATA) global suma;
global amp suma=senalecg + y;
amp=str2double(get(hObject,'String')); plot(suma);
xlabel('Tiempo(s)')
ylabel('Amplitud(mV)')

% Hints: get(hObject,'String') returns contents of edit1 as


text % --- Executes on button press in pushbutton5.
% str2double(get(hObject,'String')) returns contents of function pushbutton5_Callback(hObject, eventdata,
edit1 as a double handles)
% hObject handle to pushbutton5 (see GCBO)
% eventdata reserved - to be defined in a future version of
% --- Executes during object creation, after setting all MATLAB
properties. % handles structure with handles and user data (see
function edit1_CreateFcn(hObject, eventdata, handles) GUIDATA)
% hObject handle to edit1 (see GCBO) axes(handles.axes5);
% eventdata reserved - to be defined in a future version of global senalecg
MATLAB fftecg=fft(senalecg);
% handles empty - handles not created until after all fftecg=fftshift(fftecg);
CreateFcns called % 2nd half are complex conjugates
10
Universidad Manuela Beltrán. Sebastian Balaguera,Santiago Gonzalez, jeisson prieto . Laboratorio 5 (Procesamiento
Digital de Señales)

n = size(fftecg,2)/2;
dt = 1/100; figure ;
% absolute value and normalize plot (abs(ffty)); grid on
freq = (0:79)/(2*n*dt); xlabel('Frequency (Hz)');
figure; ylabel('Amplitude');
plot(fftecg); bar (abs(ffty));
xlabel('Frequency (Hz)');
ylabel('Amplitude');
bar(fftecg); % --- Executes on button press in pushbutton7.
function pushbutton7_Callback(hObject, eventdata,
% --- Executes on button press in pushbutton6. handles)
function pushbutton6_Callback(hObject, eventdata, % hObject handle to pushbutton7 (see GCBO)
handles) % eventdata reserved - to be defined in a future version of
% hObject handle to pushbutton6 (see GCBO) MATLAB
% eventdata reserved - to be defined in a future version of % handles structure with handles and user data (see
MATLAB GUIDATA)
% handles structure with handles and user data (see global senalecg
GUIDATA) xlswrite ('archivoecg.xlsx', senalecg , 'Hoja1', 'A1');
axes(handles.axes6);
global y; % --- Executes on button press in pushbutton8.
ffty=fft(y); function pushbutton8_Callback(hObject, eventdata,
ffty=fftshift(ffty); handles)
% 2nd half are complex conjugates % hObject handle to pushbutton8 (see GCBO)
n = size(ffty,2)/2; % eventdata reserved - to be defined in a future version of
dt = 1/100; MATLAB
% absolute value and normalize % handles structure with handles and user data (see
amp_spec2 = (ffty)/n; GUIDATA)
freq2 = (0:79)/(2*n*dt);
figure; global suma
plot(ffty); grid on xlswrite ('archivoecgruido.xlsx', suma , 'Hoja1', 'A1');
xlabel('Frequency (Hz)');
ylabel('Amplitude');
bar(ffty);
2. Mapa conceptual