Monday 13 November 2017

Moving Average Labview Fpga


Berechnen von Moving Average. This VI berechnet und zeigt den gleitenden Durchschnitt mit einer vorgewählten Zahl an. 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 der Add-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 Messwerte der 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. LabVIEW Digital Filter Design Toolkit 8 2 1 Readme. Das LabVIEW Digital Filter Design Toolkit 8 2 1 richtet sich auf Installationsprobleme mit Windows Vista x64 Edition, die 64-Bit-Version, die im Digital Filter Design Toolkit vorhanden sind 2 2 Wenn Sie das Digital haben Filter Design Toolkit 8 2 installiert, müssen Sie diese Version vor der Installation des Digital Filter Design Toolkits 8 2 deinstallieren. 1.Diese Datei enthält Informationen, um Ihnen das Digital Filter Design Toolkit vorzustellen. Diese Datei bietet Ihnen auch Hilfsmittel, die Sie während der Arbeit verwenden können Mit dem Toolkit Die Datei enthält die folgenden Informationen, die Sie verstehen müssen. Das Digital Filter Design Toolkit bietet eine Sammlung von digitalen Filter Design-Tools zur Ergänzung der LabVIEW Full oder Professional Development System Das Digital Filter Design Toolkit hilft Ihnen, digitale Filter zu entwerfen, ohne dass Sie Erweiterte Kenntnisse der digitalen Signalverarbeitung oder der digitalen Filtertechniken Mit dem Digital Filter Design Toolkit können Sie Gleitkomma - und Fixpunkt-Digitalfilter entwerfen, analysieren und simulieren. Ohne vorherige Kenntnisse über die Programmierung in LabVIEW können Sie das Digital verwenden Filter Design Express-VIs, um grafisch mit Filter-Spezifikationen zu interagieren, um geeignete digitale Filter zu entwerfen. Das Digital Filter Design Toolkit bietet VIs, die Sie verwenden können, um eine digitale endliche Impulsantwort FIR oder unendliche Impulsantwort IIR-Filter zu entwerfen, analysieren die Eigenschaften des digitalen Filters, Ändern Sie die Implementierungsstruktur des digitalen Filters und verarbeiten Sie die Daten mit dem digitalen Filter Zusätzlich zu der Gleitkomma-Unterstützung bietet das Digital Filter Design Toolkit eine Reihe von VIs, mit denen Sie ein digitales Filtermodell erstellen können Die Eigenschaften des Fixpunkt-Digitalfilters, simulieren die Leistung des Fixpunkt-Digitalfilters und erzeugen Fixpunkt-C-Code, Integer-LabVIEW-Code oder LabVIEW-Feld-programmierbare Gate-Array-FPGA-Code für ein bestimmtes Fixpunktziel. Das Digital Filter Design Toolkit bietet VIs für Multirate Digital Filter Design Sie können die VIs verwenden, um einen Gleitkomma-einstufigen oder mehrstufigen Multirate-Filter zu entwerfen und zu analysieren. Sie können dann den entworfenen Multirate-Filter verwenden, um Daten zu verarbeiten. Das Digital Filter Design Toolkit bietet auch Eine Reihe von VIs, die Sie verwenden können, um einen Fixpunkt-Multirate-Filter zu erstellen, zu analysieren und zu simulieren. Sie können LabVIEW FPGA-Code aus dem entworfenen Fixpunkt-Multirate-Filter für ein NI Reconfigurable IO RIO-Ziel erzeugen. Zusätzlich zu grafischen Tools für Digital Filter Design, bietet das Digital Filter Design Toolkit auch MathScript-Funktionen, die LabVIEW MathScript unterstützt Diese MathScript-Funktionen ermöglichen es Ihnen, Filter in einer textbasierten Umgebung zu entwerfen. Um das Digital Filter Design Toolkit verwenden, müssen Sie National Instruments LabVIEW 8 2 oder höher, Vollständiges oder professionelles Entwicklungssystem, das auf dem Hostcomputer installiert ist. Hinweis Wenn Sie das Digital Filter Design Toolkit verwenden möchten, um LabVIEW FPGA Code aus einem Festkommarffilter zu generieren, müssen Sie das National Instruments LabVIEW FPGA Modul und die NI-RIO Software installiert haben Mit LabVIEW Stellen Sie sicher, dass Sie das FPGA-Modul und die NI-RIO-Software installieren, bevor Sie das Digital Filter Design Toolkit installieren. Wenn Sie das Digital Filter Design Toolkit bereits installiert haben, deinstallieren Sie das Digital Filter Design Toolkit, bevor Sie das FPGA Module und das NI-RIO Softwarepaket installieren Folgende Schritte zum Installieren des Digital Filter Design Toolkit. Prior zur Installation, stellen Sie sicher, dass Ihr Computer die folgenden Bedingungen erfüllt. Eine kompatible Version von LabVIEW ist installiert. Nein früheren Versionen des Digital Filter Design Toolkits, einschließlich Beta-Releases, sind installiert. LabVIEW ist Nicht ausgeführt. Hinweis Wenn Sie das Digital Filter Design Toolkit verwenden möchten, um LabVIEW FPGA-Code aus einem Festkomma-Filter zu generieren, stellen Sie sicher, dass Sie das FPGA-Modul und die NI-RIO-Software installiert haben. Installieren Sie das LabVIEW Digital Filter Design Toolkit CD. Run Das Programm. Folgen Sie die Anweisungen, die auf dem Bildschirm erscheinen. Das Digital Filter Design Toolkit 8 2 1 enthält Bug-Fixes, aber bietet keine neuen Features Das Digital Filter Design Toolkit 8 2 enthält die folgenden neuen Features. Digital Filter Design MathScript Functions. Use Die Digital Filter Design MathScript-Funktionen zum Entwerfen digitaler Filter mit LabVIEW MathScript in einer textbasierten Umgebung. Improved Fixed-Point Filter Design Tools. Das Digital Filter Design Toolkit 8 2 verbessert die Benutzerfreundlichkeit der Fixed-Point-Tools-VIs Diese VIs können Ihnen helfen Entwerfen eines Fixpunktfilters mit nur wenigen benötigten Eingängen Sie können diese VIs auch verwenden, um das Filterdesign zu verfeinern. Das Digital Filter Design Toolkit 8 2 kategorisiert Filterkoeffizienten in zwei Gruppen Filterkoeffizienten ak und Filterkoeffizienten bv Diese beiden Gruppen von Filterkoeffizienten Verwenden Sie unterschiedliche Wertebereiche Diese Änderung ermöglicht es Ihnen, die Filterkoeffizienten effizient zu quantisieren, indem Sie eine begrenzte Anzahl von Bits verwenden. Enhanced Fixed-Point-Filtercode-Generierung. Das Digital Filter Design Toolkit 8 2 verbessert die Fixpunkt-Filtercode-Generierung und unterstützt mehr Fixpunkt Filtermodelle, z. B. mit 32-Bit-Koeffizienten Sie können ein Fixpunkt-Filtermodell angeben, um I32xI16- oder I32xI32-Multiplikationen zusätzlich zu I16xI16-Multiplikationen durchzuführen. Sie können auch einen Filterblock erzeugen, der Mehrkanal-Signale verarbeiten kann. Das Digital Filter Design Toolkit organisiert Der generierte LabVIEW-Code in LabVIEW-Projektdateien, so dass Sie den Filter in ein anderes Projekt integrieren können. Für die LabVIEW FPGA-Codegenerierung verbessert das Digital Filter Design Toolkit 8 2 den Mechanismus der Speicherung von Filterkoeffizienten und der internen Zustände der digitalen Filter. Der neue Mechanismus speichert die Interne Zustände eines Filters in den Speicherpunkten des erzeugten LabVIEW FPGA-Codes Für FIR-Filter speichert dieser Mechanismus die FIR-Filterkoeffizienten in Nachschlagtabellen Bei der Verarbeitung von Mehrkanal-Signalen kann der LabVIEW-FPGA-Code die Filterkoeffizienten und die Filtersteuerung steuern Ressourcen unter den mehreren Kanälen. Rational Resampling Multirate Filter Support. Das Digital Filter Design Toolkit 8 2 bietet Unterstützung für die Gestaltung, Analyse und Implementierung von rationalen Resampling Multirate-Filter, zusätzlich zu Dezimierung und Interpolation Filter Rational Resampling ist nützlich für die Anbindung an digitale Signalverarbeitung DSP-Systeme, die mit unterschiedlichen Raten arbeiten Zum Beispiel können Sie rationelle Resampling verwenden, um ein 48-kHz-Signal von einem professionellen Audiosystem zu einem 44 1 kHz-Signal für eine Audio-CD umzuwandeln. Multirate Filter Design Express VIs. Verwenden Sie das Multirate FIR Design , Multistate Multirate Filter Design und Multirate CIC Design Express-VIs, um Multirate-FIR-Filter, mehrstufige Multirate-Filter und Multirate-Cascaded-Integrator-CIC-Filter interaktiv zu konzipieren. Fixed-Point Multirate Filter Design Support. Verwenden Sie die Multirate Fixed Point Tools VIs zu quantisieren, Modell und Simulation von Fixpunkt-Multirat-Filtern. Fixed-Point Multirate Filter FPGA Code Generation Support. Verwenden Sie die DFD FXP MRate Code Generator und die DFD FXP NStage MRate Code Generator VIs zu generieren LabVIEW FPGA-Code aus Fixpunkt-Multirate-Filter Sie können generieren Code für Einkanal - und Mehrkanal-Filteranwendungen Sie können auch Code aus einstufigen und mehrstufigen Multiratfiltern generieren. Fixed-Point Moving Average Filter FPGA Code Generation Support. Verwenden Sie das DFD FXP Moving Average Code Generator VI, um LabVIEW FPGA Code zu generieren Von Fixpunkt-gleitenden durchschnittlichen MA-Filtern Der LabVIEW FPGA-Code, der aus einem Fixpunkt-MA-Filter generiert wird, hilft Ihnen, eine effiziente MA-Filterung auf einem Eingangssignal mit wenigen Hardware-Ressourcen durchzuführen. Verwenden Sie die Utilities-VIs, um die Übertragungsfunktion zu zeichnen, Und Differenzgleichungen in Bildkontrollen. Filter Speichern und Laden von zu Textdatei Tools. Verwenden Sie die DFD Speichern in Textdatei und die DFD Speichern MRate to Text File VIs, um Filter zu speichern, einschließlich Multirate-Filter als Textdateien Sie können die Filterstrukturen erhalten , Filteraufträge und Filterkoeffizienten aus den Textdateien Sie können dann die Filterkoeffizienten aus den Textdateien kopieren und die Koeffizienten in anderen Anwendungen verwenden. Verwenden Sie die DFD Load from Text File VI, um einen Filter aus einer Textdatei zu laden Sie können dies nicht verwenden VI, um einen Multirate-Filter zu laden. Das Digital Filter Design Toolkit 8 2 bietet mehr als 100 Beispiele, die zeigen, wie man bestimmte Aufgaben mit den Digital-Filter-Design-VIs und - Funktionen ausführt. Diese Beispiele beinhalten sowohl Erste Schritte als auch eingehende Fallstudien 8 2 1. 438APUX0 Das Digital Filter Design Toolkit 8 2 1 behebt ein Problem, bei dem die firminphase MathScript-Funktion den minimalen Phasenspektralfaktor eines linearen, endlichen Impulsantwort-FIR-Filters nicht korrekt berechnet. Das Digital Filter Design Toolkit 7 5 nicht Haben Einschränkungen für die Anzahl der Stufen oder die Differenzverzögerung eines CIC-Filters Das Digital Filter Design Toolkit 8 2 beschränkt die Anzahl der Stufen eines CIC-Filters auf den Bereich 1, 8 und schränkt den Differenzverzögerungswert auf 1 oder 2 ein Möchten Sie einen Filter verwenden, den Sie mit dem Digital Filter Design Toolkit 7 5 entworfen haben, kann das Digital Filter Design Toolkit 8 2 den Filter als ungültiges Filterobjekt melden Wenn Sie auf diese Situation stoßen, speichern Sie den Filter als Binärdatei im Digital Filter Design Toolkit 7 5, dann verwenden Sie das Digital Filter Design Toolkit 8 2, um den Filter aus der Binärdatei zu laden. Das Digital Filter Design Toolkit 7 5 definiert die Abtastfrequenz eines Multirate Filters als maximale Abtastfrequenz im Multirate Filter Der Digital Filter Design Toolkit 8 2 definiert die Abtastfrequenz eines Multiratfilters als Eingangsabtastfrequenz im Multirate-Filter Wenn Sie also einen Interpolationsfilter verwenden möchten, den Sie mit dem Digital Filter Design Toolkit 7 5 entworfen haben, müssen Sie zunächst die Abtastfrequenz ändern Des Interpolationsfilters von der maximalen Abtastfrequenz bis zur Eingangsabtastfrequenz Diese Änderung wirkt sich nicht auf Dezimierungs - und No-Rate-Change-Filter aus. Im Digital Filter Design Toolkit 8 2 ist das DFD FXP Modeling for CodeGen Express VI nicht auf dem Fixed - Point-Tools-Palette Verwenden Sie das DFD FXP Quantize Coef VI, um die Koeffizienten eines Filters und des DFD FXP Modeling VIs zu quantifizieren, um ein Fixpunktfiltermodell zu erstellen. Im Digital Filter Design Toolkit 7 5 sind die Größenreaktions - und Phasenreaktionsausgänge Des DFD-Plots MRate Freq Response VI waren Cluster Im Digital Filter Design Toolkit 8 2 sind diese Ausgänge Arrays von Clustern. Version 8 2 1.Zusätzlich zu den bekannten Problemen im Digital Filter Design Toolkit 8 2 das Digital Filter Design Toolkit 8 2 1 enthält die folgende neue bekannte Ausgabe. Weil die Standard-Schriftarten auf Windows Vista anders als die Standard-Schriftarten auf früheren Windows-Versionen sind, können Sie kosmetische Probleme wie überlappende oder abgeschnittene Textzeichenfolgen in VIs und LabVIEW-Dialogfeldern anzeigen Korrigieren Sie dieses Problem, ändern Sie das Thema des Betriebssystems auf Windows Classic im Dialogfeld Themeneinstellungen und starten Sie dann LabVIEW aus. Wählen Sie Start Systemsteuerung Aussehen und Personalisierung aus und klicken Sie auf Thema ändern, um das Dialogfeld "Themeneinstellungen" anzuzeigen. Die Filteranalyse-VIs können dauern Eine lange Zeit, um einen Filter mit einem hohen Auftrag zu analysieren. Das DFD Remez Design VI kann eine lange Zeit dauern, um einen FIR-Filter mit einem hohen Auftrag zu entwerfen. Das DFD Least Pth Norm Design VI kann eine lange Zeit dauern, um Designs, die iterative haben abgeschlossen Algorithmen. Das Digital Filter Design Toolkit 8 2 erlaubt keine nullwertigen Nullen im Pole-Zero Placement Express VI Wenn Sie eine nullwertige Null angeben, zwingt das Express VI den nullwertigen Nullpunkt zu einem ungleich Nullwert. Wenn Sie einen Festkommarffilter entwerfen, müssen Sie die Quantisierer konfigurieren. Jeder Quantisierer enthält einen signierten Booleschen Wert, der angibt, ob er die Eingabeschlüssel als signierte Nummer behandeln soll. Das Digital Filter Design Toolkit 8 2 unterstützt nur signierte Zahlen. Die Merkmale eines Filters Kann sich ändern, wenn numerische Fehler während der Umwandlung zwischen den Filterkoeffizienten verschiedener Filterstrukturen auftreten Wenn Sie die Struktur eines Filters umwandeln, ist der Filter mit der neuen Struktur möglicherweise völlig anders als der ursprüngliche Filter. Wenn Sie auf diese Situation stoßen, versuchen Sie es mit einem anderen Struktur. Sie müssen die Digital-Filter-Design-Beispiel-VIs kompilieren, die zeigen, wie man den LabVIEW-FPGA-Code in LabVIEW-Projekten verwendet. Lesen Sie die LabVIEW-Hilfe zugänglich, indem Sie die Hilfe von LabVIEW-Hilfe aus dem Pulldown-Menü in LabVIEW auswählen Über die Verwendung des Digital Filter Design Toolkit. Sie ​​können auf die Beispiele für die Digital Filter Design Toolkit, indem Sie Hilfe finden Beispiele, um die NI Beispiel Finder und dann navigieren zu den Toolkits und Module Digital Filter Design Ordner Sie können auch auf den Link Finden Beispiele klicken Im Beispiel-Abschnitt des Getting Started-Fensters, um den NI-Beispiel-Finder anzuzeigen Sie können ein Beispiel-VI ändern, um eine Anwendung anzupassen, oder Sie können aus einem oder mehreren Beispielen in ein VI kopieren und einfügen, das Sie erstellen. Sie können auch die Beispiele finden Für das Digital Filter Design Toolkit in den Labview-Beispielen Digital Filter Design-Verzeichnis.2006 2007 National Instruments Corporation Alle Rechte vorbehalten. Unter der Urheberrechtsgesetze darf diese Publikation nicht in irgendeiner Form elektronisch oder mechanisch vervielfältigt oder übertragen werden, einschließlich Fotokopien, Die in einem Informationsabrufsystem gespeichert sind, ganz oder teilweise ohne vorherige schriftliche Zustimmung von National Instruments Corporation. National Instruments, NI und LabVIEW sind Marken der National Instruments Corporation. Weitere Informationen finden Sie im Abschnitt "Nutzungsbedingungen" Über die Marken von National Instruments. Weitere Produkt - und Firmennamen, die hierin erwähnt werden, sind Marken oder Handelsnamen ihrer jeweiligen Firmen. Für Patente, die die Produkte von National Instruments abdecken, wenden Sie sich bitte an den entsprechenden Ort Hilfe Patente in Ihrer Software, die Datei auf Ihrer CD oder. exponentia Ich bewegte durchschnittliche Schrittantwort fpga. Ich habe ein Problem mit meinem Filter, der exponentiell gewichtete gleitende durchschnittliche Filter IIR Ordnung aus dem Buch Verständnis der digitalen Signalverarbeitung Lyons Richard Ich habe die folgende Formel Berechnung der 3dB Frequenz fc aus Alpha Alpha ist der Parameter zu kontrollieren Der Filter. Differenzgleichung des Filters ynxn alpha 1 - alpha y n-1.Relation zwischen fc und alpha alpha cos 2fc fs - 1 sqrt cos 2fc fs - 4 cos 2fc fs 3.Wenn ich nun eine 3dB Frequenz von 0,0794Hz wähle Zeitkonstante TC 2s alpha 0,00169621 fs 94Hz. Für ein IIR Filter 1. Ordnung ist die Anstiegszeit ta der Stepresponse von 10 bis 90 ta 2,2 TC, was zu ta 4,4s führt. Aber wenn ich die Sprungantwort simuliere , Meine Aufstiegszeit ist etwa 3 mal dieses Wertes bei 14s. Ich kann nicht erklären, warum die Sprungantwort meines Filters so viel unterscheidet Für meinen Moving Average Filter ist die berechnete und simulierte Anstiegszeit gleich. Ich habe die vi, die auf der FPGA angeschlossen Vielleicht kann jemand einen Fehler finden. Siehe auch Alpha-Filter oder RC-Filter. Ist Ihre Sampling-Frequenz fs korrekt Wenn die Loop-Timing doesn t Match, das würde es erklären. Ihre Datentypen sehen gut aus, um Alpha innerhalb 1 Aber ich würde vorschlagen, eine kleine Änderung in der Umsetzung Wie es steht , Ist es ein bisschen anfällig für das Abrunden, weil 1-alpha wiederholt mit dem y n-1 multipliziert wird. Eine etwas zuverlässigere Methode ist zu sagen, yny n-1 alpha xn-y n-1 Der Unterschied ist subtil, Aber gibt mir bessere Ergebnisse viele Male Und es eliminiert ein Multiplikation. By der Weg, neu interpretieren Zahl tut die gleiche Sache wie Ihre konvertieren von FXP zu bool dann zurück Es ist ein wenig weniger verwirrend, though. I ma wenig verwirrt durch die zeitgesteuerte Schleife, die nie Loops Tut es das Timing auf die Art und Weise, wie ich es vermutete, es würde nicht, so dass ich es nie benutzt habe, ich benutze den Loop Timer stattdessen. CLD User seit rev 8 6.Message 2 von 13 1.075 Views. Re exponentia l gleitende durchschnittliche Schrittantwort fpga. 10-01-2015 02 05 AM - bearbeitet 10-01-2015 02 17 AM. thanks für deine Antwort.1, ich versichere meine Sampling-Frequenz mit dem Loop-Timer Meine Eingabe ist 425 532 Ticks, was gleich.94 Hz ist Diese Tickrate Wird durch Zecken bestätigt EWMA .-- Vielleicht kann jemand den Code testen und mir sagen.2, fand ich deinen Ansatz in den Tricks und Tipps Abschnitt von Lyons Buch Ich werde einen Versuch haben, aber könnten Sie erklären, die Runde ab treiben ein wenig Ich bin ganz neu in diesem Bereich. Es gibt einen weiteren Vorteil von der Beseitigung eines Multiplikators mit Ausnahme von Ressourcen sind die Frequenzantwort, Impulsantwort und Schritt Antwort das gleiche.3 Wenn ich nur bitshift, bin ich freundlich ein verwendet, um diese Methode Nicht sicher, wenn Die reinterprate Funktion nutzt weniger ressources Aber danke für das Erkennen it.4, Die zeitgesteuerte Schleife iteriert alle 425 532 ticks einmal So mit einer Frequenz von 94Hz wird ein Wert durch den Code berechnet, da der Code innerhalb der zeitgesteuerten Schleife nur eine Iteration benötigt Ich vermisse deine Frage. Ich bin nicht sicher, welche weiteren Informationen du benötigst Ich versuche, die Sprungantwort eines gleitenden Durchschnitts mit einem exponentiell gleitenden Durchschnitt zu vergleichen EWMA Eigentlich möchte ich nur die Theorie bestätigen Wie ich bereits erwähnt habe, um eine Zeitkonstante zu bekommen 2s bei einer Abtastrate von 94Hz, Alpha muss 0,00169 sein Die Anstiegszeit der Sprungantwort von 10 bis 90 des Endwertes unterscheidet sich von der Theorie Anstieg Zeit sollte 4,4s mit Zeitkonstante 2s sein, aber ich bekomme fast 14s if Ich laufe meinen Code auf der FPGA. I bestätigte, dass mit alpha 0,00169, mein Code dauert 1297Samples, um von 0,1 bis 0,9 Endwert zu erhalten ist 1, Startwert 0.Sie können in meinem Code sehen, den ich überprüfe Die Schleife Zeit mit dem Indikator tickt ewma, um die Abtastrate der SCTL zu bestätigen. Kann jemand anderes bestätigen die 1297Samples, die bei alpha benötigt werden 0,00169 Ursache Ich denke, dass ich zu viele Samples benötige, um den Wert 0,9 zu erreichen Bereits implementiert die vorgeschlagene EWMA-Version aus der ersten Antwort Das gleiche Problem hier. Message 5 von 13 1.025 Views. Re exponentia l gleitende durchschnittliche Schritt Antwort fpga. 10-01-2015 08 13 AM - bearbeitet 10-01-2015 08 15 AM.1, ich belebe meine Sampling-Frequenz mit dem Loop-Timer Meine Eingabe ist 425 532 Ticks, was gleich ist.94 Hz Diese Tickrate wird durch Zecken EWMA bestätigt .-- Vielleicht kann jemand den Code testen und mir sagen.2, fand ich deinen Ansatz in den Tricks und Tipps Abschnitt von Lyons Buch Ich werde einen Versuch haben, aber könnten Sie erklären, die Runde ab treiben ein bisschen Ich bin ganz neu in Dieser Bereich. Ist dort ein weiterer Vorteil von der Beseitigung eines Multiplikators außer ressources Sind die Frequenzantwort, Impulsantwort und Schrittantwort das gleiche.3, Wenn ich nur Bitshift, bin ich freundlich zu dieser Methode nicht sicher, wenn die reinterprate Funktion weniger verwendet Ressources Aber danke für die Anmerkung.4, Die zeitgesteuerte Schleife iteriert alle 425 532 Zecken einmal So mit einer Frequenz von 94Hz wird ein Wert durch den Code berechnet, da der Code innerhalb der zeitgesteuerten Schleife nur eine Iteration benötigt oder bin ich vermisse deine Frage. Ich habe eine Kalkulationstabelle zu simulieren, und bekomme fast genau die gleiche Antwort 1299 Zyklen zu gehen von 0 1 bis 0 9 Spreadsheets machen ein praktisches Werkzeug zum Testen von Berechnungen.1 Okay, ich habe nie die Single-Cycle-Timed-Loop SCTL mit verwendet Die T geschrieben an die Haltestelle Es würde die mathematischen Funktionen dazu zwingen, Single-Cycle zu sein, aber ich bin mir nicht sicher, ob das ein Vorteil ist, wollte ich nur sicherstellen, dass die Zeit bestätigt wurde, und es ist.2 Das Round-Off driftet wahrscheinlich Gewann t auftauchen, es sei denn, deine Eingabe ist kleiner kleiner als 0 1 Ich sehe jetzt, dass du 40 Bits 39 rechts von der Dezimalzahl für die Rückmeldung hast Das macht einiges an FPGA zu vermehren, aber gewann t haben Rundungsprobleme Andere Teile nur Hatte 18 Bits 17 rechts von der Dezimalzahl, also Alpha 0 00169 - 000007 mal eine Eingabe von 0 1 wäre 0 000169 - 0 000007 oder 7 Fehler gewesen Aber das multipliziert ist auch 40 Bit, also solltest du keine Probleme sehen. Typisch , Die Ausgabe yn hat weniger Bits, und wird abgerundet am letzten Bit Aber weil es in einer Schleife multipliziert mit 1-alpha jedes Mal ist, wird die Abrundung manchmal jede Schleife akkumuliert, bis es groß genug ist, um die add s zu beeinflussen Ergebnisse Es ist schwer zu erklären, aber meine allgemeine Faustregel ist, dass ich einen Fehler gleich dem kleinsten Bit durch Alpha geteilt, mit der ursprünglichen Methode, oder etwa die Hälfte, die uns die Ein-Multiplikation Methode erwarten. Die Antworten werden fast identisch sein , Mit Ausnahme eines kleinen Unterschieds Der größte Vorteil ist das Speichern von FPGA-Platz und Kompilierzeit Und Sie können Ihre Anzahl von Bits ganz etwas reduzieren, um noch mehr zu sparen.3 Sie sind grundsätzlich identisch und beide Methoden sind frei in FPGA Die Bits wurden nicht geändert, So dass keine Logik benötigt wird, sind sie einfach wiedergegeben.4 Ich glaube, Sie haben es gut geantwortet. Generisch, an diesem Punkt würde ich Alpha anpassen, bis meine Ergebnisse zu dem, was ich wollte, und weitergehen Ich hasse es nicht verstehen, ein Missverhältnis, aber don t in der Regel Haben Sie Zeit, in sie hinein zu tauchen. Aber um der Wissenschaft willen, lassen Sie s betrachten, dass Ihre Formel kann fehlerhaft sein Ich denke, Sie können eine Formel für einen kontinuierlichen exponentiellen Zerfall e-t tau verwenden, nicht für einen diskreten exponentiellen Zerfall 1- Alpha i Es ist einfacher, dies als eine Schrittfunktion von 1 bis 0 zu betrachten. In diesem Fall ist yn für n 0 yn 1-alpha n Wir können n für yn 0 9 finden, als n log 1-alpha 0 9 62, Und n für yn 0 1, als 1361, für einen Unterschied von 1299. CLD Benutzer seit rev 8 6.thank Sie für Ihre ausführliche Antwort. Bei der Frage mit der Aufstieg Zeit, ich glaube, ich fand den Fehler Sie könnten das Recht, dass die Die Formel ist nicht korrekt, oder was ist wohl von mir falsch verstanden und in den falschen Kontext gesetzt. Wenn ich von der Arbeit nach Hause gefahren bin, erinnerte ich mich an eine praktische Funktion des Labview-Glättungsfilters Hier musst du nur tau TC und fs setzen und er kenne Nominator Und Nenner für exponentiell gleitenden Durchschnitt und gleitenden Durchschnitt Da der Nominator Alpha ist, könnte ich das Ergebnis mit der Formel vergleichen, die ich verwendet habe, und es war ein ganz normaler Unterschied Labview verwendet die folgende Formel alpha 1-exp -1 fs TC Mit dieser Formel ist TC 2s gleich Zu alpha 0,0053.Und mit diesem Alpha meine Simulation funktioniert Risetime 4,4sQuoting Sie Im Allgemeinen, an diesem Punkt würde ich Alpha anpassen, bis meine Ergebnisse übereinstimmen, was ich wollte, und weiterziehen würde ich gerne das gleiche tun, aber Da dies meine Masterarbeit ist, muss ich solche Dinge lösen. Jetzt zurück zu den Rundungsproblemen, die ich verstehe, dass kleine Werte ein größeres Problem sind Da dieser Filter in einem Lock In verwendet wird, werden die Werte WIRKLICH klein sein Aber ich schon Hat es auf unserem Messgerät getestet und es funktioniert, dafür werde ich auch deine Version testen, aber wenn ich keine Probleme bekomme, schätze ich, dass ich es bei 40bits stelle. Das Simulieren des folgenden Setups verursacht einen Fehler von 2 3 Mit 57 Bits reduziert die Fehler zu unter 1 Ich denke, 40bits sollte genug sein. Und in Bezug auf die Ressourcen habe ich keine Sorgen Obwohl mit einem Myrio am Ende habe ich noch eine Menge von DSP-Slices für die Multiplikation und 10 kostenlose FlipFlops. So Ich denke, dieses Thema ist gelöst Danke Für deine großartige hilfe und interessante gedanken. Cool ich bin froh, dass es funktioniert, jetzt. Ich wuchs in der Ära ohne DSP-Scheiben in FPGAs und kleinere Zelle zählt, so immer noch dazu neigen, in diesen Bedingungen ich immer noch lieber 25 verbringen Minuten-Programmierung, um meine Compile-Zeiten zu bekommen, obwohl ich habe Fälle, wo ich schneiden Kompilieren Zeit von 90 Minuten auf 45 Minuten durch die Optimierung ziemlich viel Mit einem leistungsfähigen Server für die Kompilierung, das ist weniger wichtig. Eines dieser Optimierungen ist es, Bit zu reduzieren Zählt, wo ich kann, vor allem für Multiplikationen Zum Beispiel Alpha ist 16 0, und für 0 0053 können Sie auch 12 -4 negative Integer zählen Sie können auch in der Lage sein, eine Menge von oberen Bits aus Ihrem Eingang zu entfernen 5 Minuten zu holen Die kleinste Bit-Count kann leicht sparen 2-10 Minuten für jede compile. My zweite Optimierung ist es, Multiplikationen zu reduzieren, aber mit einem DSP-Slice, das ist nicht so wichtig Ich kann nicht finden, gute Dokumentation über die DSP-Scheiben, wenn Sie einige haben, Bitte posten Links, aber wie ich es verstehe, wenn Sie größere Zahlen Bit zählt, es braucht mehrere Scheiben, und vielleicht Zeit, um die Ergebnisse zu kombinieren. Und ein weiterer Trick wählen Sie ein Alpha mit einem einfachen binären Wert, wie 1 256 Sie ausgewählt haben 1 189, und ändern Sie fs, bis Sie die Glättung erhalten Sie wollen Dann verwenden Sie eine Konstante für Alpha Multiplizieren Sie durch eine Konstante 1 256 ist frei in der FPGA es nur verschiebt die Bits. Für diese Angelegenheit, die Alpha-Konstante kann die Multiplikationen ziemlich viel optimieren Abhängig von den smarts des Optimierers, kann es ändern, um eine Reihe von Addierern statt Front-Panel-Eingänge sind ideal für immer Dinge zu arbeiten, aber Konstanten optimieren viel besser. CLD User seit dem 8. Januar 6.Wenn du durchschnittlich 16 mal so viele Samples fs 16x was du warst, solltest du 4 weitere Bits in deinem Feedback einbeziehen. Du hast doch schon pleanty, also das ist vielleicht nicht wichtig, wenn du nicht viel schneller gehst. Ansonsten steigert man fs Ist wahrscheinlich gut. Wenn der Eingang hat Niederfrequenz-Rauschen, über Sampling doesn t helfen, beseitigen, dass überhaupt Hochfrequenz-Rauschen, aber, reduziert mit Über-Sampling Wenn zum Beispiel das Rauschen über 10Hz ist -5dB, dass 10 ist - 5 mal die Amplitude des Signals, das du magst, und du probierst bei 20S s ab, du wirst wahrscheinlich -5dB in deiner anfänglichen Lesungen abholen Wenn dein -3dB fc auch 10Hz ist, dann wirst du mit rund -8dB Lärm am Ende Ihr Signal Wenn Sie stattdessen 200S s nehmen, durchschnittliche Gruppen von 10, dann übergeben diese Mittelwerte an den Filter, Sie gewann t helfen Rauschen bei 10Hz Sie wurden 10Hz Rauschen ohne Sampling-Effekte, aber wird Rauschen über 100Hz um etwa einen Faktor zu reduzieren In der Nähe, aber nicht wirklich 10.There sind ganze Semester-lange Klassen, die diskutieren, warum, wie, etc Die kurze Version ist dies Jede Probe ist die Summe aus dem Signal, das Sie wollen und Lärm Wenn Sie 10 Samples hinzufügen, erhalten Sie 10x das Signal Sie Wollen, und die Summe von 10 Rauschen Die Art des Lärms bestimmt, was man bekommt, wenn man die 10 Samples des Rauschen fügt. Gaussian Rauschen fügt einen Weg hinzu, wenn 83 von Samples unter X sind, die Summe hat 83 Summen unter 1 1X oder So etwas wie das Lineare Lärm fügt einen anderen Weg hinzu Und wiederholende Muster fügen einen anderen Weg hinzu So, ohne genau zu wissen, was der Lärm ist, kann niemand mit Sicherheit mit Ihnen antworten, außer dass durchschnittlich mehrere Samples wahrscheinlich hilft und fast nie weh tut. Es gibt auch das Problem Von Aliasing Wenn Sie eine Sinus-Interferance von 60Hz, bei -3dB und Sie Probe bei 10 001S s immer davon ausgehen, die Uhren nicht passen presishly, erhalten Sie so etwas wie 0 006Hz bei -3dB hinzugefügt, um Ihr Signal, und Ihr Filter gewann t Entfernen Sie es Aber stoßen Sie Ihre Sample-Rate auf 100 001S s, wird die Interferenz auf etwa 40Hz, so dass Ihr Filter sollte es zu beseitigen. Durchschnittlich 10 Samples zu einem Zeitpunkt ist eine Art von Filter-Box Wenn Sie es in einem Frequenzbereich betrachten, Sie Kann sehen, dass einige höhere Frequenzen verschoben werden, um die Frequenzen in einer seltsamen Weise zu senken, und nicht alle sind reduziert Wenn Sie durchschnittlich 4000 S s, 100 zu einer Zeit, erhalten Sie durchschnittlich 40 mal pro Sekunde Mit 60Hz Interferenz, erhalten Sie über 1 3 so viel Lärm, verschoben auf 20Hz, die t Filter sowie 60Hz hätte. So, wäre es besser, die EWMA-Filter mit der höheren Sample-Rate als zu durchschnittlichen Blöcke von Eingängen verwenden, dann filtern, dass und Mittelung ist Wahrscheinlich besser als nur mit einer langsameren Samplerate. Wenn Sie einen Eingangsadapter mit eingebauten elektronischen Filtern haben, ist das noch besser, und es gibt keine Notwendigkeit, mehr als 2X die Filter s Frequenz zu probieren. CLD User seit 12 Jahre 6.

No comments:

Post a Comment