Sunday, 16 April 2017

Moving Average 2d

Ich habe ein Array, wo diskrete Sinuswerte aufgezeichnet und gespeichert werden Ich möchte die max und min der Wellenform finden Da die Sinus-Daten aufgezeichneten Spannungen mit einem DAQ sind, wird es ein Geräusch geben, also möchte ich einen gewichteten Durchschnitt ausführen Meine sinewave Werte, hier ist mein Code so weit. Meine Ausgabe scheint in der zweiten für Schleife zu sein, wo je nach meiner durchschnittlichen Fenstergröße zu filtern, möchte ich die Zahlen im Fenster zusammenfassen, um den Durchschnitt von ihnen zu nehmen, die ich bekomme Error saying. Ich bin ein EE mit sehr wenig Erfahrung in der Programmierung, so dass jede Hilfe wäre sehr dankbar. asked 29. Mai 13 um 18 09. Paul, danke für die Empfehlung Es sollte jedoch beachtet werden, dass obwohl xy doesn t einen Fehler zu machen , Es gewann t geben das erwartete Ergebnis in den OP-Code entweder OP müsste deine Korrektur verwenden, aber mit yx filtrieren und aus der Schleife herausgenommen werden oder die Summe sollte entfernt werden, mit der xy Indexierung links an Ort und Stelle am 30. Mai 13 Um 17 18. tom10, ich bin mir sicher, dass du recht hast Meine Antwort war meistens irgendeine Intuition, was das Problem am wahrscheinlichsten war, ich bin nicht über die Problemdomäne kenntnisreich, um die Genauigkeit des tatsächlichen Algorithmus zu kennen, weshalb ich das verwies OP zu Ihrer Antwort Paul Woolcock Mai 30 13 bei 17 22. Die anderen Antworten korrekt beschreiben Sie Ihren Fehler, aber diese Art von Problem ruft wirklich für die Verwendung von numpy Numpy wird schneller laufen, mehr Speicher effizient und ist ausdrucksvoller und bequem für diese Art des Problems Hier ist ein Beispiel. Wenn Sie don t wollen, um numpy verwenden, sollte es auch darauf hingewiesen werden, dass es einen logischen Fehler in Ihrem Programm, die in der TypeError Das Problem ist, dass in der Zeile. Sie verwenden Sie Summe in der Schleife Wo du auch die Summe berechnen kannst Du musst also die Summe ohne die Schleife verwenden oder durch das Array schleifen und alle Elemente addieren, aber nicht beide, und das macht man beide, dh die Summe an das indizierte Arrayelement, das führt dazu Der Fehler in der ersten Stelle Das ist, hier sind zwei solutions. Created am Mittwoch, 08. Oktober 2008 20 04 Zuletzt aktualisiert am Donnerstag, den 14. März 2013 01 29 Geschrieben von Batuhan Osmanoglu Hits 41542.Moving Average In Matlab. Oft finde ich mich in Notwendigkeit der Mittelung der Daten Ich muss das Rauschen ein wenig reduzieren Ich schrieb paar Funktionen, um genau das zu tun, was ich will, aber Matlab s eingebaute Filterfunktion funktioniert ziemlich gut auch hier Hier schreibe ich über 1D und 2D Mittelung von data.1D Filter kann mit der Filterfunktion realisiert werden Die Filterfunktion benötigt mindestens drei Eingangsparameter den Zählerkoeffizienten für den Filter b, den Nennerkoeffizienten für den Filter a und die Daten X natürlich. Ein laufender Durchschnittsfilter kann einfach durch definiert werden. Für 2D-Daten können wir die Funktion Matlab s filter2 verwenden Für weitere Informationen darüber, wie der Filter funktioniert, können Sie tasten. Hier ist eine schnelle und verschmutzte Implementierung eines 16 x 16 gleitenden durchschnittlichen Filters Zuerst müssen wir den Filter definieren Da alles, was wir wollen Ist gleicher Beitrag aller Nachbarn können wir einfach die Funktion verwenden Wir teilen alles mit 256 16 16 ab, da wir nicht die allgemeine Amplitude des Signals ändern wollen. Um den Filter anzuwenden, können wir einfach folgendes sagen. Below sind die Ergebnisse Für Phase eines SAR-Interferogramms In diesem Fall Range ist in Y-Achse und Azimut ist auf X-Achse abgebildet Der Filter war 4 Pixel breit im Bereich und 16 Pixel breit in Azimuth. Calculating Moving Average. This VI berechnet und zeigt den gleitenden Durchschnitt, mit Eine vorgewählte Zahl. Zuerst initialisiert das VI zwei Schieberegister Das obere Schieberegister wird mit einem Element initialisiert und fügt dann den vorherigen Wert kontinuierlich mit dem neuen Wert hinzu. Dieses Schieberegister hält die Summe der letzten x Messungen nach dem Teilen der Ergebnisse des Addierens Funktion mit dem vorgewählten Wert, berechnet das VI den gleitenden Mittelwert Das untere Schieberegister enthält ein Array mit der Dimension Durchschnitt Dieses Schieberegister hält alle Werte der Messung. Die Ersatzfunktion ersetzt den neuen Wert nach jeder Schleife. Dieses VI ist sehr effizient und Schnell, weil es die Funktion "Ersetzen Element" innerhalb der while-Schleife verwendet, und es initialisiert das Array, bevor es in die Schleife. This VI wurde in LabVIEW 6 erstellt 1.Bookmark Share.


No comments:

Post a Comment