INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Medianfrequenz aus einem FFT Spektrum berechnen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

15.09.2009, 13:43
Beitrag #1

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Medianfrequenz aus einem FFT Spektrum berechnen
Hallo zusammen!

vorab: dieses Forum ist mir eine riesen Hilfe und ich hoffe am Ende meines Trainy (1 Jahr gehts) auch etwas zurück geben zu können ... davon bin ich aber noch weit weg.

Mein aktuelles "sub"-Problem befasst sich mit der Berechnung der Medianfrequenz (manche nennen sie auch Mittenfrequenz) aus einem FFT Frequenzspektrum. (Die Medianfrequenz ist genau die Frequenz, die die Fläche unterhalb eines Frequenzspektrums in 2 gleich große Teile teilt.) Mit MatLab (offline) war es kein Problem aber in LV bin ich mir sehr unsicher, weil ich nie sehe/verstehe wie mir die Daten grade zur Verfügung stehen.

Prinzipiell will ich folgendes umsetzten:
1) Signal kommt aus einer Datei (4 Kanäle, Sampling rate 1kHz)
2) FFT
3) Spektrum wird integriert (will ja die Fläche haben)
4) suche nach der Frequenz wo die halbe Fläche des Spektrums liegt

Frage zu:
1) Ich benutze die "Messwerte aus Datei lesen".vi ... wenn ich dort einstelle "Segmente bestimmter Größe abrufen: 512" ... muss ich mir das so vorstellen, dass ich dann fortlaufend Vektoren der Größe 4x512 bekomme ... und alle anschließenden VIs bekommen die Daten dann auch in solchen Paketen?
2) Wie mach ich das für meine Zwecke am besten? Ganz von Hand? Derzeit benutze ich: Signalverarbeitung -> Signalverlaufsmessungen -> Spektrummessung.vi ... muss ich da bei den Einstellungen was bestimmtes beachten?
4) Mache ich das richtig in meiner hochgeladenen mf_sub.vi? (Glaub ich nämlich nicht.)


Lv82_img


Sonstige .vi  mf.vi (Größe: 170,65 KB / Downloads: 368)



Sonstige .vi  mf_sub.vi (Größe: 36,88 KB / Downloads: 292)



Sonstige .zip  daten.zip (Größe: 993,74 KB / Downloads: 466)

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
16.09.2009, 08:59
Beitrag #2

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Medianfrequenz aus einem FFT Spektrum berechnen
Hinweis: http://www.LabVIEWportal.eu/viewtopic.php?f=79&t=1440

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.09.2009, 15:01 (Dieser Beitrag wurde zuletzt bearbeitet: 16.09.2009 15:18 von dimitri84.)
Beitrag #3

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Medianfrequenz aus einem FFT Spektrum berechnen
Mir kommen die Werte zu niedrig vor. Irgendwas in der mf_sub.vi stimmt nicht ganz. Wenn man selbst grob hinschaut im Signalverlaufsdiagramm für das integrierte Spektrum und dort abschätzt wo der halbe Maximalwert erreicht ist müsste was höheres rauskommen.

Wenn man bei dem "Schwellwert.vi" einen Startindex angibt, z.B. 5, muss man dann diese 5 beim Ergebnis wieder drauf addieren? Ich weiß, dass man in MatLab darauf achten muss, wenn man die "find" funktion benutzt und nicht vom Anfang des arrays sucht (da muss man den Startindex von Hand wieder draufaddieren).

Und warum bekommen die Diagramme genau 500 Werte, obwohl ich in der "Messwerte aus Datei lesen.vi" eingestellt habe, dass Segmente der Größe 512 ausgelsen werden sollen?

Beste Grüße dimtri

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.09.2009, 15:25 (Dieser Beitrag wurde zuletzt bearbeitet: 16.09.2009 15:26 von Lucki.)
Beitrag #4

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Medianfrequenz aus einem FFT Spektrum berechnen
Habe mirs mal angesehen, das fiel mir auf:
1.) Die Bekommst als Ergebnis einen Array-Index i heraus. Der ist aber nicht gleichzusetzen mit einer Frequenz. Es gilt:
Frequenz = fo + i * df
Bei dier ist ca. df = 1.95, f0 = 0
   
2,) Wenn Du mit der Konstante 5 im SubVI beabsichtigt haben solltest, die ersten 5 Frequenzen von der Berechnung auszuschließen, dann ist das gründlich schiefgegangen. Du müßtest diese Frequenzen schon vor der Integration entfernen und dann bei der Mittenfrequnzberechnung berücksichtigen, daß f0 in obiger Formel nicht mehr 0 ist.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.09.2009, 15:47 (Dieser Beitrag wurde zuletzt bearbeitet: 16.09.2009 15:57 von dimitri84.)
Beitrag #5

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Medianfrequenz aus einem FFT Spektrum berechnen
Danke für die Ansätze!! Werde diese Punkte nochmal durchdenken.

Vorallem das mit der 5 ist absoluter Schwachsinn sehe ich grad selbst ein. Das wird der entscheidende Fehler gewesen sein. Denn in dem Bereich (0...5 Hz) sind irgendwelche dubiosen riesigen Frequenzanteile die ich ganz vergessen habe (Diagramm zeigt ja Bereich von 5...512). Soll ichn 5 Hz Hochpass benutzen oder gehts einfacher?

Warum ist df =1.95? Ich dachte wenn ich ne Sampling Rate von 1024Hz habe und mir Blöcke von 512 Werten hole, bekomme ich automatisch ein Spektrum mit 512 diskreten Frequenzn und der Auflösung df=1Hz. ... Abtasttheorem und so ...

Skallierung scheint zu stimmen denn das Netzrauschen ist da wo es hingehört bei 50Hz.



Hast mir sehr geholfen Lucki!

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.09.2009, 18:28 (Dieser Beitrag wurde zuletzt bearbeitet: 16.09.2009 18:31 von Lucki.)
Beitrag #6

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Medianfrequenz aus einem FFT Spektrum berechnen
' schrieb:Warum ist df =1.95? Ich dachte wenn ich ne Sampling Rate von 1024Hz habe und mir Blöcke von 512 Werten hole, bekomme ich automatisch ein Spektrum mit 512 diskreten Frequenzn und der Auflösung df=1Hz. ... Abtasttheorem und so ...
Was Du hast, sind 512 Abtastwerte mit dt=0.001s.
Bei der Fouriertransfomation bekommst Du auch wieder 512 Werte heraus, und zwar hier bei Dir 256 Beträge und 256 Phasen (Die Du nicht benutzt). Dein Glaube, daß Dein Frequenzgraph 512 Frequenzen enthält, ist falsch.

Zur Skalierung: Ja, Nyquist gilt, aber beim Nyquist-Theorem geht es darum, welch höchste Frequenz man bei einer gegebenen Abtastrate noch darstellen kann. Es geht nicht um die Auflösung df. Also: man braucht mindestens 2 Abtastpunkte zur Darstellung einer Freqeunz. Hier bei Dir heißt das: Die höchste darstellbare Frequenz ist 1/(2*0.001s) = 500Hz.
Die 256 Abtastpunkte sind innerhalb der 500Hz gleichmäßig aufgeteilt, daraus ergibt sich df= 500Hz/256.
Das df laßt sich auch aus der Abtastlänge berechen. Sie beträgt 512*0.001s = 0.512s. Der Reziprokwert ist die erste Frequenz f1, die anderen Frequenzen sind Vielfache davon, d.h df=f1
Also merke: Wenn ein Diagramm eine x-Skalierung von 0..500 hat, dann müssen es nicht immer 500 Datenpunkte sein. Das ist nur bei dx=1 der Fall.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.09.2009, 19:26
Beitrag #7

BeFu Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 84
Registriert seit: Jun 2006

2011
2006
DE_EN

96450
Deutschland
Medianfrequenz aus einem FFT Spektrum berechnen
Hallo Dimitri,

bin erst gegen 20:00 Uhr aus dem Labor gekommen und habe meine Antwort-Mail leider zerschossen, so schreibe ich Dir hier.
Die Ausführungen von Lucki stimmen.
Normalerweise haben EMG-Verstärker eine Bandbreite von 10Hz bis 500Hz.
Die in Deinem Spektrum sichtbaren Frequenzanteile von unter 10Hz kommen wahrscheinlich durch den Aliasing-Effekt, da der Tiefpass (500Hz) des EMG-Verstärkers auch höhere Frequenzen passieren lässt, so dass das Abtasttheorem verletzt ist.
Die tiefen Frequenzen filterst Du am Besten mittels Tiefpass weg, vor dem Integrieren.
Schöne Grüße,

BeFu

Das Ziel ist der Weg
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.09.2009, 20:04
Beitrag #8

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Medianfrequenz aus einem FFT Spektrum berechnen
Vielen vielen Dank! Jetzt bin ich ne ganze Nummer schlauer.

Zum Anti-Aliasing: Werd mir nochmal ganz genau das Handbuch vom EMG-Gerät anschauen ... ist nämlich Marke Eigenbau ... also im Auftrag des Instituts extra gebaut worden.

Beste Grüße

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.09.2009, 08:24
Beitrag #9

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Medianfrequenz aus einem FFT Spektrum berechnen
' schrieb:Zum Anti-Aliasing: Werd mir nochmal ganz genau das Handbuch vom EMG-Gerät anschauen ... ist nämlich Marke Eigenbau ... also im Auftrag des Instituts extra gebaut worden.
Es ein Irrglaube anzunehmen, daß, wenn man aus einem Zeitverluf das Spektrum ermitteln will, die Abtastrate gemäß dem Nyquist-Theorem ausreichend ist. Konkret: Daß, wenn man 0-500Hz sehen will, eine Abtastrate von 1kHz ausreichend ist. Um Aliasing zu vermeiden, braucht man einen Tiefpass im Abnalgsignal vor der Abtastung, und der müßte in diesen Fall bei 500Hz liegen und unendlich scharf sein. Einen solches Filter gibt es aber nicht.
Ich nehme immer die mindestens 4 fache Abtastfrequenz (Hier wären das 2kHz). Dann sind die Anforderung an das Filter viel geringer, und bei genügend hoher Überabtastung erübrigen sich meistens Filter, weil in der Regel die hohen Frequenzen, die Aliasing verursachen könnten, im Originalsignal gar nicht mehr vertreten sind.
Also noch mal ein Beispiel: 8 fache Abtstrate = 4 kHz. Die Anforderungen an das Filter sind dann: Bis 500 Hz alles durchlassen, ab 2 kHz (Nyqist-Frequenz) sperren. Also nur geringe Anforderungen. Und das Filter wird nur dann gebraucht, wenn diese hohen Frequenzen überhaupt noch vorkommen. Wenn z.B. in dem Gerät schon ein Filter eingebaut ist, dann brauchts Du gar nichts mehr.
Übrigens: Versuche gar nicht erst, Aliasing im Nachhinein zu beseitigen. Das geht nicht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.09.2009, 13:39
Beitrag #10

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Medianfrequenz aus einem FFT Spektrum berechnen
Hmm macht Sinn!

Theoretisch liegt der absolute Hauptanteil in einem EMG-(Elektromyographie) Signal Zwischen 10...150 Hz. Praktisch ist mein Signal aber wohl deutlich unterabgetastet. Werde das nochmal besprechen hier.

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Clarke Transformation berechnen un in Grafik darstellen heja 3 5.767 23.07.2012 16:37
Letzter Beitrag: Lucki
  Sinussignal aus Spektrum rekonstruieren DrHoas 8 8.372 06.07.2012 08:48
Letzter Beitrag: DrHoas
  VI FFT Spektrum - gebildete Mittelwerte auf 0 setzen margro 8 7.148 01.06.2012 14:49
Letzter Beitrag: margro
  Phase von FFT-Spektrum LCoubert 3 6.717 30.01.2012 09:15
Letzter Beitrag: Lucki
  RMS berechnen reNNer 9 12.800 05.04.2011 14:36
Letzter Beitrag: Lucki
  Power Spektrum StudiFH 1 6.256 06.03.2011 17:29
Letzter Beitrag: Lucki

Gehe zu: