Saturday 23 September 2017

Beweglicher Durchschnitt Labview Fpga


Berechnen des gleitenden Durchschnitts Dieses VI berechnet und zeigt den gleitenden Durchschnitt mit einer vorgewählten Zahl 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. 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 zur Steuerung des Filters. 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 wähle (Zeit (Fs94Hz) Bei einem 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 Schrittantwort zu simulieren, ist meine Anstiegszeit etwa 3 mal von diesem Wert bei 14s. Ich kann nicht erklären, warum die Sprungantwort meines Filters sich so sehr unterscheidet. Für mein Moving Average Filter ist die berechnete und simulierte Anstiegszeit gleich. Ich habe die vi, die auf dem angeschlossenen FPGA durchgeführt wird. Vielleicht kann jemand einen Fehler finden. (Siehe auch Alpha-Filter oder RC-Filter) Ist Ihre Sampling-Frequenz (fs) richtig Wenn die Loop-Timing nicht übereinstimmt, würde das erklären. Ihre Datentypen sehen gut aus (um Alpha innerhalb von 1 zu erhalten). Aber ich würde vorschlagen, eine kleine Änderung in der Umsetzung. Wie es aussieht, ist es ein wenig anfällig für abgerundetes Treiben, weil (1-alpha) wiederholt mit dem yn-1 multipliziert wird. Eine etwas zuverlässigere Methode heißt yn yn-1 (alpha (xn - yn-1)). Der Unterschied ist subtil, aber gibt mir bessere Ergebnisse oft. Und es eliminiert eine Multiplikation. By the way, reinterpret Zahl tut das Gleiche wie Ihre Konvertierung von FXP zu bool und dann zurück. Es ist ein wenig weniger verwirrend, though. Im ein wenig verwirrt durch die zeitgesteuerte Schleife, die nie Schleifen. Tut es inforce Timing so (ich davon ausgegangen, es wäre nicht, so dass nie verwendet es ich den Loop Timer statt.) CLD User seit rev 8.6. Missbrauch bei Moderator melden Missbrauch bei Moderator melden Missbrauch bei Moderator melden Nachricht 2 von 13 (931 Ansichten) Antworten 0 1, ich beweisen meine Sampling-Frequenz mit dem Loop-Timer. Meine Eingabe sind 425.532 Ticks, die gleich 94 Hz ist. Diese Tickrate wird durch Ticks EWMA bestätigt. --gt Vielleicht kann jemand den Code testen und mir sagen, 2, fand ich Ihren Ansatz in den Tricks und Tipps Abschnitt von Lyon Buch. Ich werde einen Versuch machen, aber könnten Sie erklären, die runden abtreiben ein wenig bin ich ganz neu in diesem Bereich. Gibt es einen weiteren Vorteil aus der Beseitigung eines Multiplikators außer ressources Sind der Frequenzgang, Impulsantwort und Schrittantwort die gleichen 3, wenn ich nur bitshift, bin ich Art ein verwendet, um diese Methode nicht sicher, ob die reinterprate Funktion weniger Ressourcen verwendet. Aber danke, dass du es bemerkt hast. 4, Die zeitgesteuerte Schleife iteriert alle 425.532 Zecken einmal. So wird mit einer Frequenz von 94Hz ein Wert durch den Code berechnet, da der Code innerhalb der zeitgesteuerten Schleife nur eine Iteration benötigt. Oder bin ich missunderstanding Ihre Frage Ich bin 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 oben erwähnte, um eine Zeitkonstante von 2s bei einer Abtastrate von 94 Hz zu erhalten, muss alpha 0,00169 sein. Die Anstiegszeit der Sprungantwort von 10 bis 90 des Endwertes unterscheidet sich von der Theorie. Aufstiegzeit sollte 4,4s mit Zeitkonstante 2s sein, aber ich erhalte fast 14s, wenn ich meinen Code auf dem FPGA laufe. Ich bestätigte, dass mit dem Alpha 0,00169 mein Code 1297samples von 0,1 bis 0,9 (Endwert 1, Startwert 0) erhält. Wie Sie in meinem Code sehen können, überprüfe ich die Schleifenzeit mit dem Indikator ticks ewma, um die Abtastrate der SCTL zu bestätigen. Kann jemand anderes die 1297samples bestätigen die bei alpha benötigt werden 0,00169 Ursache Ich denke, dass ich zu viele Samples benötige um den 0,9 Wert zu erreichen. Ich habe bereits die vorgeschlagene EWMA-Version aus der ersten Antwort. Das gleiche Problem hier. Nachricht 5 von 13 (881 Ansichten) Antworten mit Zitat Beitrag editieren / löschen Diesen Beitrag einem Moderator melden Zum Anfang der Seite springen Meine Eingabe sind 425.532 Ticks, die gleich 94 Hz ist. Diese Tickrate wird durch Ticks EWMA bestätigt. --gt Vielleicht kann jemand den Code testen und mir sagen, 2, fand ich Ihren Ansatz in den Tricks und Tipps Abschnitt von Lyon Buch. Ich werde einen Versuch machen, aber könnten Sie erklären, die runden abtreiben ein wenig bin ich ganz neu in diesem Bereich. Gibt es einen weiteren Vorteil aus der Beseitigung eines Multiplikators außer ressources Sind der Frequenzgang, Impulsantwort und Schrittantwort die gleichen 3, wenn ich nur bitshift, bin ich Art ein verwendet, um diese Methode nicht sicher, ob die reinterprate Funktion weniger Ressourcen verwendet. Aber danke, dass du es bemerkt hast. 4, Die zeitgesteuerte Schleife iteriert alle 425.532 Zecken einmal. So wird mit einer Frequenz von 94Hz ein Wert durch den Code berechnet, da der Code innerhalb der zeitgesteuerten Schleife nur eine Iteration benötigt. Oder bin ich missunderstanding Ihre Frage Ich habe eine Kalkulationstabelle zu simulieren, und erhalten fast genau die gleiche Antwort (1299 Zyklen von 0,1 bis 0,9 gehen). Spreadsheets machen ein praktisches Werkzeug für Berechnungen. 1. Okay. Ich habe noch nie die Single-Cycle-Timed-Loop (SCTL) mit der T geschrieben, um die Haltestelle. Es würde dazu führen, dass die mathematischen Funktionen Single-Zyklus, aber Im nicht sicher, ob das ein Vorteil ist. Ich wollte nur sicherstellen, dass die Zeit bestätigt wurde, und es ist. 2. Die Abrundung wird wahrscheinlich nicht angezeigt, es sei denn, Ihre Eingabe ist klein (kleiner als 0,1). Ich sehe jetzt, dass Sie 40 Bits (39 rechts der Dezimalzahl) für die Rückmeldung haben. Das dauert ziemlich viel FPGA zu multiplizieren, aber nicht rund-off Fragen haben. Andere Teile hatten nur 18 Bits (17 rechts von der Dezimalzahl), so dass alpha (0.00169 - .000007) mal eine Eingabe von 0,1 wäre 0.000169 - 0,000007 oder 7 Fehler). Aber das Multiplizieren ist auch 40 Bit, also sollten Sie keine Probleme sehen. Typischerweise hat der Ausgang yn weniger Bits und runden das letzte Bit ab. Aber weil es in einer Schleife Multiplikation mit 1-Alpha jedes Mal, die Round-off manchmal akkumuliert jede Schleife, bis es groß genug ist, um die addiert Ergebnisse beeinflussen. Es ist schwer zu erklären, aber meine allgemeine Faustregel ist, dass ich erwarten, dass ein Fehler gleich dem kleinsten Bit geteilt durch alpha, mit der ursprünglichen Methode oder etwa die Hälfte, dass usint die Ein-Multiplikation-Methode. Die Antworten werden fast identisch sein, mit Ausnahme eines kleinen Unterschieds. Der größte Vorteil ist, FPGA-Speicherplatz zu sparen (und Kompilierzeit). Und Sie können Ihre Anzahl von Bits etwas reduzieren, um noch mehr zu sparen. 3. Sie sind grundsätzlich identisch. Und beide Methoden sind kostenlos in FPGA. Die Bits arent geändert, so dass keine Logik benötigt wird, sie sind einfach umbenannt. 4. Ich glaube, Sie haben es gut beantwortet. In der Regel, an diesem Punkt würde ich einstellen Alpha, bis meine Ergebnisse, was ich wollte, und weitergehen. Ich hasse es nicht verstehen ein Missverhältnis, aber dont haben in der Regel Zeit, um in sie 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. Danke für Ihre ausführliche Antwort. Hinsichtlich des Problems mit der Anstiegszeit glaube ich, dass ich den Fehler gefunden habe. Sie könnten Recht haben, dass die Formel nicht korrekt ist, oder was wohl von mir missverstanden wird und im falschen Kontext steht. Als ich von der Arbeit nach Hause fuhr, erinnerte ich mich an eine praktische Funktion von labview: Glättung von Filterkoeffizienten. vi Hier müssen Sie nur tauTC und fs setzen und Nominator und Nenner für exponentiellen gleitenden Durchschnitt und gleitenden Durchschnitt berechnen. Da der Nominator alpha ist, könnte ich das Ergebnis mit der Formel vergleichen, die ich verwendet habe, und es gab einen gewissen 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: In der Regel, an diesem Punkt würde ich einstellen Alpha, bis meine Ergebnisse, was ich wollte, und gehen weiter. Ich würde gerne das gleiche tun, aber da dies meine Masterarbeit ist, muss ich solche Dinge jetzt wieder auf die Rundung Fragen zu lösen. 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 bereits auf unserem Messgerät getestet und es funktioniert, dafür werde ich deine Version auch testen, aber wenn ich keine Probleme bekomme, schätze ich es bei 40bits. Die Simulation des folgenden Setups verursachte einen Fehler von 2.3. Mit 57 Bits reduzierte den Fehler auf 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 DSP Slices für die Multiplikation und 10 gratis FlipFlops. Also ich denke, dieses Thema ist gelöst. Dank für Ihre große Hilfe und interessante Gedanken. Cool Im froh, seine Arbeit, jetzt. Ich wuchs in der Ära ohne DSP-Scheiben in FPGAs und kleinere Zellenzahlen, so immer noch dazu neigen, in diesen Begriffen zu denken. Ich bevorzuge immer noch, 25 Minuten Programmierung zu verbringen, um meine Kompilierzeiten nach unten, though. Ive hatte Fälle, in denen ich Schnitt kompilieren Zeit von 90 Minuten bis 45 Minuten durch Optimierung ziemlich viel. Mit einem leistungsfähigen Server für das Kompilieren, das ist weniger wichtig. Eine dieser Optimierungen ist, Bit-Zählungen zu reduzieren, wo ich kann, vor allem für Multiplikationen. Beispielsweise ist alpha 160 und für 0,0053 können Sie auch 12-4 (negative Integerzahl) verwenden. Sie können auch in der Lage, eine Menge von oberen Bits aus Ihrer Eingabe zu beseitigen. 5 Minuten, um die kleinste Bit-Zählung holen kann leicht zu speichern 2-10 Minuten für jedes Kompilieren. Meine zweite Optimierung ist, Multiplikationen zu reduzieren, aber mit einem DSP-Slice, das ist nicht so wichtig. Ich kippe finde gute Dokumentation über die DSP-Scheiben (wenn Sie einige haben, bitte Pfostenverbindungen), aber, wie ich es verstehe, wenn Sie größere Zahlen (Bitzählimpulse) vermehren, benötigt es mehrfache Scheiben und möglicherweise Zeit, die Resultate zu kombinieren. Und ein weiterer Trick: Wählen Sie ein Alpha mit einem einfachen binären Wert, wie 1256 (Sie ausgewählt über 1189), und ändern Sie fs, bis Sie die gewünschte Glättung erhalten. Verwenden Sie dann eine Konstante für alpha. Multiplizieren mit einer konstanten 1256 ist im FPGA frei (es schiebt nur die Bits). Für diese Angelegenheit, die Herstellung Alpha-Konstante kann optimieren die Multiplikationen ziemlich viel. Abhängig von den Smarts des Optimierers kann es stattdessen zu einem Satz von Addierern geändert werden. Front-Panel-Eingänge sind großartig für die Dinge zu arbeiten, aber Konstanten optimieren viel besser. CLD Benutzer seit rev 8.6. Wenn Sie durchschnittlich 16 mal so viele Samples (fs 16x was es war), sollten Sie 4 weitere Bits in Ihr Feedback. Sie haben bereits pleanty, so dass möglicherweise nicht wichtig, wenn Sie viel schneller gehen. Ansonsten ist die Erhöhung fs wahrscheinlich gut. Wenn der Eingang hat Niederfrequenz-Rauschen, über Sampling nicht helfen, beseitigen, dass überhaupt. Hochfrequentes Rauschen verringert sich jedoch bei einer Überabtastung. Wenn zum Beispiel das Rauschen über 10Hz -5dB (das ist das 10- .5-fache der Amplitude des Signals, das Sie mögen), und Sie Probe bei 20Ss, werden Sie wahrscheinlich abholen -5dB in Ihrem ersten Lesungen. Wenn Ihr -3dB (fc) ist auch 10Hz, dann youll am Ende mit rund -8dB Rauschen in Ihrem Signal links. Wenn Sie stattdessen 200S nehmen, durchschnittliche Gruppen von 10, dann diese Durchschnitte an den Filter weitergeben, werden Sie nicht helfen, Rauschen bei 10Hz (Sie wurden 10Hz Rauschen ohne Sampling-Effekte), sondern reduziert Rauschen über 100Hz um etwa einen Faktor der Nähe (Aber nicht wirklich) 10. Es gibt ganze Semester-lange Klassen, die diskutieren, warum, wie, etc. Die kurze Version ist dies: Jedes Sample ist die Summe aus dem gewünschten Signal und Rauschen. Wenn Sie 10 Samples hinzufügen, erhalten Sie 10x das gewünschte Signal und die Summe von 10 Rauschen. Die Art des Rauschens bestimmt, was Sie erhalten, wenn Sie die 10 Samples von Rauschen hinzufügen. Gauss-Rauschen fügt einen Weg hinzu (so etwa: Wenn 83 von Proben unter X liegen, hat die Summe 83 Summen unter 1.1X oder so ähnlich). Lineares Rauschen fügt einen anderen Weg. Und wiederholen Muster hinzufügen einen anderen Weg. Also, ohne genau zu wissen, was der Lärm ist, kann niemand Sie mit Sicherheit beantworten, außer dass Mittelung mehrere Proben wahrscheinlich hilft, und fast nie weh tut. Es gibt auch die Frage des Aliasing. Wenn Sie eine Sinus-Interferenz von 60Hz haben, bei -3dB, und Sie Probe bei 10.001Ss (immer davon ausgehen, die Uhren passt nicht genau), erhalten Sie 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. Mittelung von 10 Proben zu einem Zeitpunkt ist eine Art von Filter (Feld). Wenn Sie es in einem Frequenzbereich betrachten, können Sie sehen, dass einige höhere Frequenzen zu niedrigeren Frequenzen auf eine ungerade Weise verschoben werden, und nicht alle werden reduziert. Wenn Sie durchschnittlich 4000 Ss, 100 zu einer Zeit, youll erhalten eine durchschnittliche 40 Mal pro Sekunde. Mit 60Hz Interferenz, erhalten Sie etwa 13 so viel Rauschen, verschoben auf 20Hz, die nicht Filter sowie 60Hz haben würde. 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. Und die Mittelung ist (wahrscheinlich) besser als nur eine langsamere Abtastrate. Wenn Sie einen Eingangsadapter mit eingebauten elektronischen Filtern haben, ist das sogar besser, und es gibt keine Notwendigkeit, mehr als 2x die Filterfrequenz zu probieren. CLD User seit rev 8.6.LabVIEW Digitales Filter Design Toolkit 8.2.1 Liesmich Das LabVIEW Digital Filter Design Toolkit 8.2.1 behandelt die Installationsprobleme mit der 64-Bit-Version von Windows Vista x64 Edition, die im Digital Filter Design Toolkit 8.2 enthalten sind. Wenn Sie das Digital Filter Design Toolkit 8.2 installiert haben, müssen Sie zuerst diese Version deinstallieren, bevor Sie das Digital Filter Design Toolkit 8.2.1 installieren. Diese Datei enthält Informationen, die Sie zum Digital Filter Design Toolkit einführen. Diese Datei bietet Ihnen auch Hilfsmittel, die Sie während der Arbeit mit dem Toolkit verwenden können. Die Datei enthält die folgenden Informationen, die Sie verstehen müssen. Das Digitale Filter Design Toolkit bietet eine Sammlung von digitalen Filter-Design-Tools zur Ergänzung der LabVIEW Voll-oder Professional Development System. Das Digital Filter Design Toolkit hilft Ihnen, digitale Filter zu entwerfen, ohne dass Sie über fortgeschrittene Kenntnisse der digitalen Signalverarbeitung oder der digitalen Filtertechniken verfügen müssen. Mit dem Digital Filter Design Toolkit können Sie Gleitkomma - und Fixpunkt-Digitalfilter entwerfen, analysieren und simulieren. Ohne Vorkenntnisse über die Programmierung in LabVIEW können Sie mit den Digital-Filter-Design-Express-VIs grafisch mit den Filterspezifikationen interagieren, um entsprechende digitale Filter zu entwerfen. Das Digitale Filter-Design-Toolkit stellt VIs zur Verfügung, die Sie zum Entwerfen eines digitalen FIR - oder IIR-Filters verwenden können, die Eigenschaften des digitalen Filters analysieren, die Implementierungsstruktur des digitalen Filters ändern und Daten verarbeiten Mit dem digitalen Filter. Neben der Gleitkomma-Unterstützung bietet das Digitale Filter-Design-Toolkit eine Reihe von VIs, die Sie verwenden können, um ein digitales Fixpunkt-Filtermodell zu erstellen, die Eigenschaften des digitalen Fixed-Point-Filters zu analysieren und die Performance des Fixed zu simulieren Digital-Filter und erzeugen Fixpunkt-C-Code, Integer-LabVIEW-Code oder LabVIEW-FPGA-Code für ein bestimmtes Fixpunktziel. Das Digital-Filter-Design-Toolkit stellt VIs für das digitale Filterdesign mit mehreren Drähten zur Verfügung. Sie können die VIs zum Entwerfen und Analysieren eines Gleitkomma-einstufigen oder mehrstufigen Multiratfilters verwenden. Sie können dann den entworfenen Multirate-Filter verwenden, um Daten zu verarbeiten. Das Digital-Filter-Design-Toolkit bietet außerdem eine Reihe von VIs, mit denen Sie einen Fixpunkt-Multiratenfilter erstellen, analysieren und simulieren können. Sie können LabVIEW FPGA-Code aus dem entworfenen Fixpunkt-Multiratenfilter für ein NI Reconfigurable IO (RIO) - Target generieren. Neben den grafischen Tools für das digitale Filterdesign bietet das Digital Filter Design Toolkit auch MathScript-Funktionen, die von LabVIEW MathScript unterstützt werden. Diese MathScript-Funktionen ermöglichen es Ihnen, Filter in einer textbasierten Umgebung zu entwerfen. Um das Digitale Filter-Design-Toolkit verwenden zu können, müssen Sie National Instruments LabVIEW 8.2 oder höher, Full oder Professional Development System, auf dem Host-Computer installiert haben. Hinweis: Wenn Sie das Digitalfilter Design Toolkit verwenden, um einen LabVIEW FPGA-Code aus einem Fixpunktfilter zu generieren, müssen Sie das LabVIEW FPGA Module und die NI-RIO Software von National Instruments 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 bereits das Digital Filter Design Toolkit 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. Überprüfen Sie vor der Installation, ob Ihr Computer die folgenden Bedingungen erfüllt: Eine kompatible Version von LabVIEW ist installiert. Keine früheren Versionen des Digital Filter Design Toolkits, einschließlich Betaversionen, werden installiert. LabVIEW wird nicht ausgeführt. Hinweis: Wenn Sie das Digitalfilter Design Toolkit verwenden, um einen 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 setup. exe-Programm aus. Folgen Sie den Anweisungen auf dem Bildschirm. Das Digital Filter Design Toolkit 8.2.1 enthält Fehlerkorrekturen, bietet aber keine neuen Funktionen. Das Digital Filter Design Toolkit 8.2 enthält die folgenden neuen Funktionen: Digitalfilter Design MathScript Funktionen Verwenden Sie die digitalen 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 Verwendbarkeit der Fixed-Point Tools-VIs. Diese VIs können Ihnen helfen, einen Fixpunktfilter mit nur wenigen erforderlichen Eingaben zu entwerfen. Sie können auch diese VIs 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, die Filterkoeffizienten effizient zu quantisieren, indem eine begrenzte Anzahl von Bits verwendet wird. Verbesserte Fixpunkt-Filtercodegenerierung Das Digitale Filter-Design-Toolkit 8.2 unterstützt die Erzeugung von Fixpunkt-Filtercode und unterstützt mehr Fixpunkt-Filtermodelle, beispielsweise solche mit 32-Bit-Koeffizienten. Sie können ein Fixpunkt-Filtermodell angeben, um zusätzlich zu I16xI16-Multiplikationen I32xI16- oder I32xI32-Multiplikationen durchzuführen. Sie können auch einen Filterblock erzeugen, der Mehrkanal-Signale verarbeiten kann. Das Digital Filter Design Toolkit organisiert den erzeugten 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 von Digitalfiltern. Der neue Mechanismus speichert die internen Zustände eines Filters in den Speicherelementen des erzeugten LabVIEW-FPGA-Codes. Für FIR-Filter speichert dieser Mechanismus die FIR-Filterkoeffizienten in Nachschlagtabellen. Bei der Verarbeitung von Mehrkanalsignalen kann der LabVIEW FPGA-Code die Filterkoeffizienten gemeinsam nutzen und logische Ressourcen unter den mehreren Kanälen filtern. Rational Resampling Multirate Filter Unterstützung Das Digital Filter Design Toolkit 8.2 bietet Unterstützung für das Design, die Analyse und Implementierung von Rational Resampling Multirate Filtern, zusätzlich zu Dezimation und Interpolation Filter. Eine rationale Wiederabtastung eignet sich für die Anbindung an digitale Signalverarbeitungssysteme (DSP), die mit unterschiedlichen Geschwindigkeiten arbeiten. Sie können z. B. Rational Resampling verwenden, um ein 48 kHz-Signal von einem professionellen Audiosystem in ein 44,1 kHz-Signal für eine Audio-CD zu konvertieren. Multirate-Filter-Design-Express-VIs Verwenden Sie das Multirate-FIR-Design, Multistage-Multirate-Filterdesign und Multirate-CIC-Design-Express-VIs, um multirate FIR-Filter, mehrstufige Multiratfilter und interaktive CIR-Filter (Multirate Cascade Integrator Comb) zu erstellen. Fixed-Point Multirate Filter Design Unterstützung Verwenden Sie die Multirate Fixed-Point Tools-VIs zu quantisieren, modellieren und simulieren Fixed-Point-Multirate-Filter. Fixpunkt-Multiraten-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-Multiratenfiltern zu erzeugen. Sie können Code für Einkanal - und Mehrkanalfilteranwendungen erzeugen. Sie können auch Code aus einstufigen und mehrstufigen Multiraten-Filter 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 Festkommadarstellern zu generieren. Der von einem Festpunkt-MA-Filter erzeugte LabVIEW-FPGA-Code unterstützt Sie bei der effizienten MA-Filterung auf einem Eingangssignal mit wenigen Hardwareressourcen. Verwenden Sie die Dienstprogramme VIs, um Übertragungsfunktion, Null-Pol-Verstärkung und Differenzgleichungen in Bildsteuerungen zu zeichnen. Filtern Speichern und Laden von Textdatei-Tools Verwenden Sie die DFD In Textdatei speichern und das DFD Speichern von MRate in Textdatei-VIs, um Filter, einschließlich Multiratfilter, als Textdateien zu speichern. Sie können Filterstrukturen, Filterordnungen und Filterkoeffizienten aus den Textdateien abrufen. Sie können dann die Filterkoeffizienten aus den Textdateien kopieren und die Koeffizienten in anderen Anwendungen verwenden. Verwenden Sie den DFD-Load aus Textdatei VI, um einen Filter aus einer Textdatei zu laden. Sie können dieses VI nicht verwenden, um einen Multiratfilter zu laden. Das Digital Filter Design Toolkit 8.2 bietet mehr als 100 Beispiele, die zeigen, wie Sie bestimmte Aufgaben mit den VIs und Funktionen des Digitalfilters ausführen können. Diese Beispiele umfassen sowohl begonnene 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 FIR-Filters (Finite Impulse Response) nicht korrekt berechnen kann. Version 8.2 Das Digitalfilter Design Toolkit 7.5 hatte keine Beschränkungen für die Anzahl der Stufen oder die Differenzverzögerung eines CIC-Filters. Das Digitalfilter Design Toolkit 8.2 schränkt die Anzahl der Stufen eines CIC-Filters auf den Bereich 1, 8 ein und begrenzt den Differenzialverzö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 diese Situation finden, speichern Sie den Filter als Binärdatei im Digital Filter Design Toolkit 7.5, und verwenden Sie das Digital Filter Design Toolkit 8.2, um den Filter aus der Binärdatei zu laden. Das Digitalfilter Design Toolkit 7.5 definierte die Abtastfrequenz eines Multirate-Filters als maximale Abtastfrequenz im Multirate-Filter. Das Digital Filter Design Toolkit 8.2 definiert die Abtastfrequenz eines Multirate-Filters 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 zuerst die Abtastfrequenz des Interpolationsfilters von der maximalen Abtastfrequenz auf die Eingangsabtastfrequenz ändern. Diese Änderung wirkt sich nicht auf Dezimierungs - und Nichtratenänderungsfilter aus. Im Digital Filter Design Toolkit 8.2 befindet sich die DFD FXP Modellierung für CodeGen Express VI nicht in der Palette Fixpunktwerkzeuge. Verwenden Sie das DFD FXP Quantize Coef VI, um die Koeffizienten eines Filters und das DFD FXP Modeling VI zu quantisieren, um stattdessen ein Fixpunktfiltermodell zu erstellen. Im Digital Filter Design Toolkit 7.5 waren die Amplitudenantwort und die Phasenansprechausgä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. Enthält das Digitale Filter-Design-Toolkit 8.2.1 das folgende neue bekannte Problem: Da die Standardschriften auf Windows Vista anders als die Standardschriften in früheren Windows-Versionen sind, können Sie in VIs kosmetische Probleme wie z. B. überlappende oder abgeschnittene Textzeichenfolgen feststellen Und LabVIEW-Dialogfelder. Um dieses Problem zu beheben, ändern Sie das Thema des Betriebssystems in Windows Classic in dem Dialogfeld Themeneinstellungen und starten Sie dann LabVIEW neu. Wählen Sie Start0187Control Panel0187Appearance und Personalization aus, und klicken Sie auf Theme ändern, um das Dialogfeld Themeneinstellungen anzuzeigen. Die Filter-Analyse-VIs können eine lange Zeit dauern, um einen Filter mit einer hohen Ordnung zu analysieren. Das DFD Remez Design VI kann eine lange Zeit in Anspruch nehmen, 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 Nullwerte im Pole-Zero Placement Express VI. Wenn Sie einen nullwertigen Wert angeben, erzwingt das Express-VI den Nullwert Null auf einen nicht nullwertigen Nullpunkt. Wenn Sie einen Fixpunktfilter entwerfen, müssen Sie die Quantisierer konfigurieren. Jeder Quantisierer enthält einen signierten Boolean, der angibt, ob die Eingangsnummer als eine signierte Zahl behandelt werden soll. Das Digital Filter Design Toolkit 8.2 unterstützt nur signierte Nummern. 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, kann sich der Filter mit der neuen Struktur vollständig von dem ursprünglichen Filter unterscheiden. Wenn Sie dieser Situation begegnen, versuchen Sie es mit einer anderen Struktur. Möglicherweise müssen Sie die VIs für das Digitalfilterdesign kompilieren, die veranschaulichen, wie der generierte LabVIEW-FPGA-Code in LabVIEW-Projekten verwendet wird. Siehe 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 Toolkit. Sie können auf die Beispiele für das Digitale Filter-Design-Toolkit zugreifen, indem Sie Help0187Find-Beispiele auswählen, um den NI-Beispiel-Finder anzuzeigen, und navigieren Sie dann zum Ordner "Toolkits and Modules0187Digital Filter Design". 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 von Ihnen erstelltes VI kopieren und einfügen. Sie finden auch die Beispiele für das Digital Filter Design Toolkit im Verzeichnis labviewexamplesDigital Filter Design. 0169 200682112007 National Instruments Corporation. Alle Rechte vorbehalten. Nach den Urheberrechtsgesetzen darf diese Publikation weder ohne vorherige schriftliche Zustimmung von National Instruments weder elektronisch noch mechanisch vervielfältigt oder übertragen werden, einschließlich Fotokopie, Aufzeichnung, Speicherung in einem Informationsabrufsystem oder Übersetzung ganz oder teilweise 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 hier erwähnte Produkt - und Firmennamen sind Marken oder Handelsnamen der jeweiligen Unternehmen. Für Patente, die die National Instruments-Produkte abdecken, finden Sie den entsprechenden Standort: Help0187Patents in Ihrer Software, die patents. txt-Datei auf Ihrer CD oder nipatents.

No comments:

Post a Comment