WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Abstand zwischen Maxima im autokor. Phonokardiogramm

 

Feline

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.04.2015, 15:56     Titel: Abstand zwischen Maxima im autokor. Phonokardiogramm
  Antworten mit Zitat      
Hallo zusammen,

wir haben eine Aufnahme von einem Herzschlag erhalten und sollen diese Wave- Datei in Matlab analysieren.
Wir haben die Datei quadriert, um nur positive Werte zu erhalten, danach gedownsampelt, um den Graph zu glätten. Anschließend haben die Werte autokorreliert.
Aus dieser autokorrelierten Funktion sollen wir den Abstand zwischen den Peaks (und damit zwischen den Herzschlägen) bestimmen und daraus soll die Herzschlagrate bestimmt werden.

So sieht unser Code bis jetzt aus, leider gelingt es uns nicht, die Abstände bzw. die x-Werte zu den jeweiligen Peaks zu bestimmen und auszugeben.

Code:
[wave,fs]=audioread(Wave-Datei);
% index 43444 ist das erste saubere flat hinter dem peak
wave=wave(43444:end);
t=0:1/fs:(length(wave)-1)/fs;
plot(t,wave); % zeigt den Graph grundlegend an*/
figure(1);
plot(t,wave);
title('Conversion Wave to Matlab Group 7');
ylabel('Amplitude');
xlabel('Length (in seconds)');
% versieht den Graphen mit Beschriftung und Titel*/
n=length(wave)-1;
f=0:fs/n:fs;
wavefft=abs(fft(wave)); % perform Fourier Transform *
figure(2);
plot(f,wavefft); % plot Fourier Transform */
xlabel('Frequency in Hz');
ylabel('Magnitude');
title('The Wave FFT Group 7');
figure(3);
wave3=wave.^2;
plot(t, wave3);
xlabel('Length (in seconds)');
ylabel('Amplitude');
title('Rectification Group 7');
figure(4);
wave4=downsample(wave3,400);
fs=fs/400;
t=0:1/fs:(length(wave4)-1)/fs;
plot(t,wave4);
xlabel('Length (in seconds)');
ylabel('Amplitude');
title('Downsampling Group 7');
figure(5);
wave5=xcorr(wave4);
plot(wave5);
xlabel('Length (in seconds)');
ylabel('Amplitude');
title('Autocorrelation Group 7');
figure (6);
findpeaks(wave5);



Über eure Hilfe wären wir sehr dankbar!!!

Viele Grüße


Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.