Sunday 28 May 2017

Labview Fpga Gleitender Durchschnitt


Berechnen von Moving Average Dieses VI berechnet und zeigt den gleitenden Durchschnitt mit einer vorgewählten Nummer 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 Additionsfunktion 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 den neuen Wert nach jeder Schleife. Dieses VI ist sehr effizient und schnell, weil es die ersetzen Element-Funktion innerhalb der while-Schleife verwendet, und es initialisiert das Array, bevor es in die Schleife eintritt. Dieses VI wurde in LabVIEW 6.1 erstellt. Lesezeichen amp Shareexponentia l bewegte durchschnittliche Schrittantwort fpga Ich habe ein Problem mit meinem Filter, dem exponentiell gewichteten gleitenden Durchschnittsfilter (IIR 1. 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, um den Filter zu steuern. Differentialgleichung des Filters: ynxnalpha (1 - alpha) yn-1 Beziehung zwischen fc und alpha: alpha cos (2fcfs) - 1 sqrtcos (2fcfs) - 4cos (2fcfs) 3 Wenn ich nun eine 3dB Frequenz von 0,0794Hz (Zeit Konstante (TC) 2s) alpha 0,00169621 (fs94Hz) Für einen IIR Filter 1. Ordnung ist die Anstiegszeit (ta) der Stepresponse (von 10 bis 90): ta2,2TC, was zu ta 4,4s führt. Aber wenn ich die Sprungantwort simuliere, ist meine Aufstiegszeit etwa 14 mal dieses Wertes bei 14s. Ich kann nicht erklären, warum sich die Sprungantwort meines Filters so stark unterscheidet. Für meine Moving Average Filter ist die berechnete und simulierte Anstiegszeit gleich. Ich habe die vi, die auf dem FPGA durchgeführt wird. Vielleicht kann jemand einen Fehler finden. (Siehe auch Alpha-Filter oder RC-Filter) Ist deine Sampling-Frequenz (fs) richtig Wenn die Loop-Timing nicht übereinstimmt, würde das es erklären. Ihre Datentypen sehen gut aus (um Alpha innerhalb 1 zu bekommen). Aber ich würde vorschlagen, eine geringfügige Änderung in der Umsetzung. Wie es steht, ist es ein bisschen anfällig für das Abrunden, weil (1-alpha) wiederholt mit dem yn-1 multipliziert wird. Eine etwas zuverlässigere Methode ist yn yn-1 (alpha (xn - yn-1)) zu sagen. Der Unterschied ist subtil, aber gibt mir bessere Ergebnisse viele Male. Und es eliminiert ein Multiplikation. Übrigens, neu interpretieren Zahl tut die gleiche Sache wie Ihre konvertieren von FXP zu bool dann zurück. Es ist ein wenig weniger verwirrend. Im ein wenig verwirrt durch die zeitgesteuerte Schleife, die niemals schleift. Gibt es das Timing auf diese Weise (ich habe davon ausgegangen, es würde nicht, also nie verwendet es Ich benutze den Loop Timer stattdessen.) CLD User seit rev 8.6. Nachricht 2 von 13 (1.045 Aufrufe) Re: exponentia l gleitende durchschnittliche Schrittantwort fpga 10-01-2015 02:05 AM - bearbeitet 10-01-2015 02:17 AM Danke für deine Antwort. 1, ich bewege meine Sampling-Frequenz mit dem Loop-Timer. Meine Eingabe sind 425.532 Ticks, was 94 Hz entspricht. Diese Tickrate wird durch Zecken EWMA bestätigt. --gt vielleicht jemand kann den Code testen und mir sagen 2, fand ich deinen Ansatz in den Tricks und Tipps Abschnitt von Lyons Buch. Ich werde es versuchen, aber könntest du das Runden abreiben, ein wenig zu treiben, ich bin ganz neu in diesem Bereich. Gibt es einen weiteren Vorteil von der Beseitigung eines Multiplikators mit Ausnahme von Ressourcen sind die Frequenzantwort, Impulsantwort und Schrittantwort die gleiche 3, Wenn ich nur Bitshift, bin ich freundlich zu dieser Methode verwendet Nicht sicher, ob die reinterprate Funktion weniger Ressourcen verwendet. Aber danke, dass ich es bemerkt habe. 4, Die zeitgesteuerte Schleife iteriert alle 425.532 Zecken einmal. Also 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 missverstanden Ihre Frage Ich bin mir nicht sicher, welche weiteren Informationen Sie benötigen. Ich versuche, die Sprungantwort eines gleitenden Durchschnitts mit einem exponentiellen gleitenden Durchschnitt (EWMA) zu vergleichen. Eigentlich möchte ich nur die Theorie bestätigen. Wie ich bereits erwähnt habe, um eine Zeitkonstante von 2s bei einer Abtastrate von 94Hz zu erhalten, muss alpha 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, aber ich bekomme fast 14s, wenn ich meinen Code auf der FPGA laufen. Ich bestätigte, dass mit alpha 0,00169, mein Code 1297Samples von 0,1 bis 0,9 (Endwert ist 1, Startwert 0) zu bekommen. Wie Sie in meinem Code sehen können, überprüfe ich die Schleifenzeit mit dem Indikator tickt ewma, um die Abtastrate der SCTL zu bestätigen. Kann jemand anderes die 1297Samples bestätigen, die bei alpha 0,00169 gebraucht werden, weil ich denke, dass ich zu viele Samples benötige, um den Wert 0,9 zu erreichen. Ich habe die vorgeschlagene EWMA-Version bereits von der ersten Antwort implementiert. Das gleiche Problem hier Nachricht 5 von 13 (995 Ansichten) Re: exponentia l bewegte durchschnittliche Schrittantwort fpga 10-01-2015 08:13 AM - bearbeitet 10-01-2015 08:15 AM 1, ich verspreche meine Sampling-Frequenz mit dem Loop-Timer. Meine Eingabe sind 425.532 Ticks, was 94 Hz entspricht. Diese Tickrate wird durch Zecken EWMA bestätigt. --gt vielleicht jemand kann den Code testen und mir sagen 2, fand ich deinen Ansatz in den Tricks und Tipps Abschnitt von Lyons Buch. Ich werde es versuchen, aber könntest du das Runden abreiben, ein wenig zu treiben, ich bin ganz neu in diesem Bereich. Gibt es einen weiteren Vorteil von der Beseitigung eines Multiplikators mit Ausnahme von Ressourcen sind die Frequenzantwort, Impulsantwort und Schrittantwort die gleiche 3, Wenn ich nur Bitshift, bin ich freundlich zu dieser Methode verwendet Nicht sicher, ob die reinterprate Funktion weniger Ressourcen verwendet. Aber danke, dass ich es bemerkt habe. 4, Die zeitgesteuerte Schleife iteriert alle 425.532 Zecken einmal. Also 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 missverstanden Ihre Frage Ich habe eine Kalkulationstabelle zu simulieren, und bekommen fast genau die gleiche Antwort (1299 Zyklen von 0,1 bis 0,9 gehen). Spreadsheets machen ein praktisches Werkzeug zum Testen von Berechnungen. 1. Okay. Ich habe niemals die Single-Cycle-Timed-Loop (SCTL) benutzt, wobei das T an den Stop geschrieben wurde. Es würde die mathematischen Funktionen zwingen, ein Zyklus zu sein, aber ich bin nicht sicher, ob das ein Vorteil ist. Ich wollte nur sicherstellen, dass die Zeit bestätigt wurde, und das ist es. 2. Das Round-off Drifting wird wahrscheinlich nicht auftauchen, es sei denn, Ihr Eingang ist klein (weniger als 0,1). Ich sehe jetzt, dass Sie 40 Bits (39 rechts der Dezimalstelle) für das Feedback haben. Das dauert einiges an FPGA, um sich zu vermehren, aber es gibt keine Abrundungsprobleme. Andere Teile hatten nur 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 Typischerweise hat der Ausgang yn weniger Bits und wird am letzten Bit abrunden. Aber weil es in einer Loop-Multiplikation mit 1-alpha jedes Mal ist, wird das Round-off manchmal jede Schleife akkumuliert, bis es groß genug ist, um die adds Ergebnisse zu beeinflussen. Es ist schwer zu erklären, aber meine allgemeine Faustregel ist, dass ich einen Fehler gleich dem kleinsten Bit, das durch Alpha geteilt wird, mit der ursprünglichen Methode oder etwa die Hälfte, die uns die Ein-Multiplikations-Methode, Die Antworten werden fast identisch sein, außer für einen kleinen Unterschied. Der größte Vorteil ist das Speichern von FPGA-Speicherplatz (und Kompilierzeit). Und du kannst deine Anzahl von Bits etwas reduzieren, um noch mehr zu sparen. 3. Sie sind grundsätzlich identisch. Und beide Methoden sind frei in FPGA. Die Bits arent geändert, so dass keine Logik benötigt wird, sind sie einfach neu gekennzeichnet. 4. Ich glaube, Sie haben es gut geantwortet. Im Allgemeinen würde ich an dieser Stelle Alpha anpassen, bis meine Ergebnisse übereinstimmen, was ich wollte, und weiter. Ich hasse es nicht zu verstehen, ein Missverhältnis, aber nicht in der Regel Zeit, um in sie zu tauchen. Aber, um der Wissenschaft willen, können wir bedenken, dass Ihre Formel fehlerhaft sein kann. Ich denke, Sie können eine Formel für einen kontinuierlichen exponentiellen Zerfall (e-ttau) 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 ngt0) yn (1-alpha) (n). Wir können n für yn 0,9, als nlog1-alpha (0,9) 62 und n für yn 0,1, als 1361, für eine Differenz von 1299 finden. CLD Benutzer seit rev 8.6. Vielen Dank für Ihre ausführliche Antwort. Was das Problem mit der Aufstiegszeit betrifft, denke ich, dass ich den Fehler gefunden habe. Sie haben vielleicht recht, dass die Formel nicht korrekt ist oder was von mir vermutlich falsch verstanden und in den falschen Kontext gestellt wird. Als ich von der Arbeit nach Hause fuhr, erinnerte ich mich an eine handliche Funktion von labview: Glättungsfilter coefficients. vi Hier musst du nur tauTC und fs setzen und es errechnet 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 benutzt habe, und es war ein ganz anderer Unterschied. Labview verwendet die folgende Formel: alpha1-exp (-1 (fsTC)). Mit dieser Formel ist TC2s gleich alpha0,0053. Und mit diesem Alpha meine Simulation funktioniert Risetime 4,4s Zitieren Sie: Im Allgemeinen, an diesem Punkt würde ich Alpha anpassen, bis meine Ergebnisse übereinstimmen, was ich wollte, und weiter. Ich würde es lieben, dasselbe zu tun, aber da dies meine Masterarbeit ist, muss ich solche Dinge lösen. Jetzt zurück zu den Rundungsproblemen. 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 habe es schon auf unserem Messgerät getestet und es funktioniert, deshalb werde ich auch deine Version testen, aber wenn ich keine Probleme bekomme, schätze ich, dass ich es bei 40bits behalte. Das Simulieren des folgenden Setups verursachte einen Fehler von 2.3. Mit 57 Bits reduziert den Fehler auf unter 1. Ich denke, 40bits sollte genug sein. Und in Bezug auf die Ressourcen habe ich keine Sorgen. Obwohl ich ein Myrio am Ende habe, habe ich noch viele DSP-Slices für die Multiplikation und 10 kostenlose FlipFlops. Also ich vermute, dieses Thema ist gelöst. Vielen Dank für Ihre tolle Hilfe und interessante Gedanken. Cool Ich bin froh, dass es jetzt funktioniert. Ich wuchs in der Ära ohne DSP-Scheiben in FPGAs, und kleinere Zelle zählt, so immer noch dazu neigen, in diesen Bedingungen zu denken. Ich ziehe es immer noch vor, 25 Minuten Programmierung zu verbringen, um meine Kompilierzeiten zu bekommen. Ive hatte Fälle, in denen ich Kompilierzeit von 90 Minuten zu 45 Minuten durch die Optimierung ziemlich viel schneide. Mit einem leistungsstarken Server zum Kompilieren ist das weniger wichtig. Eine dieser Optimierungen ist es, Bitzahlen zu reduzieren, wo ich kann, vor allem für Multiplikationen. Zum Beispiel ist Alpha 160 und für 0,0053 können Sie auch 12-4 (negative Integer Count) verwenden. Sie können auch in der Lage sein, eine Menge von oberen Bits von Ihrem Eingang zu beseitigen. 5 Minuten, um die kleinste Bit-Count zu wählen, kann einfach 2-10 Minuten für jede Kompilierung speichern. Meine zweite Optimierung ist, Multiplikatoren 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 Post Links), aber wie ich es verstehe, wenn Sie größere Zahlen (Bit-Zählungen) multipliziert, braucht es mehrere Scheiben, und vielleicht Zeit, um die Ergebnisse zu kombinieren. Und noch ein Trick: Wähle ein Alpha mit einem einfachen Binärwert, wie 1256 (du hast etwa 1189 ausgewählt) und wechsle fs, bis du die Glättung bekommst. Verwenden Sie dann eine Konstante für Alpha. Multiply durch eine Konstante 1256 ist frei in der FPGA (es nur verschiebt die Bits). Für diese Angelegenheit kann die Alpha-Konstante die Multiplikatoren einigermaßen optimieren. Abhängig von den smarts des Optimierers kann es stattdessen zu einem Satz von Addierern wechseln. Frontpanel-Eingänge sind ideal, um Dinge zu arbeiten, aber Konstanten optimieren viel besser. CLD User seit 12.6. Wenn Sie durchschnittlich 16 mal so viele Proben (fs 16x was es war), sollten Sie 4 weitere Bits in Ihrem Feedback enthalten. Sie haben schon pleanty, also das kann nicht wichtig sein, es sei denn, Sie gehen viel schneller. Ansonsten steigt fs wohl gut Wenn die Eingabe hat Niederfrequenz-Rauschen, über Sampling nicht helfen, das zu beseitigen überhaupt. Hochfrequenzrauschen reduzieren sich jedoch mit Überabtastung. Wenn zum Beispiel das Rauschen über 10Hz -5dB ist (das ist 10 -5 mal die Amplitude des Signals, das du magst), und du probierst bei 20Ss ab, du wirst wahrscheinlich -5dB in deiner ersten Lesung abholen. Wenn dein -3dB (fc) ist auch 10Hz, dann youll am Ende mit rund -8dB Rauschen in Ihrem Signal links. Wenn Sie stattdessen 200Ss nehmen, durchschnittliche Gruppen von 10, dann übergeben diese Mittelwerte an den Filter, werden Sie nicht helfen, Rauschen bei 10Hz (Sie waren Messung 10Hz Rauschen ohne Sampling-Effekte), aber wird das Rauschen über 100Hz um etwa einen Faktor der Nähe zu reduzieren (Aber nicht wirklich) 10. Es gibt 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, das Sie wollen, und die Summe von 10 Rauschen. Die Art des Lärms bestimmt, was man bekommt, wenn man die 10 Sätze des Lärms hinzufügt. Gaussian Rauschen fügt einen Weg hinzu (so etwas wie: Wenn 83 von Samples unter X liegen, hat die Summe 83 Summen unter 1,1X oder so ähnlich). Lineares Rauschen fügt einen anderen Weg hinzu. Und Wiederholen von Mustern fügen einen anderen Weg hinzu. Also, ohne genau zu wissen, was der Lärm ist, kann niemand Ihnen mit Sicherheit antworten, außer dass die durchschnittliche Mehrzahl von Proben wahrscheinlich hilft und fast niemals weh tut. Es gibt auch die Frage des Aliasing. Wenn Sie eine Sinus-Interferenz von 60Hz, bei -3dB und Sie Probe bei 10.001Ss (immer davon ausgehen, die Uhren nicht passen presish), erhalten Sie so etwas wie 0,006Hz bei -3dB hinzugefügt, um Ihr Signal, und Ihr Filter wird es nicht entfernen . Aber stoßen Sie Ihre Sample-Rate auf 100.001Ss, wird die Interferenz auf etwa 40Hz, so dass Ihr Filter sollte es zu beseitigen. Durch die Mittelung von 10 Samples zu einem Zeitpunkt ist eine Art Filter (Box). Wenn man es in einem Frequenzbereich betrachtet, kann man sehen, dass einige höhere Frequenzen verschoben werden, um die Frequenzen in einer ungeraden Weise zu senken, und nicht alle werden reduziert. Wenn du durchschnittlich 4000 Ss, 100 zu einer Zeit, youll bekommen durchschnittlich 40 mal pro Sekunde. Mit 60Hz Interferenz bekommst du etwa 13 soviel Rauschen, verschoben auf 20Hz, was nicht so gut wie 60Hz wäre. So wäre es besser, den EWMA-Filter mit der höheren Abtastrate zu verwenden. Als zu durchschnittlichen Blöcken von Eingängen, dann filtern, dass. Und Mittelwert ist (wahrscheinlich) besser als nur mit einer langsameren Samplerate. Wenn Sie einen Eingangsadapter mit eingebauten elektronischen Filtern haben, das ist noch besser, und es gibt keine Notwendigkeit, mehr als 2X die Filterfrequenz zu probieren. CLD User seit dem 8.6.LabVIEW Digital Filter Design Toolkit 8.2.1 Readme Das LabVIEW Digital Filter Design Toolkit 8.2.1 beauftragt die Installationsprobleme mit der Windows Vista x64 Edition, der 64-Bit Version, die im Digital Filter Design Toolkit 8.2 vorhanden sind. Wenn Sie das Digital Filter Design Toolkit 8.2 installiert haben, müssen Sie diese Version vor der Installation des Digital Filter Design Toolkits 8.2.1 deinstallieren. Diese Datei enthält Informationen, um Ihnen das Digital Filter Design Toolkit vorzustellen. Diese Datei bietet Ihnen auch Hilfsmittel, die Sie bei der Arbeit mit dem Toolkit verwenden können. Die Datei enthält die folgenden Informationen, die Sie verstehen müssen. Das Digital Filter Design Toolkit bietet eine Sammlung digitaler Filter-Design-Tools, um das LabVIEW Full oder Professional Development System zu ergänzen. Das Digital Filter Design Toolkit hilft Ihnen beim Entwerfen digitaler Filter, ohne dass Sie über erweiterte Kenntnisse der digitalen Signalverarbeitung oder digitalen Filtertechniken verfügen müssen. 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 die Digital Filter Design Express-VIs verwenden, um grafisch mit Filterspezifikationen zu interagieren, um geeignete digitale Filter zu entwerfen. Das Digital Filter Design Toolkit bietet VIs, mit denen Sie eine digitale Finite Impulse Response (FIR) oder unendliche Impulsantwort (IIR) Filter entwerfen, die Eigenschaften des digitalen Filters analysieren, die Implementierungsstruktur des digitalen Filters ändern und Daten verarbeiten können Mit dem digitalen filter Neben der Gleitkomma-Unterstützung bietet das Digital Filter Design Toolkit eine Reihe von VIs, die Sie verwenden können, um ein digitales Filtermodell mit festem Punkt zu erstellen, die Eigenschaften des Fixpunkt-Digitalfilters zu analysieren, die Leistung des Fixes zu simulieren - Punkt-Digitalfilter und generieren 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 konzipierten Fixpunkt-Multirate-Filter für ein NI Reconfigurable IO (RIO) Ziel generieren. Neben den grafischen Tools für das digitale Filterdesign bietet das Digital Filter Design Toolkit auch MathScript-Funktionen, die LabVIEW MathScript unterstützt. Mit diesen MathScript-Funktionen können Sie Filter in einer textbasierten Umgebung entwerfen. Um das Digital Filter Design Toolkit nutzen zu können, musst du auf dem Hostcomputer National Instruments LabVIEW 8.2 oder höher, Full oder Professional Development System installiert haben. Hinweis: Wenn Sie das Digital Filter Design Toolkit verwenden möchten, um LabVIEW FPGA-Code aus einem Festkomma-Filter zu generieren, müssen Sie das Label LabVIEW FPGA-Modul und die NI-RIO-Software mit LabVIEW installiert haben. 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 die NI-RIO Software installieren. Führen Sie die folgenden Schritte aus, um das Digital Filter Design Toolkit zu installieren. Stellen Sie vor der Installation sicher, dass Ihr Computer die folgenden Bedingungen erfüllt: Eine kompatible Version von LabVIEW ist installiert. Es wurden keine früheren Versionen des Digital Filter Design Toolkits, einschließlich Beta-Releases, installiert. LabVIEW läuft nicht. Hinweis: Wenn Sie das Digital Filter Design Toolkit verwenden möchten, um LabVIEW FPGA-Code aus einem Fixpunktfilter zu generieren, stellen Sie sicher, dass das FPGA-Modul und die NI-RIO-Software installiert sind. Legen Sie die LabVIEW Digital Filter Design Toolkit CD ein. Führen Sie das Programm setup. exe aus. Folgen Sie den Anweisungen auf dem Bildschirm. Das Digital Filter Design Toolkit 8.2.1 enthält Fehlerbehebungen, bietet aber keine neuen Funktionen. Das Digital Filter Design Toolkit 8.2 beinhaltet die folgenden neuen Funktionen: Digital Filter Design MathScript Funktionen Verwenden Sie die Digital Filter Design MathScript Funktionen, um digitale Filter mit LabVIEW MathScript in einer textbasierten Umgebung zu entwerfen. Verbesserte 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 dabei helfen, einen Fixpunktfilter mit nur wenigen benötigten Eingaben zu entwerfen. 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 a k und Filterkoeffizienten b v. Diese beiden Gruppen von Filterkoeffizienten verwenden unterschiedliche Wertebereiche. Diese Änderung ermöglicht es Ihnen, die Filterkoeffizienten effizient zu quantisieren, indem Sie eine begrenzte Anzahl von Bits verwenden. Verbesserte Fixpunkt-Filtercode-Generierung Das Digital Filter Design Toolkit 8.2 erweitert die Fixpunkt-Filtercode-Generierung und unterstützt mehr Fixpunkt-Filtermodelle, wie zB mit 32-Bit-Koeffizienten. Sie können ein Fixpunktfiltermodell 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 den generierten LabVIEW-Code in LabVIEW-Projektdateien (.lvproj), 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 internen Zustände eines Filters in den Speicherpunkten des generierten LabVIEW FPGA-Codes. Bei FIR-Filtern speichert dieser Mechanismus die FIR-Filterkoeffizienten in Nachschlagtabellen. Bei der Verarbeitung von Mehrkanal-Signalen kann der LabVIEW-FPGA-Code die Filterkoeffizienten und Filter-Logik-Ressourcen zwischen den mehreren Kanälen gemeinsam nutzen. Rational Resampling Multirate Filter Unterstützung Das Digital Filter Design Toolkit 8.2 unterstützt neben dem Entwurf, der Analyse und der Implementierung von Rational Resampling Multirate Filtern zusätzlich zu Dezimierungs - und Interpolationsfiltern. Rational Resampling ist nützlich für die Anbindung an digitale Signalverarbeitung (DSP) - Systeme, die mit unterschiedlichen Raten arbeiten. Beispielsweise können Sie mit einem rationalen Resampling ein 48 kHz Signal von einem professionellen Audiosystem in ein 44,1 kHz Signal für eine Audio CD umwandeln. Multirate Filter Design Express-VIs Verwenden Sie das Multirate FIR Design, Multistage Multirate Filter Design und Multirate CIC Design Express VIs, um multirate FIR Filter, mehrstufige Multirate Filter und Multirate Cascaded Integrator Kamm (CIC) Filter interaktiv zu entwerfen. Fixpunkt Multirate Filter Design Support Verwenden Sie die Multirate Fixed Point Tools VIs, um Fixpunkt Multirate Filter zu quantisieren, zu modellieren und zu simulieren. Fixed-Point-Multirate-Filter FPGA-Code-Generierungsunterstützung Verwenden Sie den DFD FXP MRate Code Generator und die DFD FXP NStage MRate Code Generator VIs, um LabVIEW FPGA Code aus Fixpunkt Multirate Filtern zu generieren. Sie können Code für Einkanal - und Mehrkanalfilteranwendungen generieren. Sie können auch Code aus einstufigen und mehrstufigen Multiratenfiltern generieren. Fixed-Point Moving Average Filter FPGA Code Generierungsunterstützung Verwenden Sie das DFD FXP Moving Average Code Generator VI, um LabVIEW FPGA Code aus Fixpunkt Gleitendurchschnitt (MA) Filter zu generieren. 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 Übertragungsfunktion, Null-Pole-Gain - und Differenzgleichungen in Bildkontrollen zu zeichnen. Filtern Speichern und Laden von Textdatei-Tools Verwenden Sie die DFD In Textdatei speichern und die DFD Speichern Sie MRate in Textdatei-VIs, um Filter, einschließlich Multirate-Filter, als Textdateien zu speichern. Sie erhalten die Filterstrukturen, 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 das DFD Load from Text File VI, um einen Filter aus einer Textdatei zu laden. Sie können dieses VI nicht verwenden, 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. Zu diesen Beispielen gehören sowohl Tutorials als auch eingehende Fallstudien. Version 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 Impulsantwortfilters (FIR) nicht korrekt berechnet. Version 8.2 Das Digital Filter Design Toolkit 7.5 hatte keine Einschränkungen für die Anzahl der Stufen oder die Differenzverzögerung eines CIC-Filters. Das Digital Filter Design Toolkit 8.2 schränkt die Anzahl der Stufen eines CIC-Filters auf den Bereich 1, 8 ein und beschränkt den Differenzverzögerungswert auf 1 oder 2. Wenn Sie einen Filter verwenden möchten, 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 und verwenden Sie dann 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 Multiratfilters als maximale Abtastfrequenz im Multiratfilter. Das Digital Filter Design Toolkit 8.2 definiert die Abtastfrequenz eines Multiratfilters als Eingangsabtastfrequenz im Multiratfilter. 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 des Interpolationsfilters von der maximalen Abtastfrequenz bis zur Eingangsabtastfrequenz ändern. Diese Änderung wirkt sich nicht auf Dezimierungs - und No-Rate-Change-Filter aus. Im Digital Filter Design Toolkit 8.2 befindet sich das DFD FXP Modeling for CodeGen Express VI nicht in der Fixed Point Point Palette. Verwenden Sie das DFD FXP Quantize Coef VI, um die Koeffizienten eines Filters und des DFD FXP Modeling VI zu quantisieren, um stattdessen ein Fixpunktfiltermodell zu erstellen. Im Digital Filter Design Toolkit 7.5 waren die Größenreaktions - und Phasenreaktionsausgänge des DFD Plot MRate Freq Response VI 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 das folgende neue bekannte Problem: Da die Standard-Fonts auf Windows Vista anders als die Standard-Fonts auf früheren Windows-Versionen sind, können Sie in VIs kosmetische Probleme wie überlappende oder abgeschnittene Textzeichenfolgen feststellen Und LabVIEW-Dialogfelder. Um dieses Problem zu beheben, ändern Sie das Thema des Betriebssystems auf Windows Classic im Dialogfeld Themeneinstellungen und starten Sie dann LabVIEW neu. Wählen Sie Start0187Control Panel0187Appearance und Personalisierung und klicken Sie auf Thema ändern, um das Dialogfeld "Themeneinstellungen" anzuzeigen. Die Filteranalyse-VIs können lange dauern, um einen Filter mit hoher Ordnung zu analysieren. Das DFD Remez Design VI kann lange dauern, um einen FIR Filter mit hoher Ordnung zu entwerfen. Die DFD Least Pth Norm Design VI kann eine lange Zeit dauern, um Designs, die iterative Algorithmen haben abgeschlossen. Das Digital Filter Design Toolkit 8.2 erlaubt keine nullwertigen Nullen im Pole-Zero Placement Express VI. Wenn Sie einen nullwertigen Nullpunkt angeben, zwingt der Express-VI die Nullwert-Null auf eine nicht nullwertige Null. Wenn Sie einen Festkomma-Filter entwerfen, müssen Sie die Quantisierer konfigurieren. Jeder Quantisierer enthält einen signierten Booleschen Wert, der angibt, ob er die eingegebene Nummer als signierte Nummer behandeln soll. Das Digital Filter Design Toolkit 8.2 unterstützt nur signierte Zahlen. Die Eigenschaften eines Filters können sich ändern, wenn bei der Umwandlung zwischen den Filterkoeffizienten verschiedener Filterstrukturen numerische Fehler 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 dieser Situation begegnen, versuchen Sie es mit einer anderen Struktur. Möglicherweise müssen Sie die Beispiel-VIs des Digital Filter Design kompilieren, die zeigen, wie man LabVIEW FPGA-Code in LabVIEW-Projekten verwendet. Weitere Informationen finden Sie in der LabVIEW-Hilfe. Zugänglich durch Auswahl von Help0187Suchen Sie die LabVIEW-Hilfe aus dem Pulldown-Menü in LabVIEW, um Informationen über die Verwendung des Digital Filter Design Toolkits zu erhalten. Sie können auf die Beispiele für das Digital Filter Design Toolkit zugreifen, indem Sie Help0187Find Beispiele auswählen, um den NI Beispiel Finder anzuzeigen und dann zum Ordner Toolkits und Module0187Digital Filter Design zu navigieren. Sie können auch auf den Link Beispiele suchen im Abschnitt Beispiele des Getting Started-Fensters klicken, 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 finden auch die Beispiele für das Digital Filter Design Toolkit im labviewexamplesDigital Filter Design-Verzeichnis. 0169 200682112007 National Instruments Corporation. Alle Rechte vorbehalten. Im Rahmen der Urheberrechtsgesetze darf diese Publikation weder in elektronischer oder mechanischer Form, einschließlich Fotokopie, Aufzeichnung, Lagerung in einem Informationsabrufsystem, oder ohne vorherige schriftliche Zustimmung von National Instruments vervielfältigt oder übertragen werden Gesellschaft. National Instruments, NI, ni. Und LabVIEW sind Marken der National Instruments Corporation. Weitere Informationen zu den Marken von National Instruments finden Sie im Abschnitt "Nutzungsbedingungen" auf Nilegal. Andere hierin erwähnte Produkt - und Firmennamen sind Warenzeichen oder Handelsnamen der jeweiligen Firmen. Für Patente, die die Produkte von National Instruments abdecken, wenden Sie sich bitte an den entsprechenden Ort: help0187Patents in Ihrer Software, die Datei patents. txt auf Ihrer CD oder Nipatents.

No comments:

Post a Comment