Matlab - proyecto ecg

 
Vista:
sin imagen de perfil
Val: 13
Ha aumentado su posición en 6 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

proyecto ecg

Publicado por mariana (13 intervenciones) el 16/11/2016 03:45:24
Mi nombre es Mariana y soy estudiante de bioingenieria de 5 semestre

Resulta que tengo un proyecto en donde debo diseñar un programa de compresión y descompresión de una señal ECG 2000 datos.

Mi idea para la parte de compresión es que cada 5 números del vector ECG genere un promedio comprimiendo así la señal a 400 datos, estos 400 datos los guardo en un .txt y los envió a X persona con el programa de descompresión .

Cuando X persona lo reciba debe ejecutar el programa de descompresión; mi idea para la descompresión es introducir un vector de 4 ceros en medio de cada numero para remplazar los números que retire al comprimirlo, luego de esto ya tengo el vector del mismo tamaño que el original, y para remplazar los ceros estaba pensando en generar rectas entre numero y numero para que fuera algo "equivalente" al original.

La primera pregunta es que tal le parece la idea? y la segunda pregunta seria que como hago para generar las rectas entre punto y punto ?

adjunto lo que tengo

Muchas gracias por su ayuda

que tenga buen día
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Royeth
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

proyecto ecg

Publicado por Royeth (1818 intervenciones) el 16/11/2016 06:04:07
la primera pregunta de qué tal la idea pues mira aquí y saca tus conclusiones , he cargado un archivo de audio de matlab que trae por defecto ,lo he sometido a dichos tratamientos y puedes ver aquí qué tal se escuchan cuando les aplicas tu método y sacar tus propias conclusiones :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
clear all
load handel
y(73111:end)=[];
f=0:5:length(y);
disp('Escucha la señal original y presiona una tecla para continuar')
sound(y,Fs)
pause
promedios=[];
for k=1:length(f)-1
promedios(k)=mean(y(f(k)+1:f(k+1)));
end
disp('escucha la señal promediada y presiona una tecla para continuar')
sound(promedios,Fs/5)
pause
yy=[];
for k=1:length(promedios)
yy=horzcat(yy,promedios(k),zeros(1,4));
end
yy(end-3:end)=[];
for i=1:5:length(yy)-5
yy(i:i+5)=linspace(yy(i),yy(i+5),5+1);
end
disp('escucha la señal descomprimida según el método que quieres emplear')
sound(yy,Fs)

y la segunda pregunta ya te la responde el código tambien
1
2
3
for i=1:5:length(yy)-5
yy(i:i+5)=linspace(yy(i),yy(i+5),5+1);
end
esta parte del código rellena los zeros linealmente, yo preferiría utilizar un random controlado , eso sí que te tocaría guardar además del promedio la desviación estándar también y te duplica el peso
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar