mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP FFT in Matlab zur Frequenzanalyse einer EMG Messung


Autor: Sebastian Hain (sebihain)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

ich habe ein EMG-Signal, bei dem ich mir gerne das Frequenzspektrum 
(fft)(mittels matlab) anschauen möchte. Mein Signal wurde 15 sek lang 
aufgenommen bei einer fs=1000Hz.

mein code für die fft lautet wie folgt:

points=4096;
Y = fft(WERTE(:,k),points);
Pyy = Y.* conj(Y) / points;
f = 1000*(0:(points/2)-1)/points;
plot(f,Pyy(1:2049));

jetzt mein problem/frage:

wovon hängt die größe (anzahl der points) der fft ab, bzw. wie wähle ich 
sie am besten um eine ordentliche Darstellung meines Signals zu 
bekommen?
ausserdem habe ich gelesen, dass es sinnvoll ist das ganze durch eine 
Fensterfunktion zu schicken. Aber welches nehme ich da, bzw. was macht 
die, oder wie verändert sie mein Signal? (und wie setze ich das mit 
matlab um)--> kann ich diese Fensterfunktion auch verwenden um 
harmonische schwingungen zu unterdrücken bzw. um das rauschen zu 
unterdrücken???

ich hoffe ihr könnt mir weiterhelfen.
mfg Sebastian

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(http://de.wikipedia.org/wiki/Elektromyografie
ich nehme an, das ist mit EMG gemeint?
War das noch einfach mit "rußgeschwärzten Trommeln" zur Aufzeichnung.)

zu den verschiedeen Fenstern gibts auch was von Wikipedia
http://de.wikipedia.org/wiki/Fensterfunktion
mit "ganz ohne Fenster" oder auch Rechteckfenster ist es jedenfalls am 
schlechtesten. Es geht um Artefakte, nicht um Rauschen oder Harmonische.

Autor: Sebastian Hain (sebihain)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo
ja mit emg ist electromyographie gemeint. Ja du hast recht es geht um 
artefakte, aber ist rauschen nicht auch ein artefakt? danke das mit den 
fenstern werd ich mir gleich reinziehen, ist aber nicht vorrangig.

mir geht es eher um die genauigkeit meiner fft. welche muss ich wählen 
um ein signal mit 15000 werten optimal in den frequenzbereich zu 
bekommen. muss ich da eine 512 1024 2048 4096 .... punkt fft machen?? 
und wie hängt diese auswahl dann mit meiner Fensterfunktion zusammen/ 
oder nicht??


danke
mfg Sebastian

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich nehme an du willst nicht das Spektrum des gesamten Signals anschauen 
(da wirst du nicht viel erkennen), sondern ein gemitteltes Spektrum über 
einen gewissen Zeitraum? Dazu musst du die FFT auf kleine Blöcke 
anwenden und über das Ergebnis mitteln. Schau dir die Funktion pwelch 
an, die nimmt dir diese Arbeit ab. Als Parameter kannst du optional die 
FFT-Länge und die Fensterfunktion vorgeben.

Autor: sebihain (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen dank für die antwort, werde mich gleich am wochenende damit 
beschäfftigen.
Heißt das so bekomme ich das mittlere Leistungsdichtespektrum, nach 
Zerstückelung, Überlappung, Fensterung???? und geht dabei information 
verloren??? Das heißt am ende habe ich das Leistungsdichtespektrum der 
ganzen 15 sek. aber nicht alles auf einmal sondern gemittelt über kleine 
Blöcke?? Und was sind dann die richtigen einstellungen für die Blöcke? 
oder ist das egal?

vielen dank für die antwort, ich hoffe du kannst mir noch weiterhelfen.
mfg Sebastian


PS: ersetze ich

Y = fft(WERTE(:,k),points);
Pyy = Y.* conj(Y) / points;

durch pwelch???

Autor: Nadhmi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi Leute ich muss die M-Welle von der Willkürliche EMG Welle detektieren 
und separieren mit silab oder mit Matlab, könnte ich vielleicht eine 
Hilfe bekommen danke im Voraus
Nadhmi

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.