Monday 9 January 2017

Gleitender Durchschnitt Matlab

Ich muss einen gleitenden Durchschnitt über eine Datenreihe innerhalb einer for-Schleife berechnen. Ich muss den gleitenden Durchschnitt über N9 Tage erhalten. Das Array Im-Berechnen ist 4 Reihe von 365 Werten (M), die selbst Mittelwerte eines anderen Satzes von Daten sind. Ich möchte die Mittelwerte meiner Daten mit dem gleitenden Durchschnitt in einem Diagramm darstellen. Ich googeln ein wenig über gleitende Durchschnitte und den conv Befehl und fand etwas, das ich versuchte, in meinem Code umzusetzen: So grundsätzlich berechne ich meinen Durchschnitt und plot ihn mit einem (falschen) gleitenden Durchschnitt. Ich wählte die wts Wert direkt an der Mathworks-Website, so dass ist falsch. (Quelle: mathworks. nlhelpeconmoving-average-trend-estimation. html) Mein Problem aber ist, dass ich nicht verstehe, was dieses wts ist. Könnte jemand erklären, wenn es etwas mit den Gewichten der Werte zu tun hat: das ist in diesem Fall ungültig. Alle Werte werden gleich gewichtet. Und wenn ich das völlig falsch mache, könnte ich etwas Hilfe dabei haben Mein aufrichtigster Dank. Die Verwendung von conv ist eine hervorragende Möglichkeit, einen gleitenden Durchschnitt zu implementieren. In dem Code, den Sie verwenden, ist wts, wie viel Sie jeden Wert wiegen (wie Sie ahnen). Die Summe dieses Vektors sollte immer gleich Eins sein. Wenn Sie jeden Wert gleichmäßig gewichten und eine Größe N bewegten Filter dann tun möchten, würden Sie tun möchten Mit dem gültigen Argument in conv wird mit weniger Werten in Ms, als Sie in M ​​haben. Verwenden Sie diese, wenn Sie dont die Auswirkungen von Nullpolsterung. Wenn Sie die Signalverarbeitung Toolbox haben, können Sie cconv verwenden, wenn Sie einen kreisförmigen gleitenden Durchschnitt ausprobieren möchten. Etwas wie Sie sollten die conv und cconv Dokumentation für weitere Informationen lesen, wenn Sie havent bereits. Sie können Filter verwenden, um einen laufenden Durchschnitt zu finden, ohne eine for-Schleife zu verwenden. Dieses Beispiel findet den laufenden Durchschnitt eines 16-Element-Vektors unter Verwendung einer Fenstergröße von 5. 2) glatt als Teil der Curve Fitting Toolbox (die in den meisten Fällen verfügbar ist) yy glatt (y) glättet die Daten in dem Spaltenvektor Y unter Verwendung eines gleitenden Durchschnittsfilters. Die Ergebnisse werden im Spaltenvektor yy zurückgegeben. Die voreingestellte Spanne für den gleitenden Durchschnitt ist 5.29 September, 2013 Gleitender Durchschnitt durch Faltung Was ist gleitender Durchschnitt und was ist es gut für Wie gleitende Mittelung durch Faltung durchgeführt wird Beweglicher Durchschnitt ist eine einfache Operation, die gewöhnlich verwendet wird, um das Rauschen eines Signals zu unterdrücken: Wir Setzen Sie den Wert jedes Punktes auf den Mittelwert der Werte in seiner Umgebung. Nach einer Formel: Hier ist x die Eingabe und y das Ausgangssignal, während die Größe des Fensters w ist, die ungerade sein soll. Die obige Formel beschreibt eine symmetrische Operation: Die Proben werden von beiden Seiten des aktuellen Punktes genommen. Unten ist ein Beispiel aus dem wirklichen Leben. Der Punkt, auf dem das Fenster gelegt wird, ist tatsächlich rot. Werte außerhalb x sind Nullen: Um zu spielen und sehen die Auswirkungen der gleitenden Durchschnitt, werfen Sie einen Blick auf diese interaktive Demonstration. Wie man es durch Faltung erkennt Wie Sie vielleicht erkannt haben, ist die Berechnung des einfachen gleitenden Mittels ähnlich der Faltung: In beiden Fällen wird ein Fenster entlang des Signals geschoben und die Elemente im Fenster zusammengefasst. Also, geben Sie ihm einen Versuch, die gleiche Sache zu tun, indem Sie Faltung. Verwenden Sie die folgenden Parameter: Die gewünschte Ausgabe ist: Als erster Ansatz versuchen wir, was wir durch Faltung des x-Signals durch den folgenden k-Kernel erreichen: Der Ausgang ist genau dreimal größer als erwartet. Es ist auch ersichtlich, dass die Ausgabewerte die Zusammenfassung der drei Elemente im Fenster sind. Es ist, weil während der Faltung das Fenster entlang geschoben wird, werden alle Elemente in ihm mit einem multipliziert und dann zusammengefasst: yk 1 cdot x 1 cdot x 1 cdot x Um die gewünschten Werte von y zu erhalten. Wird die Ausgabe durch 3 geteilt: Durch eine Formel mit der Teilung: Aber wäre es nicht optimal, die Teilung während der Konvolution zu machen Hier kommt die Idee, indem wir die Gleichung umordnen: So werden wir den folgenden k Kernel verwenden: Auf diese Weise werden wir Erhalten Sie die gewünschte Ausgabe: Im Allgemeinen: wenn wir gleitenden Durchschnitt durch Faltung mit einer Fenstergröße von w machen wollen. Wir verwenden den folgenden k-Kernel: Eine einfache Funktion, die den gleitenden Durchschnitt macht, ist: Eine Beispielnutzung ist: gleitender Durchschnitt Hallo Steve Amphlett, vielen Dank für Ihre Antwort. Nun, ich habe einen Strom von Daten und ich möchte die Daten alle 60 Sekunden Durchschnitt Ich brauche nicht, um die Fenstergröße neu zu gestalten Ich brauche, um das Fenster zu fixieren. Zum Beispiel habe ich diese Menge von Daten: Time 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 brauche durchschnittlichen 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 alle 60 gt Sekunden gt Ich brauche nicht, um die Fenstergröße neu zu gestalten Ich brauche, um das Fenster gt fixiert. Zum Beispiel habe ich diese Menge von Daten: gt ltsnip, die Daten gt Ich brauche zu durchschnittlichen PatientIndex alle 60 Sekunden Ich hoffe, ich habe gt mir klar. So wollen Sie Ihre Amonut von Daten von einem Wert pro Sekunde auf einen durchschnittlichen Wert pro Minute reduzieren Wenn so youd so etwas tun: Daten Ihre Daten n ceil (Länge (Daten) 60) Anzahl der Mittelwerte 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) Error) 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 17102006) return end if (N (1))) nanmean (in) ones (Größe (in)) return end if out 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)) sonstif ((i - m) gt 1) (I - m) lt 1) ((im) gt nx) aus (i) nanmean (in (i - m) (I) nanmean (in (n)) end (i) nanmean (in (n) Zeit (Sek.) Ylabel (Patient Index (BSI)) title (BioSign0004 PatientID 0126 17102006) 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. Auf diese Weise können Sie leicht verfolgen Themen, die Sie interessiert sind in. Um Ihre Watch-Liste, klicken Sie auf die 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 ein Element zu meiner Watchlist hinzu Um Suchkriterien zu Ihrer Watchlist hinzuzufügen, suchen Sie den gewünschten Begriff im Suchfeld. 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. 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. Um einen Thread zu Ihrer Watch-Liste hinzuzufügen, gehen Sie auf die Thread-Seite und klicken Sie auf den Link diesen Thread zu meinem watch listquot Link am oberen Rand 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 Das 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, um auf die Newsgroups zugreifen Verwenden Sie einen Newsreader über Ihre Schule, Arbeitgeber oder Internet Service Provider Pay for newsgroup Zugang 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 Anweisungen siehe: slyckng. phppage2 Wählen Sie Ihr Land aus


No comments:

Post a Comment