Moving Average Scilab
Der beste Weg, dies zu tun (meiner Meinung nach) wäre, einen Kreis-Puffer verwenden, um Ihre Bilder zu speichern. In einem Kreis - oder Ringpuffer wird das älteste Datenelement im Array durch das neueste Element, das in das Array eingeschoben wird, überschrieben. Die Grundlagen der Herstellung einer solchen Struktur werden in dem kurzen Mathworks-Video beschrieben, das einen einfachen kreisförmigen Puffer implementiert. Für jede Iteration der Hauptschleife, die ein einziges Bild behandelt, laden Sie einfach ein neues Bild in den Zirkular-Puffer und verwenden Sie dann MATLAB s in Mittelwert-Funktion, um den Durchschnitt effizient zu nehmen. Wenn Sie eine Fensterfunktion auf die Daten anwenden müssen, dann machen Sie eine temporäre Kopie der Frames multipliziert mit der Fensterfunktion und nehmen Sie den Durchschnitt der Kopie bei jeder Iteration der Schleife. Beantwortet Aug 6 12 at 10:11 berechnet eine Art von Moving Average für jede der 10 Bands über alle Ihre Bilder. Diese Zeile berechnet einen gleitenden Mittelwert des Mittelwertes über Ihre Bilder: Für beide wird eine Pufferstruktur hinzugefügt, die nur die letzten 10 Bilder enthält. Um es zu vereinfachen, können Sie auch einfach alles im Gedächtnis behalten. Hier ist ein Beispiel für Yout: Ändern Sie diese Zeile: (Eine Dimension hinzufügen) Und ändern Sie diese: Dann zur Anzeige verwenden Sie würden sth. Ähnliche für Mittelwert beantwortet Ihre Antwort 2016 Stack Exchange, IncDie Informationen, Code und Daten auf dieser Seite ist es, einen Artikel "The Black Art of Smoothing" in Electrical Amp Automation Technology veröffentlicht zu unterstützen. Von David I. Wilson. Der Code, der auf dieser Seite vorgestellt wird, enthält Algorithmen für: Moving durchschnittliche Filterverstärkung Savitzky-Golay Filter Loess (lokale gewichtete Regression) Filterung Whittaker kernel smoothers Hodrick-Prescott Filter in den Entwicklungsumgebungen Matlab und Scicos. In beiden Fällen sind keine speziellen Werkzeugkästen erforderlich. Matlab ist ein kommerzielles Produkt, aber Scilab ist ein Freeware-Äquivalent. Hinweis: Der Code hier ist Quotes isquot ohne Garantie oder konkludent dargestellt. Wenn Sie daran interessiert sind, diese Glättungsoperationen auf eigenen Daten auszuprobieren, gehen Sie wie folgt vor: Wenn Sie Matlab (ein kommerzielles Produkt) haben, laden Sie die Matlab-Glättungsdateien herunter und entpacken Sie sie. Führen Sie die Skriptdatei smootherdemo. m aus. Sie sollten Plots etwas wie dieses sehen, das den Abbildungen im veröffentlichten Artikel ähnlich ist. Wenn Sie Ihre eigenen Daten verwenden möchten, dann platzieren Sie die (Zeit-, Daten-) Paare in einer Excel-Tabelle und bearbeiten Sie die Smootherdemo-Datei, um Ihr eigenes Excel-Tabellenblatt zu lesen. Sie müssen die Skriptdatei bearbeiten und eventuell die verschiedenen Glättungsparameter anpassen. Alternativ, wenn Sie lieber die Freeware Scilab, dann: Downloaden und installieren Scilab (ca. 13Mb). Sie haben die Wahl von Windows, Linux oder Mac. Laden Sie die Scilab-glatteren Dateien herunter und entpacken Sie sie in einem geeigneten Verzeichnis. Führen Sie die Datei smootherdemo. sci aus. Matlab ist eine kommerzielle wissenschaftliche Software und Prototyping-Umgebung mit vielen Ingenieuren beliebt. Matlab wird in Neuseeland von Hoare Research Software verkauft. Laden und entpacken Sie die Matlab-Glättungsdateien in Ihr Arbeitsverzeichnis und führen Sie die smootherdemo. m Matlab-Skriptdatei aus. Scilab ist ein kostenloses wissenschaftliches Softwarepaket ähnlich wie, aber nicht genau kompatibel mit, Matlab. Scilab steht für Linux, Windows und Mac zur Verfügung und steht hier zum Download zur Verfügung. (Ungefähr 13 MB). Es wird derzeit von Forschern aus INRIEN und ENPC in Frankreich entwickelt und umfasst wie Matlab zahlreiche Toolboxen und einen grafischen Blockdiagramm-Simulator ähnlich Simulink, der Scicos genannt wird. Die folgenden Datendateien wurden in dem Artikel verwendet. Sie werden im Excel-Format und gerade ASCII-Text mit einem einzeiligen Header. Master Scilab 1 Was ist Scilab 2 Über dieses Dokument 3 Herunterladen und Installieren von Scilab 4 Die Scilab-Umgebung 5 Scilab-Hilfe 6 Scripts 7 Matrixoperationen 8 Plotten 9 Funktionen für Dynamik und Regelung 9.1 Simulation von zeitkontinuierlichen Übertragungsfunktionen 9.2 Frequenzgang von Zeittransferfunktionen 9.3 Simulation diskreter Zeitübertragungsfunktionen 9.4 Frequenzgang diskreter Zeitübertragungsfunktionen 9.5 Simulation von Dauerzustand-Raum-Modellen 9.6 Diskretisierung von Dauer-Zeit Systeme 9.7 Ableiten von Übertragungsfunktionen aus Zustandsraummodellen 9.8 Kombinieren von Modellen: Serie, Parallelität und Feedback 9.9 Frequenzanalyse und Simulation von Rückkopplungssystemen 9.10 LQ (linear quadratischer) optimaler Regler 9.11 Kalman Filterverstärkung 1 Was ist Scilab Zitiert ab Die Homepage von Scilab bei scilab. org: Scilab ist ein kostenloses wissenschaftliches Softwarepaket für numerische Berechnungen, das eine leistungsstarke Open-Computing-Umgebung für Ingenieur - und Wissenschaftsanwendungen bietet. Scilab ist eine Open-Source-Software. Seit 1994 wurde es mit dem Quellcode über das Internet frei verteilt. Es wird derzeit in Bildungs-und Industrieumgebungen auf der ganzen Welt eingesetzt. Scilab umfasst Hunderte von mathematischen Funktionen mit der Möglichkeit, interaktive Programme aus verschiedenen Sprachen (C, C, Fortran) hinzuzufügen. Es verfügt über anspruchsvolle Datenstrukturen (einschließlich Listen, Polynome, rationale Funktionen, lineare Systeme), einen Dolmetscher und eine Programmiersprache auf hohem Niveau. Scilab ist ähnlich wie Matlab, und der Funktionsumfang ist vergleichbar. Der größte Vorteil von Scilab ist natürlich, dass es kostenlos ist :-). Auch Scilab ist einfach und schnell zu installieren (und Sie müssen Ihren PC nicht neu starten, bevor Sie es verwenden). Scilab ist auch ähnlich Octave, die auch frei Octave ist mehr ähnlich wie Matlab als Scilab. Ein Problem mit Octave besteht darin, dass Datenplotten in Octave umständlicher sind als in Scilab. (Sie können sowohl Scilab und Octave installiert haben :-) Eine schöne Sache über Scilab ist, dass Sie Scicos automatisch installiert, wenn Sie Scilab installieren. Scicos ist ein Blockdiagramm-basiertes Simulationswerkzeug ähnlich Simulink und LabVIEW Simulationsmodul. 2 Über dieses Dokument Dieses Tutorial führt Sie durch die Schritte zur Bewältigung von Scilab. Ich habe dieses Dokument geschrieben, weil ich kein richtiges Tutorial auf der Scilab-Homepage gefunden habe. Ich nehme an, dass Sie alle Aktivitäten in den blauen Kästen tun, wie hier: Aktivitäten werden in blauen Kästchen als dieser angezeigt. Bitte senden Sie Kommentare oder Vorschläge, um dieses Tutorial per E-Mail an finn. haugenhit. no zu verbessern. 3 Herunterladen und Installieren von Scilab Die Installationsdatei, die eine. exe-Datei ist, steht unter scilab. org zum Download zur Verfügung. Sobald Sie diese Exe-Datei heruntergeladen haben, öffnen Sie sie, und folgen Sie dann den Anweisungen auf dem Bildschirm. (Es sollte nicht notwendig sein, Ihren PC neu zu starten, bevor Sie Scilab nach der Installation starten.) Beachten Sie, dass bei der Installation von Scilab auch Scicos installiert ist. 4 Scilab-Umgebung starten Scilab starten: Doppelklicken Sie auf das Scilab-Symbol auf dem PC-Desktop oder auf Start / Alle Programme / Scilab / scilab (keine Scilab-Konsole auswählen). Starten von Scilab öffnet das Scilab-Befehlsfenster, siehe folgende Abbildung. Das Scilab-Befehlsfenster Scilab-Befehle werden in der Befehlszeile ausgeführt, indem Sie den Befehl eingeben und dann auf die Eingabetaste auf der Tastatur klicken. Führen Sie 11 aus (geben Sie 11 an der Befehlszeile ein, und beenden Sie mit der Eingabetaste). Das Ergebnis wird im Befehlsfenster angezeigt (siehe Abbildung oben). 5 Scilab-Hilfe Öffnen Sie die Scilab-Hilfe, indem Sie auf die Schaltfläche Hilfe in der Symbolleiste klicken (die Schaltfläche mit dem Fragezeichen). Das Hilfefenster wird unten gezeigt. Scilab Hilfefenster Wie Sie im Hilfefenster sehen, sind die Befehle und Funktionen in einer Reihe von Kategorien organisiert. Klicken Sie zum Beispiel auf die Kategorie Elementare Funktionen, um die Funktionen in dieser Kategorie anzuzeigen. Die Funktionen sind in der obigen Abbildung dargestellt. Um detaillierte Hilfetexte zu einer bestimmten Funktion zu erhalten, klicken Sie auf diese Funktion. Klicken Sie auf die abs-Funktion (in der Kategorie Elementare Funktionen). Der ausführliche Hilfetext für die abs-Funktion ist in der folgenden Abbildung dargestellt. Der ausführliche Hilfetext für die abs-Funktion Sie können auch nach einer Funktion suchen, indem Sie zuerst auf die Schaltfläche Suchen im Hilfefenster (Lupe) klicken. Suche nach sine. Das Ergebnis der Suche ist eine Liste der relevanten Funktionen, siehe folgende Abbildung. Das Ergebnis der Suche nach sine 5 Basic Scilab Operationen In der Regel verwenden Sie Variablen in Ihren Berechnungen. Um die Variable a zu erstellen und ihr das Ergebnis 11 zuzuordnen, wird nachfolgend (Enter) nicht angezeigt, es wird jedoch davon ausgegangen, dass Sie auf die Schaltfläche Enter klicken. Die Antwort wird im Befehlsfenster angezeigt (aber hier gezeigt). Versuchen Sie jetzt, das Semikolon einzugeben: Die Antwort wird nicht im Befehlsfenster angezeigt. Der Befehl wurde tatsächlich ausgeführt, aber wegen des Semikolons wurde die Antwort nicht angezeigt. Um zu überprüfen, ob die Variable b tatsächlich existiert: Wie Sie aus der hier nicht dargestellten Antwort sehen, existiert d, während D nicht existiert (da wir D nicht erstellt haben). Scilab-Variablen sind im Arbeitsbereich vorhanden. Es gibt zwei Möglichkeiten, den Inhalt eines Arbeitsbereichs zu sehen: Ausführen des Befehls, der in der Befehlszeile nur die Variablen im Befehlsfenster auflistet. Menü-Anwendungen / Browser-Variablen. Die das Browser-Variablenfenster öffnet. Führen Sie den Befehl who aus. Die Antwort sollte ähnlich sein, wie in der folgenden Abbildung gezeigt. (Die benutzerdefinierten Variablen werden unter vielen anderen Variablen angezeigt.) Die Antwort des Befehls, der das Menü Programme / Browser-Variablen auswählt. Das Fenster Browser-Variablen wird geöffnet, siehe folgende Abbildung. Fenster Browser-Variablen Das Fenster Browser-Variablen enthält unten eine Anzahl von Utility-Buttons (hier nicht im Detail beschrieben). Wenn Sie Scilab verlassen, werden die im Arbeitsbereich erstellten Variablen gelöscht. Sie können Variablen in einer Datei mit der Funktion save speichern. Wenn Sie jedoch wirklich Variablen speichern müssen, die aus einigen Scilab-Ausdrücken resultieren, sollten Sie diese Ausdrücke in ein Scilab-Skript aufnehmen. Mehr über Scripts in Kürze. Es gibt verschiedene Möglichkeiten, Zahlen einzugeben (die pi ist eine eingebaute Konstante). Hier sind einige illustrative Beispiele (ich nehme an, dass Sie die Prinzipien aus diesen Beispielen sehen): 0.1, 1e-1, 23, exp (1), pi Die Antwort ist in der folgenden Abbildung gezeigt. Verschiedene Möglichkeiten, Zahlen einzugeben Mit der Formatfunktion können Sie festlegen, wie Zahlen im Befehlsfenster angezeigt werden, aber die interne Darstellung der Nummer in Scilab ist unabhängig vom Anzeigeformat. Wir werden nicht auf Details schauen. Wenn Sie das Anzeigeformat ändern müssen, konsultieren Sie die Scilab-Hilfe. Scilab-Funktionen sind vektorisiert, d. h. Funktionen können mit vektoriellen Argumenten aufgerufen werden. (Ein Vektor ist einfach eine eindimensionale Matrix Wir kehren zu Vektor - und Matrixoperationen in einem späteren Abschnitt zurück.) Im folgenden Beispiel wird zuerst ein Vektor des Namens t erzeugt, dann wird dieser Vektor als Argument in der Sinusfunktion (die Sinusfunktion setzt voraus, dass das Argument ein Winkel im Bogenmaß ist). Die Antwort ist in der folgenden Abbildung dargestellt. Das Ergebnis der vektorisierten Funktion nennt sin (0.1t), wobei t ein Vektor ist. Ein Scilab-Skript ist eine Textdatei mit dem Namen. sce, die Scilab-Befehle enthält. Sie können das Skript mit dem eingebauten Scipad Editor bearbeiten. (Scripts können auch Namen haben. sci Der Voreinstellungsname, wenn ein fle in Scipad gespeichert wird, ist. sce.) Sie sollten Skripte sogar für kleine Aufgaben verwenden, weil auf diese Weise Sie alle Ihr quotprojectsquot in den Akten gespeichert haben, die für Dokumentation und auch gut sind Sehr bequem, wenn Sie alle Ihre Befehle nach einigen Änderungen ausführen möchten. Wir erstellen nun ein einfaches Skript und führen es dann aus. Das Ausführen eines Skripts ist das gleiche wie das Ausführen aller Befehle (von oben nach unten im Skript) an der Befehlszeile nacheinander. Starten Sie den Scipad-Editor, indem Sie das Editor-Menü (oder durch Ausführen des scipad-Befehls) auswählen. Geben Sie dann die in der folgenden Abbildung dargestellten Befehle ein. Der Scipad-Editor wird in der folgenden Abbildung gezeigt. Beachten Sie, dass doppelte Schrägstriche (//) verwendet werden, um Kommentare im Skript zu starten. Scilab-Skript des Namens script1.sce wurde im Scipad-Editor geöffnet Beachten Sie, dass Sie mehrere Scripts im gleichen Scipad-Fenster mit dem Menü Datei / Neu öffnen können. Speichern Sie das Skript mit dem Namen script1.sce (natürlich kann ein anderer Name verwendet werden) im Verzeichnis (Ordner) C: temp oder in einem beliebigen anderen Verzeichnis, das Sie bevorzugen. Es gibt zwei Möglichkeiten, das script1.sce-Skript auszuführen: Mit dem Menü "Ausführen / Laden in Scilab" in Scipad Durch Ausführen des Befehls exec script1.sce an der Befehlszeile können wir zunächst das Menü Ausführen ausführen: Wählen Sie das Menü Ausführen / Laden in das Scilab-Menü In Scipad. Das Ergebnis wird im Befehlsfenster angezeigt. Scf (1) // Öffnet die neue Figur mit der ID 1. (scf set current fig) plot (y) // Plot y gegen y-Indizes (ganze Zahlen entlang der x-Achse) Unten ist die Scilab-Figur mit dem Plot dargestellt. Entlang der x-Achse sind die Indizes des y-Vektors. Die Indizes sind ganze Zahlen von 1 bis 101. Bevor wir mit weiteren Plotterbefehlen fortfahren, sehen wir uns einige Schaltflächen und Menüs im Grafikfenster an. Klicken Sie im Bildfenster auf die Schaltfläche GED. Dies öffnet das Klicken auf die GED-Taste öffnet den Grafik-Editor, siehe die folgende Abbildung. Der Grafikeditor Mit dem Grafikeditor können Sie Linienfarben, Linienstil ändern, Etiketten zur Achse hinzufügen, Raster hinzufügen, usw. Die verschiedenen Optionen werden hier nicht beschrieben, da es sehr einfach ist, die Möglichkeiten selbst zu untersuchen. Viele der Optionen im Graphics Editor können alternativ mit Optionen auf den Plotbefehl gesetzt werden. Dies wird in nachfolgenden Beispielen gezeigt. Sie können aus dem Plot verschiedene Grafikdateien erstellen: Wählen Sie im Bildfenster das Menü Datei / Exportieren. Daraufhin wird das Dialogfeld "Exportieren" geöffnet. Das Dialogfeld "Exportieren" im Grafikfenster Wenn Sie eine Graphikdatei erstellen möchten, die in einen Dokumentenprozessor eingefügt werden soll, sollten Sie als MS Word oder Scientific Workplace Enhanced Meta File (EMF) auswählen, wobei es sich um ein vektorisiertes Grafikformat handelt Kann vergrößert werden und immer noch scharf aussehen. EMF-Dateien können jedoch nicht in nativen Webdokumenten verwendet werden, z. B. In HTML-Dateien in einem Webbrowser angezeigt werden. In diesem Fall sollten Sie das GIF-Format auswählen (dieses Format gibt Ihnen keine vektorisierten Grafiken). Wir gehen weiter mit Blick auf weitere Optionen auf den Plot-Befehl. Nehmen Sie an, dass wir y gegen t in Abbildung 1, die die gleiche Figur ist, wie wir oben verwendet haben. Dies geschieht mit der Befehlsschrift (t, y), wobei natürlich angenommen wird, daß die Vektoren t und y dieselbe Länge haben (gleiche Anzahl von Elementen). Wenn Sie nur den Befehl plot verwenden, fügt das neue Diagramm dem vorherigen Diagramm zwei (oder mehr Kurven) hinzu. Normalerweise ist dies nicht das, was Sie wollen. Um das vorherige Diagramm zu löschen, verwenden wir den Befehl clf (clear figure), bevor wir den Plot-Befehl verwenden. // Löscht eine Zeichnung und zeichnet in der gleichen Abbildung auf: scf (1) // Setzt Abbildung 1 auf die aktuelle Figur clf // löscht die Figurplot (t, y) // Plots in Abbildung 1 Das Ergebnis wird in der Abbildung unten. Beachten Sie, dass die x-Achse nun die t-Werte enthält. Angenommen, Sie möchten den Plot in einer neuen Abbildung 2 anstelle der zuvor geöffneten Abbildung 1 anzeigen: scf (2) // Setzt Abbildung 2, um ein aktuelles Diagramm zu werden (t, y) // Plots in Abbildung 1
Comments
Post a Comment