Thursday, September 29, 2016

Gleitender Durchschnitt Im Matlab-Code

Erstellt am Mittwoch, den 08. Oktober 2008 um 20:04 Uhr Zuletzt aktualisiert am Donnerstag, den 14. März 2013 um 01:29 Uhr Geschrieben von: Batuhan Osmanoglu Zugriffe: 38958 Moving Average In Matlab Häufig bin ich in der Notwendigkeit der Mittelung der Daten, die ich haben, um das Rauschen ein wenig zu reduzieren Bit. Ich schrieb paar Funktionen, um genau das tun, was ich will, aber Matlabs in Filter-Funktion gebaut funktioniert auch ziemlich gut. Hier schreibe ich über 1D und 2D Mittelung von Daten. 1D-Filter kann mit der Filterfunktion realisiert werden. Die Filterfunktion erfordert mindestens drei Eingangsparameter: den Zählerkoeffizienten für den Filter (b), den Nennerkoeffizienten für den Filter (a) und natürlich die Daten (X). Ein laufender Mittelwertfilter kann einfach definiert werden: Für 2D-Daten können wir die Funktion Matlabs filter2 verwenden. Für weitere Informationen, wie der Filter funktioniert, können Sie eingeben: Hier ist eine schnelle und schmutzige Implementierung eines 16 von 16 gleitenden durchschnittlichen Filters. Zuerst müssen wir den Filter definieren. Da alles, was wir wollen, gleicher Beitrag aller Nachbarn ist, können wir einfach die Funktion verwenden. Wir teilen alles mit 256 (1616), da wir nicht den allgemeinen Pegel (Amplitude) des Signals ändern wollen. Zur Anwendung des Filters können wir einfach sagen, die folgenden Unten sind die Ergebnisse für die Phase eines SAR-Interferogramms. In diesem Fall ist der Bereich in der Y-Achse und der Azimut auf der X-Achse abgebildet. Der Filter war 4 Pixel breit im Bereich und 16 Pixel breit im Azimut. MATLAB, wie finde ich den dreitägigen gleitenden Durchschnitt einer bestimmten Spalte einer Matrix und füge den gleitenden Durchschnitt zu dieser Matrix ein Ich versuche, den dreitägigen gleitenden Durchschnitt von unten nach oben der Matrix zu berechnen. Ich habe meinen Code: Angesichts der folgenden Matrix a und Maske: Ich habe versucht Umsetzung der conv Befehl, aber ich erhalte einen Fehler. Hier ist der Befehl conv, den ich versucht habe, auf der 2. Spalte der Matrix a zu verwenden: Die Ausgabe, die ich wünsche, wird in der folgenden Matrix gegeben: Wenn Sie irgendwelche Vorschläge haben, würde ich es sehr schätzen. Vielen Dank für die Spalte 2 der Matrix a, ich bin die Berechnung der 3-Tage gleitenden Durchschnitt wie folgt und platziert das Ergebnis in Spalte 4 der Matrix a (Ich umbenannt Matrix a als 39desiredOutput39 nur für Abbildung). Der 3-tägige Durchschnitt von 17, 14, 11 ist 14 der dreitägige Durchschnitt von 14, 11, 8 ist 11 der 3-tägige Durchschnitt von 11, 8, 5 ist 8 und der 3-Tage-Durchschnitt von 8, 5, 2 ist 5. Es gibt keinen Wert in den unteren 2 Zeilen für die 4. Spalte, da die Berechnung für den dreitägigen gleitenden Durchschnitt am unteren Ende beginnt. Die 39valid39 Ausgabe wird nicht angezeigt werden, bis mindestens 17, 14 und 11. Hoffentlich macht dies Sinn ndash Aaron 12 August, In diesem Fall tun Sie zwei Dinge falsch: Zuerst muss Ihre Faltung durch drei (oder die Länge der gleitenden Durchschnitt) geteilt werden Zweitens beachten Sie die Größe von c. Sie können nicht einfach passen c in eine. Der typische Weg, um einen gleitenden Durchschnitt wäre, um die gleiche: aber das sieht nicht wie Sie wollen. Stattdessen sind Sie gezwungen, ein paar Zeilen zu verwenden: Dokumentation tsmovavg output tsmovavg (tsobj, s, lag) gibt den einfachen gleitenden Durchschnitt für das finanzielle Zeitreihenobjekt tsobj zurück. Verzögerung gibt die Anzahl der vorherigen Datenpunkte an, die beim Berechnen des gleitenden Mittelwerts mit dem aktuellen Datenpunkt verwendet werden. Ausgabe tsmovavg (Vektor, s, lag, dim) gibt den einfachen gleitenden Durchschnitt für einen Vektor zurück. Verzögerung gibt die Anzahl der vorherigen Datenpunkte an, die beim Berechnen des gleitenden Mittelwerts mit dem aktuellen Datenpunkt verwendet werden. Output tsmovavg (tsobj, e, timeperiod) gibt den exponentiellen gewichteten gleitenden Durchschnitt für das finanzielle Zeitreihenobjekt tsobj zurück. Der exponentielle gleitende Durchschnitt ist ein gewichteter gleitender Durchschnitt, wobei die Zeitperiode den Zeitraum angibt. Exponentielle gleitende Durchschnitte reduzieren die Verzögerung durch mehr Gewicht auf die jüngsten Preise. Zum Beispiel gewichtet ein 10-Perioden-exponentieller gleitender Durchschnitt den jüngsten Preis um 18,18. Exponentialprozent 2 / (TIMEPER 1) oder 2 / (WINDOWSIZE 1). Output tsmovavg (Vektor, e, timeperiod, dim) gibt den exponentiell gewichteten gleitenden Durchschnitt für einen Vektor zurück. Der exponentielle gleitende Durchschnitt ist ein gewichteter gleitender Durchschnitt, wobei die Zeitperiode den Zeitraum angibt. Exponentielle gleitende Durchschnitte reduzieren die Verzögerung durch mehr Gewicht auf die jüngsten Preise. Zum Beispiel gewichtet ein 10-Perioden-exponentieller gleitender Durchschnitt den jüngsten Preis um 18,18. (2 / (Zeitabschnitt 1)). Ausgabe tsmovavg (tsobj, t, numperiod) gibt den dreieckigen gleitenden Durchschnitt für das finanzielle Zeitreihenobjekt tsobj zurück. Der dreieckige gleitende Durchschnitt doppelt glättet die Daten. Tsmovavg berechnet den ersten einfachen gleitenden Durchschnitt mit Fensterbreite von ceil (numperiod 1) / 2. Dann berechnet es einen zweiten einfachen gleitenden Durchschnitt auf dem ersten gleitenden Durchschnitt mit der gleichen Fenstergröße. Ausgabe tsmovavg (Vektor, t, numperiod, dim) gibt den dreieckigen gleitenden Durchschnitt für einen Vektor zurück. Der dreieckige gleitende Durchschnitt doppelt glättet die Daten. Tsmovavg berechnet den ersten einfachen gleitenden Durchschnitt mit Fensterbreite von ceil (numperiod 1) / 2. Dann berechnet es einen zweiten einfachen gleitenden Durchschnitt auf dem ersten gleitenden Durchschnitt mit der gleichen Fenstergröße. Ausgabe tsmovavg (tsobj, w, Gewichte) gibt den gewichteten gleitenden Durchschnitt für das finanzielle Zeitreihenobjekt tsobj zurück. Indem Gewichte für jedes Element in dem sich bewegenden Fenster bereitgestellt werden. Die Länge des Gewichtsvektors bestimmt die Größe des Fensters. Wenn größere Gewichtungsfaktoren für neuere Preise und kleinere Faktoren für frühere Preise verwendet werden, ist der Trend eher auf die jüngsten Veränderungen ansprechen. Ausgabe tsmovavg (Vektor, w, Gewichte, dim) gibt den gewichteten gleitenden Durchschnitt für den Vektor zurück, indem Gewichte für jedes Element in dem sich bewegenden Fenster geliefert werden. Die Länge des Gewichtsvektors bestimmt die Größe des Fensters. Wenn größere Gewichtungsfaktoren für neuere Preise und kleinere Faktoren für frühere Preise verwendet werden, ist der Trend eher auf die jüngsten Veränderungen ansprechen. Output tsmovavg (tsobj, m, numperiod) gibt den modifizierten gleitenden Durchschnitt für das finanzielle Zeitreihenobjekt tsobj zurück. Der modifizierte gleitende Durchschnitt ist ähnlich dem einfachen gleitenden Durchschnitt. Betrachten Sie das Argument numperiod als die Verzögerung des einfachen gleitenden Mittelwerts. Der erste modifizierte gleitende Durchschnitt wird wie ein einfacher gleitender Durchschnitt berechnet. Nachfolgende Werte werden durch Addition des neuen Preises und Subtrahieren des letzten Durchschnitts aus der resultierenden Summe berechnet. Ausgabe tsmovavg (Vektor, m, numperiod, dim) gibt den modifizierten gleitenden Durchschnitt für den Vektor zurück. Der modifizierte gleitende Durchschnitt ist ähnlich dem einfachen gleitenden Durchschnitt. Betrachten Sie das Argument numperiod als die Verzögerung des einfachen gleitenden Mittelwerts. Der erste modifizierte gleitende Durchschnitt wird wie ein einfacher gleitender Durchschnitt berechnet. Nachfolgende Werte werden durch Addition des neuen Preises und Subtrahieren des letzten Durchschnitts aus der resultierenden Summe berechnet. Dim 8212 Dimension, um auf positive ganze Zahl mit dem Wert 1 oder 2 arbeiten Dimension zu arbeiten, als eine positive Ganzzahl mit einem Wert von 1 oder 2 angegeben. Dim ist ein optionales Eingabeargument, und wenn es nicht als eine Eingabe enthalten ist, die Standardeinstellung Wert 2 wird angenommen. Der Standardwert von dim 2 gibt eine zeilenorientierte Matrix an, wobei jede Zeile eine Variable ist und jede Spalte eine Beobachtung ist. Wenn dim 1. die Eingabe als Spaltenvektor oder spaltenorientierte Matrix angenommen wird, wobei jede Spalte eine Variable und jede Zeile eine Beobachtung ist. E 8212 Indikator für exponentiell gleitenden durchschnittlichen Charaktervektor Der exponentielle gleitende Durchschnitt ist ein gewichteter gleitender Durchschnitt, wobei der Zeitabschnitt der Zeitraum des exponentiellen gleitenden Durchschnitts ist. Exponentielle gleitende Durchschnitte reduzieren die Verzögerung durch mehr Gewicht auf die jüngsten Preise. Zum Beispiel gewichtet ein 10-Perioden-exponentieller gleitender Durchschnitt den jüngsten Preis um 18,18. Exponential Prozentsatz 2 / (TIMEPER 1) oder 2 / (WINDOWSIZE 1) timeperiod 8212 Länge der Zeitperiode nichtnegative Ganzzahl Wählen Sie Ihre Countrymoving Durchschnitt Hallo Steve Amphlett, ich danke Ihnen so sehr für Ihre Antwort. Nun, ich habe einen Datenstrom, und ich möchte die Daten auf durchschnittlich alle 60 Sekunden, die ich nicht brauchen, die Fenstergröße Ich reparierte das Fenster zu halten brauchen, um neu zu gestalten. Zum Beispiel habe ich diesen Satz von Daten: Zeit PatientIndex 11:36:34 0,83741 11:36:35 0,83741 11:36:36 1,07294 11:36:37 1,18611 11:36:38 1,18611 11:36:39 1,18611 11:36 : 40 1,32703 11:36:41 1,32703 11:36:42 1.32703 11:36:43 1.32703 11:36:44 1.32703 11:36:45 1.32703 11:36:46 1.32703 11:36:47 1.32703 11:36:48 1,32703 11:36:49 1,32703 11:36:50 1,32703 11:36:51 1,32703 11:36:52 1,32703 11:36:53 1,32703 11:36:54 1,49615 11:36:55 1,54860 11:36:56 1,54860 11 : 36: 57 1.54860 11:36:58 1.54860 11:36:59 1.54860 11:37:00 1.54860 11:37:01 1.54860 11:37:02 1.54860 11:37:03 1.54860 11:37:04 1.49615 11:37 : 05 1,49615 11:37:06 1,49615 11:37:07 1,49615 11:37:08 1,49615 11:37:09 1,49615 11:37:10 1,49615 11:37:11 1,49615 11:37:12 1,49615 ich muss durchschnittlich PatientIndex Alle 60 Sekunden hoffe ich, dass ich mich klar ausgedrückt habe. Fühlen Sie bitte sich frei, mit mir für alle weiteren Fragen in Verbindung zu treten. Ich freue mich auf Ihre Antwort Ich hoffe, Sie können mir dabei helfen. Dank im Voraus, schrieb Sam: gt gt gt Hallo Steve Amphlett, ich danke Ihnen so sehr für Ihre Antwort. Nun, ich habe einen gt Strom von Daten, und ich möchte die Daten auf durchschnittlich alle 60 Sekunden gt gt Ich brauche nicht die Fenstergröße ich das Fenster gt fixiert zu halten, müssen neu zu gestalten. Zum Beispiel habe ich diesen Satz von Daten: gt ltsnip, müssen die Daten gt ich durchschnittlich PatientIndex alle 60 Sekunden Ich hoffe, ich habe gt mich klar gemacht. So möchten Sie Ihre amonut von Daten von einem Wert pro Sekunde auf einen Mittelwert pro Minute zu reduzieren Wenn ja youd etwas tun, wie folgt aus: Daten, die Ihre Daten n ceil (Länge (Daten) / 60) Anzahl der Mitte datareshape (Daten, 6, N) Dann ist es nur ein Fall der Arbeit an den Säulen. Zum Beispiel: Sie können nanmean () aus der Statistik Toolbox verwenden, um die Mittel zu erhalten: meansnanmean (data) Ungetestet - Ich habe nicht diese TB Und so etwas zu Nan die schlechten Werte: Daten) gt12 Standorte von gt20 NaNs bedeutet (nans ) Nan Hallo Steve Amphlett, vielen Dank für Deine Antwort. Eine andere Frage, wie würde ich in der Lage, ein Diagramm von PatientIndex gegen die Zeit. Leider bin ich nicht vertraut mit Matlab I. e. Wie man die folgenden: Zeit PatientIndex 11:36:34 0.83741 11:36:35 0.83741 11:36:36 1.07294 11:36:37 1.18611 11:36:38 1.18611 11:36:39 1.18611 11:36:40 1.32703 11:36:41 1.32703 11:36:42 1.32703 11:36:43 1.32703 11:36:44 1.32703 11:36:45 1.32703 11:36:46 1.32703 11:36:47 1.32703 11:36:48 1.32703 11: 36:49 1,32703 11:36:50 1.32703 11:36:51 1.32703 11:36:52 1.32703 11:36:53 1.32703 11:36:54 1.49615 11:36:55 1.54860 11:36:56 1.54860 11:36: 57 1.54860 Ich freue mich auf Ihre Antwort. Vielen Dank im Voraus, Hallo Steve Ich habe Ihren Weg versucht, aber aus irgendeinem Grund hat es nicht funktioniert Ich bin nicht sicher, ob ich etwas falsch gemacht habe. Nun, ich habe einen Code geschrieben und ich möchte Sie, um es zu überprüfen und sehen, ob seine ok und es tut die Mittelung korrekt über 60 Sekunden. F (f) f (f) f (f) f (f) f (f) f (f) f (f) Fehler) leere Eingabedaten oder N null.)) Return if (N 1) out im Plot (t. Out) xlabel (Zeit (sec)) ylabel (Patient Index (BSI)) title (BioSign0004 PatientID 0126 17.10.2006 ) Return end if if (N gt (2 (nx - 1))) out nanmean (in) Einsen (Größe (in)) Rückgaberecht wenn Aus Nullen (Größe (in)) nans sum (in für i 1. nx, Wenn (i - m) lt 1) ((im) lt nx) aus (i) nanmean (in (1. im)) elseif ((i - m) gt 1) (I - m) (1) ((i - m) gt 1) ((im) gt nx) aus (i) nanmean (in (i - m ) (I) nanmean (in (nx)) (nans gt 12) aus (i) nanmean (in (nans)) end wenn end für i plot (t. Out) xlabel (Zeit (Sek)) ylabel (Patient Index (BSI)) title (BioSign0004 PatientID 0126 17.10.2006) Sie können sich Ihre Liste als Threads ansehen, die Sie mit Lesezeichen versehen haben. Sie können Tags, Autoren, Threads und sogar Suchergebnisse zu Ihrer Beobachtungsliste hinzufügen. So können Sie leicht den Überblick über Themen halten können, die youre interessiert an. Ihre Merkliste anzuzeigen, klicken Sie auf den quotMy Newsreaderquot Link. Um Artikel zu Ihrer Watchlist hinzuzufügen, klicken Sie auf den Link "quotadd to watch listquot" am unteren Rand einer Seite. Wie füge ich einen Artikel zu meiner Merkliste hinzu Suche Um Suchkriterien zu Ihrer Merkliste hinzuzufügen, suchen Sie im Suchfeld nach dem gewünschten Suchbegriff. Klicken Sie auf den quotAddd diese Suche zu meinem watch listquot Link auf der Suchergebnisseite. Sie können auch einen Tag zu Ihrer Überwachungsliste hinzufügen, indem Sie nach dem Tag mit der Anweisung quottag suchen: tagnamequot wobei tagname der Name des Tags ist, das Sie ansehen möchten. Autor Um einen Autor zu Ihrer Beobachtungsliste hinzuzufügen, gehen Sie zur Autorenprofilseite und klicken Sie auf den quotAdd this author zu meinem watch listquot Link am oberen Rand der Seite. Sie können auch einen Autor zu Ihrer Watch-Liste hinzufügen, indem Sie zu einem Thread, dass der Autor gebucht hat und klicken Sie auf den quotAdd diesen Autor zu meinem watch listquot Link. Sie werden benachrichtigt, wenn der Autor eine Post macht. Thread Um einen Thread zu deiner Watchlist hinzuzufügen, geh zur Threadseite und klicke auf den Thread zu meinem Watchlistquot Link oben auf der Seite. Über Newsgroups, Newsreader und MATLAB Central Was sind Newsgroups Die Newsgroups sind ein weltweites Forum, das allen offen steht. Newsgroups werden verwendet, um eine breite Palette von Themen zu diskutieren, Ankündigungen machen und Handelsdateien. Diskussionen sind Threaded, oder gruppiert in einer Weise, die Sie eine gebuchte Nachricht und alle ihre Antworten in chronologischer Reihenfolge lesen können. Dies macht es einfach, den Faden des Gesprächs zu folgen, und zu sehen, whatrsquos bereits gesagt, bevor Sie Ihre eigene Antwort posten oder eine neue Buchung. Newsgroup-Inhalte werden von Servern verteilt, die von verschiedenen Organisationen im Internet gehostet werden. Nachrichten werden unter Verwendung von offenen Standardprotokollen ausgetauscht und verwaltet. Keine einzelne Entität ldquoownsrdquo die Newsgroups. Es gibt Tausende von Newsgroups, die jeweils ein einziges Thema oder ein bestimmtes Thema behandeln. Der MATLAB Central Newsreader platziert und zeigt Nachrichten in der comp. soft-sys. matlab-Newsgroup an. Wie lese oder poste ich in den Newsgroups Sie können den integrierten Newsreader auf der MATLAB Central-Website verwenden, um Nachrichten in dieser Newsgroup zu lesen und zu posten. MATLAB Central wird von MathWorks gehostet. Nachrichten, die über den MATLAB Central Newsreader veröffentlicht werden, werden von allen Benutzern der Newsgroups gesehen, unabhängig davon, wie sie auf die Newsgroups zugreifen. Es gibt mehrere Vorteile der Verwendung von MATLAB Central. Ein Konto Ihr MATLAB Central-Konto ist mit Ihrem MathWorks-Konto verknüpft. Verwenden Sie die E-Mail-Adresse Ihrer Wahl Mit dem MATLAB Central Newsreader können Sie eine alternative E-Mail-Adresse als Ihre Buchungsadresse definieren, um Unfälle in Ihrer primären Mailbox zu vermeiden und Spam zu reduzieren. Spam-Kontrolle Die meisten Newsgroup-Spam wird vom MATLAB Central Newsreader gefiltert. Tagging-Nachrichten können von jedem angemeldeten Benutzer mit einem entsprechenden Label versehen werden. Tags können als Schlüsselwörter verwendet werden, um bestimmte Dateien von Interesse zu finden, oder als eine Möglichkeit, Ihre Bookmarking-Einträge zu kategorisieren. Sie können wählen, andere zu erlauben, Ihre Umbauten anzusehen, und Sie können otherrsquo Umbauten als auch die der Gemeinschaft an sehen oder suchen. Tagging bietet eine Möglichkeit, sowohl die großen Trends und die kleineren, mehr obskuren Ideen und Anwendungen zu sehen. Beobachtungslisten Durch das Einrichten von Überwachungslisten können Sie über Updates informiert werden, die für Beiträge erstellt wurden, die von Autor, Thread oder Suchvariablen ausgewählt wurden. Ihre Benachrichtigungswünsche können per E-Mail (täglich digest oder sofort), im My Newsreader oder per RSS-Feed gesendet werden. Andere Möglichkeiten für den Zugriff auf die Newsgroups Verwenden Sie einen Newsreader über Ihre Schule, Arbeitgeber oder Internet Service Provider Pay for newsgroup Zugriff von einem kommerziellen Anbieter Verwenden Sie Google Groups Mathforum. org bietet einen Newsreader mit Zugriff auf die comp. soft sys. matlab newsgroup Führen Sie Ihre eigenen Server. Für typische Befehle siehe: www. slyck-ngpage2 Wählen Sie Ihr CountryMoving-Mittelwertfilter für Verkehrsdaten Dieses Beispiel zeigt, wie die Verkehrsflussdaten mit Hilfe eines gleitenden Durchschnittsfilters mit einem 4-Stunden-Schiebefenster geglättet werden. Die folgende Differenzgleichung beschreibt einen Filter, der die aktuelle Stunde und die drei vorhergehenden Datenstunden mittelt. Importieren Sie die Verkehrsdaten und ordnen Sie die erste Spalte der Fahrzeugzählungen dem Vektor x zu. Erstellen Sie die Filterkoeffizientenvektoren. Berechnen Sie den 4-Stunden-gleitenden Durchschnitt der Daten und zeichnen Sie die ursprünglichen Daten und die gefilterten Daten. MATLAB und Simulink sind eingetragene Warenzeichen von The MathWorks, Inc. Siehe auch www. mathworks / trademarks für eine Liste anderer Marken, die Eigentum von The MathWorks sind. Weitere Produkt - oder Markennamen sind Warenzeichen oder eingetragene Warenzeichen der jeweiligen Eigentümer. Wähle dein Land


No comments:

Post a Comment