Ich versuche, ein bereits vorhandenes Spektrogramm von Matlab in meinen Python-Code zu integrieren, mit Matplotlib. Wenn ich jedoch den Fensterwert eingabe, gibt es ein Problem: In Matlab ist der Wert ein Skalar, aber Matplotlib benötigt einen Vektor. Warum ist das so?Unterschied zwischen Matlab Spektrogramm und Matplotlib-Spektrum?
Antwort
Die Argumente sind nur anders organisiert.
In Matplotlib wird die Fenstergröße mit dem Argument NFFT
angegeben. Das Argument window
hingegen ist nur für die Angabe des Fensters selbst, anstatt die Größe. Wie MATLAB akzeptiert das Argument window
einen Vektor. Im Gegensatz zu MATLAB akzeptiert es jedoch auch eine Funktion, die einen Vektor mit beliebiger Länge annehmen und einen anderen Vektor derselben Größe zurückgeben soll. Dadurch können Sie Funktionen für Fenster anstelle von Vektoren verwenden.
So ist es in MATLAB Begriffe zu setzen, die MATLAB window
Argument wird aufgespalten in die window
und NFFT
Argumente in matplotlib, während die MATLAB NFFT
Argument der matplotlib pad_to
Argument entspricht.
Aus dem Grund, die Fenster- und Fenstergröße unabhängig angeben können Sie eine Funktion als Argument für window
verwenden (die in der Tat ist der Standardwert). Dies ist mit den MATLAB-Argumenten nicht möglich.
In Python sind Funktionen erstklassige Objekte, was in MATLAB nicht der Fall ist. Daher ist es üblich, Funktionen als Argumente für andere Funktionen in Python zu verwenden, im Vergleich zu MATLAB. In Python können Sie auch Argumente nach Namen angeben, was MATLAB jedoch nicht tut. In MATLAB ist es also viel üblicher, Argumente zu haben, die abhängig von den Eingaben verschiedene Dinge tun, während ähnliche Funktionen in Python dazu neigen, diese in mehrere unabhängige Argumente aufzuteilen.
Korreliert die Fs? Ich bemerke, dass das Fs auf Matplotlib auch die x-Achse beeinflusst (das Setzen meiner Fs auf 2^-1 oder 2^-10 änderte das Bild nicht, nur die beiden Skalen) –
'Fs' ist die Abtastfrequenz, die bestimmt den Abstand der Zeitpunkte und der Frequenzen. Ich wäre überrascht, wenn Fs in der MATLAB-Version * nicht sowohl die X- (Zeit) als auch die Y-Achse (Frequenz) ändern würden. – TheBlackCat
Wie würde ich die niedrigeren Frequenzen vergrößern und die höheren herausschneiden? –
Der Wert in Matlab ist ein Skalar, da er die Größe des Fensters darstellt, und Matlab verwendet standardmäßig ein Hamming-Fenster. Das Window-Argument akzeptiert auch einen Vektor, sodass Sie jede gewünschte Fensterfunktion übergeben können.
Gibt es eine Möglichkeit, Fenstergröße in Matplotlib anzugeben? –
@JoeBernstein: Wie ich in meiner Antwort gesagt habe, benutze das Argument 'NFFT'. – TheBlackCat
@JoeBernstein, ja wie @TheBlackCat sagte, könnten Sie das 'NFFT' Argument verwenden. Außerdem verwendet 'matplotlib' einen Standardwert für das Hann-Fenster. Wenn Sie also nichts an dieses Argument übergeben, werden Ihre Daten vor der Analyse mit einem Hann-Fenster multipliziert. Wenn Sie das ändern möchten, können Sie die integrierten Funktionen verwenden, die Fenster in der gleichen Größe Ihrer Eingabedaten erstellen. Hier finden Sie weitere Informationen: http://matplotlib.org/api/mlab_api.html#matplotlib.mlab.specgram – nevos
- 1. 2D-Spektrogramm in Matlab erstellen
- 2. Unterschied zwischen Handlung und Streu Matlab
- 3. Matlab: Unterschied zwischen zwei Arrays unterschiedlicher Größe
- 4. Unterschied zwischen Array und Zeitreihen
- 5. Unterschied zwischen MATLAB Parallel-Computing-Terminologien
- 6. Unterschied zwischen MATLAB die Anzahl und Länge Funktionen
- 7. Was ist der Unterschied zwischen 5 und [5] in MATLAB?
- 8. Unterschied zwischen clc und löschen Sie alle in Matlab
- 9. Was ist der Unterschied zwischen * und. * In Matlab?
- 10. Unterschied zwischen Matlab-Funktion 'Handle' und Python-Funktion 'Objekt'
- 11. Peaks in MATLAB im 3D-Spektrogramm richtig finden
- 12. Zeichnen Sie vertikale Linien auf Matlab-Spektrogramm-Plot
- 13. Leistungsdifferenz zwischen numpy und matlab
- 14. Kommunikation zwischen Python und Matlab
- 15. Interoperabilität zwischen Matlab und C#
- 16. Unterschied zwischen Vorzeichen & und *?
- 17. VBA: Unterschied zwischen & und +
- 18. Unterschied zwischen "**/* /" und "** /"?
- 19. Unterschied zwischen $ # und $ {# @}
- 20. Unterschied zwischen = und: =
- 21. Unterschied zwischen '#', '%' und '$'
- 22. MySQL: Unterschied zwischen ', `,' und '
- 23. C++ Unterschied zwischen '//' und '///'
- 24. Unterschied zwischen String.Empty und ""
- 25. Unterschied zwischen `% in%` und `==`
- 26. Unterschied zwischen numpy.logical_and und &
- 27. Unterschied zwischen. und #
- 28. Unterschied zwischen // und http: //
- 29. Colon Unterschied in Matlab und Python
- 30. Spektrogramm C++ Bibliothek
Sie müssen Ihre Skalarwerte in Vektor für Array konvertieren. Numpy könnte Ihnen helfen, Ihr Problem zu lösen – Deadpool