Wie führe ich eine Spektralanalyse in JMP durch?Ich habe eine Datenreihe mit über 800.000 Punkten, die ich mir im Frequenzbereich ansehen möchte.Ich habe versucht, eine „Zeitreihenanalyse“ durchzuführen, um Spektraldichtedaten zu erstellen, aber JMP hängt einfach.Ich ließ es einige Minuten lang hängen, und dann ist meine Grafikkarte kaputt gegangen ...ein ziemlicher Zufall!
Wenn Sie es ausprobieren möchten, ist die Datendatei angehängt. Die erste Spalte enthält den Zeitstempel in Sekunden, die zweite Spalte enthält die Daten.Bitte lassen Sie mich wissen, ob es eine Möglichkeit gibt, dies zu tun.
Danke,
Jason
Betreff: Wie führt man eine Spektralanalyse durch?Hallo Daniel,
Ich schließe mich Fionas Bitte an. Ist es für Sie möglich, den Code zu teilen?
Danke
Betreff: Wie führt man eine Spektralanalyse durch?Könnten Sie Ihr Skript teilen und mich versuchen lassen, FFT in meinen Daten auszuführen?
Betreff: Wie führt man eine Spektralanalyse durch?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Exzellent! Vielen Dank für die Informationen zu diesen Daten. Ich freue mich, dass meine Analyse Ihren Erwartungen entspricht. JMP eignet sich tatsächlich sehr gut für die statistische Analyse der Frequenzbereichsdaten, aber einige andere Tools (wie MATLAB) eignen sich gut für spezielle Aufgaben wie die Durchführung von FFTs auf Arrays beliebiger Größe, Filterdesigns, Faltungen usw. Aus diesem Grund ist die Erweiterbarkeit in JMP großartig – die Möglichkeit, auf SAS, MATLAB und R zuzugreifen, bietet die Möglichkeit, diese Tools bei Bedarf zu nutzen und die Daten dann zur Visualisierung und Analyse zurück zu JMP zu bringen.
Ich habe Ihre Daten über eine FFT-Anwendung laufen lassen, die ich komplett in JSL geschrieben habe – sie funktioniert genau wie eine JMP-Plattform:

Wenn Sie auf „OK“ klicken, wird eine Verbindung zu MATLAB hergestellt und ein bereits vorhandener Code ausgeführt, der die Zeitbereichsdaten in den Frequenzbereich konvertiert und die Daten dann zur weiteren Analyse und grafischen Darstellung an eine neue JMP-Datentabelle zurückgibt. Wenn ich das Signal in MATLAB zusätzlich verarbeiten müsste – zum Beispiel einen Bandpassfilter ausführen müsste – könnte ich das auch in MATLAB tun, bevor ich die Daten an JMP zurücksende.
Aber wenn die Daten dann wieder in JMP sind, kann ich sie nach Belieben analysieren oder visualisieren. Ich habe beispielsweise einen lokalen Datenfilter verwendet, um mich nur auf den Teil des Signals zu konzentrieren, bei dem die gleichgerichteten AC-Quellenkomponenten > 3 Hz wären.

Verwenden Sie dann „Zeilen“ > „Zeilenauswahl“ > „Dominant auswählen“, um den Fokus auf die Punkte auf der Pareto-Front zu legen. JMP hat 33 FFT-Bins identifiziert, die ich über „Tabellen > Teilmenge“ unterteilen kann. Wenn ich die Option „Mit Originaldatentabelle verknüpft“ ankreuze, werden die Teilmenge und der vollständige Datensatz verknüpft. Ich habe eine +-Markierung gesetzt und diese Punkte in der Teilmenge rot eingefärbt, und sie werden in der ursprünglichen Datentabelle wieder eingefärbt.

Je nachdem, welche Frage Sie beantworten möchten, wird die beste Methode zur Analyse dieser Daten bestimmt. Sobald die transformierten Daten jedoch wieder in JMP vorliegen, können Sie sie auf jede gewünschte Weise untersuchen. Auch der Vorschlag von @Xan, die FFT-Funktion in JSL zu verwenden, ist großartig. Ich entscheide mich einfach für die Verwendung von MATLAB, weil ich bereits über eine Codebibliothek verfüge, die in MATLAB verschiedene Signalverarbeitungsfunktionen ausführt, und ich im Rahmen des Analyseschritts auch häufig Daten mit IIR- oder FIR-Filtern filtern muss, eine Aufgabe, für die MATLAB gut geeignet ist (sowohl für den Entwurf der Filter als auch für die Durchführung des Filterschritts).
Betreff: Wie führt man eine Spektralanalyse durch?Danke fürs Anschauen!Ja, ich habe eine andere Software (Labchart von AD Instruments) für die FFT gefunden und stimme zu, dass es ein paar interessante Spitzenwerte gibt.Die 120 Hz und 240 Hz weisen auf Rauschen einer gleichgerichteten Wechselstromquelle hin.Ein Teil der Energie < 1 Hz löst sich in Spitzen mit einem konsistenten Vielfachen auf, die möglicherweise mit der Rotationsfrequenz mechanischer Komponenten im System korrelieren.
Meistens habe ich gepostet, um zu sehen, ob es in JMP einige Funktionen gibt, die ich nicht richtig genutzt habe, aber es scheint, dass die statistische Analyse im Frequenzbereich wirklich nicht ihr Ding ist.
Betreff: Wie führt man eine Spektralanalyse durch?Diese Daten wurden mithilfe eines FFT-Analyseskripts, das ich in MATLAB geschrieben habe, mithilfe der JMP-Schnittstelle zu MATLAB in JMP 11 ausgeführt. Sieht so aus, als ob Ihr SR 1000 Hz beträgt, sodass Sie eine Auflösung bis zu Ihrer Nyquist-Frequenz erhalten. von 500 Hz. Viel NF-Energie in Richtung Gleichstrom, aber es scheint einige interessante Spitzen zwischen 40 Hz und 300 Hz zu geben. Ist dies die Art von Ergebnis, die Sie für diese Daten erwarten könnten?
Im Graph Builder mit den von MATLAB zurückgegebenen Ergebnissen dargestellt:

Betreff: Wie führt man eine Spektralanalyse durch?Der Befehl „Spektrale Dichte“ in Time Series verwendet offenbar einen langsamen Algorithmus. Es gibt eine JSL-Funktion namens „FFT“, die einen schnellen Algorithmus verwendet, jedoch nur, wenn die Anzahl der Punkte eine schöne runde Zahl ist (viele kleine Faktoren enthält). Wenn ich Ihre Daten beispielsweise auf genau 800.000 Zeilen kürze, wird die folgende JSL sofort zurückgegeben:
data = Column( „y“ ) << Werte abrufen; Show( N Zeilen( Daten ) );
f = FFT( {data} ); Show( N Zeilen( f[1] ) );
Current Data Table() << New Column("freq", Set Values( f[1] ));