Filter Express VI Gibt die folgenden Filtertypen an: Tiefpass, Hochpass, Bandpass, Bandsperre oder Glättung. Die Voreinstellung ist Lowpass. Enthält folgende Optionen: Cutoff Frequency (Hz) 8212Spezifiziert die Cutoff-Frequenz des Filters. Diese Option ist nur verfügbar, wenn Sie im Pulldown-Menü "Filtertyp" die Option Tiefpass oder Hochpass auswählen. Die Voreinstellung ist 100. Low Cutoff-Frequenz (Hz) 8212Spezifiziert die niedrige Cutoff-Frequenz des Filters. Die Low Cutoff-Frequenz (Hz) muss kleiner als High Cutoff-Frequenz (Hz) sein und das Nyquist-Kriterium beachten. Die Standardeinstellung ist 100. Diese Option ist nur verfügbar, wenn Sie im Pulldown-Menü "Filtertyp" die Option Bandpass oder Bandstop auswählen. Hohe Cutoff-Frequenz (Hz) 8212Spezifiziert die hohe Cutoff-Frequenz des Filters. Hohe Cutoff-Frequenz (Hz) muss größer als Low Cutoff-Frequenz (Hz) sein und das Nyquist-Kriterium beachten. Die Standardeinstellung ist 400. Diese Option ist nur verfügbar, wenn Sie im Pulldown-Menü "Filtertyp" die Option Bandpass oder Bandstop auswählen. Finite Impulsreaktionsfilter (FIR-Filter) 8212 Erstellt ein FIR-Filter. Die nur von den aktuellen und vergangenen Eingängen abhängt. Da der Filter nicht von vergangenen Ausgängen abhängt, zerfällt die Impulsantwort in einer begrenzten Zeit auf Null. Da FIR-Filter eine lineare Phasenantwort zurückgeben, verwenden Sie FIR-Filter für Anwendungen, die lineare Phasenreaktionen erfordern. Taps 8212Spezifiziert die Gesamtzahl der FIR-Koeffizienten, die größer als Null sein müssen. Die Standardeinstellung ist 29. Diese Option ist nur verfügbar, wenn Sie die Filteroption Finite Impulse Response (FIR) auswählen. Eine Erhöhung des Wertes von Taps bewirkt, daß der Übergang zwischen dem Durchlaßband und dem Sperrband steiler wird. Wenn jedoch der Wert von Taps zunimmt, wird die Verarbeitungsgeschwindigkeit langsamer. Infinite impulse response (IIR) filter 8212 Erstellt ein IIR-Filter, das ein digitales Filter mit Impulsantworten ist, die theoretisch unendlich lang sein können. Topologie 8212 Bestimmt den Designtyp des Filters. Sie können entweder ein Butterworth, Chebyshev, Inverse Chebyshev, Elliptic oder Bessel-Filter-Design zu erstellen. Diese Option ist nur verfügbar, wenn Sie die Option Infinite Impulsantwort (IIR) auswählen. Die Standardeinstellung ist Butterworth. Auftrag 8212Order des IIR-Filters, der größer als Null sein muss. Diese Option ist nur verfügbar, wenn Sie die Option Infinite Impulsantwort (IIR) auswählen. Die Voreinstellung ist 3. Durch Erhöhung des Auftragswertes wird der Übergang zwischen dem Durchlassband und dem Sperrband steiler. Wenn jedoch der Wert der Ordnung zunimmt, wird die Verarbeitungsgeschwindigkeit langsamer und die Anzahl der verzerrten Punkte am Beginn des Signals nimmt zu. Gleitender Durchschnitt 8212Filtriert nur FIR-Koeffizienten. Diese Option ist nur verfügbar, wenn Sie im Pulldown-Menü "Filtertyp" die Option "Glättung" auswählen. Rectangular 8212Spezifiziert, dass alle Samples im Moving-Average-Fenster gleichmäßig in der Berechnung jedes geglätteten Samples gewichtet werden. Diese Option ist nur verfügbar, wenn Sie im Pulldown-Menü "Filtertyp" die Option "Glättung" und die Option "Gleitender Durchschnitt" auswählen. Dreieck 8212Spezifiziert, dass das bewegte Gewichtungsfenster, das auf die Proben angewendet wird, dreieckig ist, wobei der Spitzenwert in der Mitte des Fensters zentriert ist, wobei er symmetrisch auf beiden Seiten der mittleren Probe nach oben abfällt. Diese Option ist nur verfügbar, wenn Sie im Pulldown-Menü "Filtertyp" die Option "Glättung" und die Option "Gleitender Durchschnitt" auswählen. Halbbreite des gleitenden Durchschnittes 8212Spezifiziert die Halbwertsbreite des gleitenden Durchschnittsfensters in Stichproben. Der Standardwert ist 1. Für eine halbe Breite des gleitenden Mittelwerts von M ist die gesamte Breite des gleitenden Durchschnittsfensters N 1 2M Abtastwerte. Daher ist die volle Breite N immer eine ungerade Anzahl von Abtastwerten. Diese Option ist nur verfügbar, wenn Sie im Pulldown-Menü "Filtertyp" die Option "Glättung" und die Option "Gleitender Durchschnitt" auswählen. Exponential 8212Yields erster Ordnung IIR Koeffizienten. Diese Option ist nur verfügbar, wenn Sie im Pulldown-Menü "Filtertyp" die Option "Glättung" auswählen. Zeitkonstante des exponentiellen Mittelwertes 8212Spezifiziert die Zeitkonstante des exponentiellen Gewichtungsfilters in Sekunden. Der Standardwert ist 0,001. Diese Option ist nur verfügbar, wenn Sie im Pulldown-Menü "Filtertyp" die Option "Glättung" und die Option "Exponential" auswählen. Zeigt das Eingangssignal an. Wenn Sie Daten mit dem Express-VI verbinden und ausführen, zeigt das Eingangssignal die realen Daten an. Wenn Sie das Express-VI schließen und erneut öffnen, zeigt das Eingangssignal Beispieldaten an, bis Sie das Express-VI erneut ausführen. Zeigt eine Vorschau der Messung an. Das Ergebnisvorschau-Diagramm zeigt den Wert der ausgewählten Messung mit einer gestrichelten Linie an. Wenn Sie Daten an das Express-VI ausgeben und das VI ausführen, zeigt Ergebnisvorschau reale Daten an. Wenn Sie das Express-VI schließen und erneut öffnen, zeigt Ergebnisvorschau Beispieldaten an, bis Sie das VI erneut ausführen. Wenn die Grenzfrequenzwerte ungültig sind, zeigt die Ergebnisvorschau keine gültigen Daten an. Enthält die folgenden Optionen: Hinweis: Das Ändern der Optionen im Ansichtsmodusabschnitt wirkt sich nicht auf das Verhalten des Filter Express-VIs aus. Verwenden Sie die Ansichtsmodusoptionen, um zu visualisieren, was der Filter für das Signal ausführt. LabVIEW speichert diese Optionen nicht, wenn Sie das Konfigurationsdialogfeld schließen. Signale 8212Die Filterantwort wird als reale Signale angezeigt. Als Spektrum anzeigen 8212Spezifiziert, ob die realen Signale der Filterreaktion als Frequenzspektrum angezeigt werden sollen oder die Anzeige als zeitbasierte Anzeige zu verlassen. Die Frequenzanzeige ist nützlich, um zu sehen, wie der Filter die verschiedenen Frequenzkomponenten des Signals beeinflusst. Standardmäßig wird die Filterantwort als zeitbasierte Anzeige angezeigt. Diese Option ist nur verfügbar, wenn Sie die Option Signals auswählen. Übertragungsfunktion 8212Die Filterantwort wird als Übertragungsfunktion dargestellt. Enthält die folgenden Optionen: Magnitude in dB 8212Phält das Magnitudenverhalten des Filters in Dezibel. Frequenz im Protokoll 8212PHält den Frequenzgang des Filters auf einer logarithmischen Skala. Zeigt die Amplitudenreaktion des Filters an. Diese Anzeige ist nur verfügbar, wenn Sie die Funktion Übertragungsmodus aufrufen wählen. Zeigt den Phasengang des Filters an. Diese Anzeige ist nur verfügbar, wenn Sie die Funktion View Mode to Transfer einstellen. Berechnen von Moving Average Dieses VI berechnet und zeigt den gleitenden Durchschnitt mit einer vorgewählten Nummer an. Zunächst initialisiert das VI zwei Schieberegister. Das obere Schieberegister wird mit einem Element initialisiert und fügt dann kontinuierlich den vorherigen Wert mit dem neuen Wert hinzu. Dieses Schieberegister hält die Summe der letzten x Messungen. Nach dem Teilen der Ergebnisse der Add-Funktion mit dem vorgewählten Wert berechnet das VI den gleitenden Mittelwert. Das untere Schieberegister enthält ein Array mit der Dimension Average. Dieses Schieberegister hält alle Werte der Messung. Die Ersatzfunktion ersetzt nach jeder Schleife den neuen Wert. Dieses VI ist sehr effizient und schnell, weil es die replace-Element-Funktion innerhalb der while-Schleife verwendet, und es initialisiert das Array, bevor es die Schleife eintritt. Dieses VI wurde in LabVIEW 6.1 erstellt. Lesezeichen amp ShareSimple Moving Average VI In der Regel, wenn Leute über einen Moving Average sprechen, bedeuten sie den Punkt N mit dem Durchschnitt der M Punkte um den Punkt N. Angenommen, ich habe 100 Punkte, deren Werte 1, 2, 3. 100 sind, und das möchte ich Tun Sie einen 5-Punkt Moving Average. Das erste, was zu beachten ist, dass es einen gleitenden Durchschnitt des dritten Punktes ist der Durchschnitt von 1, 2, 3, 4, 5 3. Der Durchschnitt des vierten Punktes ist der Durchschnitt von 2, 3, 4, 5, 6 4. Dies ist jedoch vielleicht ein zu einfaches Beispiel. Wie wäre es mit dem Durchschnitt einer Step-Funktion, 0 von 1 bis 10, dann 20 danach. Wieder, werfen Punkte 1 und 2. Der Mittelwert der Punkte 1-5 (in Punkt 3 gehen) 0 (da alle Punkte sind 0). Ähnlich wie bei Punkt 4, 5, 6,7 und 8. Jedoch ist Punkt 9 der Durchschnitt von 0, 0, 0, 0, 20 4. Wie wäre es mit Punkt 10 Nun, es sollte der Durchschnitt von 0, 0, 0 sein , 20, 20 8, aber erinnerst du dich nicht zu überschreiben Punkt 9 Hmm, scheint, wie müssen wir zwei Kopien des Array (das ist in der Regel teuer) zu halten. Es gibt mehrere Möglichkeiten, dies zu vermeiden. Verstehen Sie, wo das Problem im vorherigen Absatz auftritt Wenn nicht, versuchen Sie dies mit Bleistift und Papier (oder versuchen Sie es in LabVIEW Codierung). Ill geben Ihnen die Antwort, so dass Sie überprüfen können - der gleitende Durchschnitt der Schrittfunktion ist -, -, 0, 0, 0, 0, 0, 0, 0, 4, 8, 12, 16, 20, 20 , 20. -, - (wobei - die leeren Werte an den Enden des Arrays sind, die Punkte, die Sie nicht genügend Nachbarn haben). P. S. - es würde mich nicht wundern, wenn es werent eine LabVIEW-Funktion, die dies für Sie tut. Aber wenn Sie LabVIEW lernen und ein besseres Verständnis davon haben wollen, wie die Algorithmen, die Sie in Arbeit stecken, es nie schaden, zu spielen und es selbst auszuprobieren. Sie könnten sogar kommen mit einer Verbesserung (mehrere von uns haben das getan.). Dank für die Sensibilisierung in Bezug auf die feineren Punkte der Moving Average Methode. Dieses ist schließlich ein statistisches Werkzeug, das hilft, zu sehen, was Sie die Abstraktion der Distraktoren sehen möchten. So ist die Methode verpflichtet, einige Defizite in einigen Situationen oder Kontext haben. Aber ich denke, seine perfekt geeignet für meine Art dof Datenlogging - es ist ein Druck-oder Temperatur-oder Flow-Signal - und ich erwerben bei etwas wie 400 Proben s und verwenden Sie dann eine gemittelte einzelne Probe. Und der Prozess ist ziemlich langsam, da mein Haupt-Code läuft bei nicht mehr als 20 Hz. Also, wenn ich ein 5 Beispiel Mähen durchschnittlich, meine erste Probe kommt 5 x 50ms später, dann für alle 50ms bekomme ich eine gültige Probe. Grundsätzlich bin ich mehr auf Trends und nicht vor Ort Werte betroffen. In diesem gibt es wenig Sorgen über verpasste Proben oder Schurkenwerte. Natürlich würde ich nicht wagen, dies für eine Step-Funktion zu verwenden. Das wäre grausam. Raghunathan LV2012 zur Automatisierung von Hydraulikprüfständen. Nachricht 4 von 15 (883 Ansichten) Re: Simple Moving Average VI 03-30-2016 11:58 PM Es gibt mittlere ptbypt, die das gleiche tun. Sie können den Code überprüfen, wenn Sie möchten. Ein großer Fehler in Ihrem Code ist die Tatsache, dass Sie ständig wachsen und schrumpfen ein bestehendes Array. Sie sollten versuchen, eine Lösung zu finden, die an Ort und Stelle auf einem Array mit fester Größe arbeitet. Mai-Beispiele wurden auf dem Forum im Laufe der Jahre bekannt (siehe hee zum Beispiel). Das Mittel interessiert nicht, wenn die Elemente außer der Ordnung sind, also können Sie das älteste Element einfach ersetzen, egal wo es lokalisiert wird. Außerdem wird das neue Element dem Anfang eines vorhandenen Arrays vorangestellt, das immer viel teurer ist als das Anhängen an das Ende. Kann Ihre Probengröße nicht ändern, sobald das VI ausgeführt wird. Ihr Schieberegister sollte mit einem leeren Array initialisiert werden, kein Array, das bereits ein einzelnes Element enthält, das Null ist. (Diese zusätzliche Null gibt falsche Mittelwerte) Ihr Code sollte in ein subVI gemacht werden, so dass es wieder verwendet werden kann (ähnlich wie die ptbypt-Version). Ihr VI kann nie gestoppt werden, nur abgebrochen. Gute Optimierungstipps. Der Punkt bei der Initialisierung mit Zero hat mich verpasst. Und ja der Benutzer sollte nicht ändern Sie die Stichprobengröße, sobald es läuft. Schließlich werde ich ein SubVI machen und behandeln Dinge wie Stoppen etc .. Was den Punkt der Vorhersage als Anfügen des neuen Wertes auf Array, vielleicht gibt es eine Performance-Strafe, aber angesichts der Größe meiner Array Ich bin mir sicher, die CPU kümmert sich nicht anwyay . Aber für mich muss es so sein, wie ich die endgültigen Daten für die Darstellung eines Tendenz eines physikalischen Parameter. Dank für Ihre Zeit. Raghunathan LV2012 zur Automatisierung von Hydraulikprüfständen. Dank für die Sensibilisierung in Bezug auf die feineren Punkte der Moving Average Methode. Dieses ist schließlich ein statistisches Werkzeug, das hilft, zu sehen, was Sie die Abstraktion der Distraktoren sehen möchten. So ist die Methode verpflichtet, einige Defizite in einigen Situationen oder Kontext haben. Aber ich denke, seine perfekt geeignet für meine Art dof Datenlogging - es ist ein Druck-oder Temperatur-oder Flow-Signal - und ich erwerben bei etwas wie 400 Proben s und verwenden Sie dann eine gemittelte einzelne Probe. Und der Prozess ist ziemlich langsam, da mein Haupt-Code läuft bei nicht mehr als 20 Hz. Also, wenn ich ein 5 Beispiel Mähen durchschnittlich, meine erste Probe kommt 5 x 50ms später, dann für alle 50ms bekomme ich eine gültige Probe. Aha So wollen Sie nicht einen gleitenden Durchschnitt, sondern nur einen einfachen Durchschnitt. Das ist viel einfacher. Heres die Idee (die funktioniert besser mit einem ProducerConsumer Design) - Sagen Sie, dass Sie bei 400Hz abtasten, wollen die Daten bei 400 Hz speichern (dh alle Daten auf Festplatte speichern), wollen aber bei 20 Hz anzeigen (weil Sie Trends, eine längere Zeitbasis usw. sehen wollen). Richten Sie Ihr AD-System, um 20 Proben bei 400 Hz zu sammeln (beachten Sie, können Sie N Kanäle zur gleichen Zeit sammeln, so dass Sie ein 2D-Array von Samples. Sie erhalten die Daten (bei 20 Hz) aus der AD (so dass die Producer) , Enqueue es an den Verbraucher. Der Verbraucher beginnt mit dem Schreiben der Daten auf Festplatte (sollte nicht viel Zeit) Nun haben Sie ein 2D-Array - in einem For-Loop, auf einer Kanal-für-Kanal-Basis, durchschnittlich die 20 Punkte. Es ist zu beachten, dass dieses Schema (a) alle Daten verwendet, (b) handhabt Multi-Kanal-Daten mit aplomb (und, wenn Sie sind Aus dem Nahen Osten, wo sie wachsen, können Sie auch Ihre Daten mit einer saftigen Pflaume), und (c) können Sie sammeln Sie Ihre Daten aus dem AD-Gerät, speichern Sie Ihre Daten auf der Festplatte halten alle Punkte, und zeigen Sie Ihre Daten auf Den Bildschirm mit allen Ihren Punkten, sondern auch Mittelung zur Verbesserung der visuellen Signal-zu-Rausch-Verhältnis, alle ohne Datenverlust (Ive getan genau dies mit 24 Kanälen bei 1KHz, mit den Daten auf einem Remote-System genommen und an den PC gesendet Über TCPIP, so haben wir auch TCP-Verarbeitung in der Schleife). Willkommen in der spannenden Welt der Datenerfassung und - verarbeitung mit LabVIEW. Vertrauen Sie mir, dies ist ein wunderbares System für diese Art von Arbeit Basierend auf dem Feedback, das ich auf meinem ursprünglichen VI Ich habe die Moving Average Code in einem SubVI verfeinert. Ich habe es dann verwendet, um eine simulierte 10Channel-Daten Durchschnitt - nur um die Dinge einfach zu halten Ich sorgte dafür, dass alle10 Kanäle identische Daten. Man würde dann erwarten, den gleichen gleitenden Durchschnitt für alle 10 Kanäle zu erhalten. Ich bin überrascht, die kleine Varianz merke ich zwischen den Kanälen - im Allgemeinen sind sie in der Nähe, aber nicht genau. Und nur um den Prozess zu erklären, den ich versuche, habe ich auch ein XLS enclsoed. Woher kommt die Variation? Das unitialisierte Schieberegister im Sub VI. Raghunathan LV2012 zur Automatisierung von Hydraulikprüfständen. Missbrauch bei Moderator melden Nachricht 9 von 15 (786 Ansichten) Re: Simple Moving Average VI altenbach 04-01-2016 10:25 AM Dein Code macht immer noch keinen Sinn. SInce Sie den subVI ein Skalar zu einer Zeit aufrufen, sind Sie nicht bekommen, was Sie wollen, weil das Schieberegister nur erinnert sich die letzten N Skalaren, egal aus welchem Kanal es ist. Ihr Code ist noch sehr ineffizient und gewunden. (Zum Beispiel, warum Sie immer noch mit Insert in Array zu append (sowohl in der mani nad in der sub). (Sie könnten ein reenetrant subVI und eine parallele innerste FOR-Schleife verwenden, aber das scheint übermäßig kompliziert zu) Wenn Sie eine Missbrauch bei Moderator melden Nachricht 10 von 15 (770 Ansichten)
Comments
Post a Comment