Einfach Gleitender Durchschnitt Vhdl

Für mein Projekt muss ich ein Rauschen von einem ADC-Ausgang zu reduzieren und implementiert einen einfachen gleitenden Durchschnitt Filter in VHDL. Obwohl es funktioniert in der Simulation (siehe das Bild): es hat einige seltsame Verhalten, wenn ich es auf dem Chipscope, wenn das System läuft im FPGA (siehe das Bild): Der VHDL - Code, den ich für den gleitenden Durchschnitt ist wie folgt: I Verwenden Sie Xilinx Vivado Tool 2015.2 auf Ubuntu 14.04 x64 ausgeführt. Könnten Sie mir bitte helfen, das Problem zu identifizieren, so dass Ergebnisse in der Simulation entsprechen Ergebnisse nach der Synthese Ich habe eine Frage im Zusammenhang mit kontinuierlichen Mittelung der ADC-Wert. Der Ansatz, den ich verwendete, ist die kontinuierliche Mittelung von Beispiel 256 Proben. Der Adcaout-Wert (angezeigt im Code unten), den ich auf meiner GUI empfange, schritt langsam. Als Beispiel, wenn ich erwarte Wert 100mA, Meine GUI zeigt 4mA, 8mA, 15mA. Und dann endlich nach 2 Minuten bekomme ich einen stabilen 100mA Wert. Ich möchte sehen, die 100mA direkt auf meiner GUI von adcaout statt Inkrement Werte und Stabilisierung nach einiger Zeit. Eine andere Frage ist, dass, kann ich irgendwie machen diesen Prozess schnell, so dass ich nicht für 3 Minuten für den Empfang stabil 100 mA von adcaout warten müssen. Die Clock im digitalen Design unten ist 20 MHz. Die Uhr zum Empfangen der ADC-Werte auf der FPGA-Platine beträgt 15 KHz. - die adc. vhd-Datei ist unten: Ihr Code wird wie folgt geändert: Die endgültige Ausgabe, die ich auf meiner GUI sehe, ist slvvalue1 und slvvalue2 Wie über dieses: am Rücksetzen (oder zu jeder anderen Zeit, wenn Sie wollen), weisen Sie die Datain-Wert für alle Elemente in Ihrem Array. Dies sollte sofort den Durchschnitt auf den aktuellen Wert einstellen: Das folgende Beispiel zeigt den kompletten Code für einen gleitenden Durchschnittsrechner. Mein Vorschlag ist, dass Sie es studieren, bis Sie es verstehen. Dann versuchen Sie es in Ihrem Design verwenden. Schließlich, und nur nachdem Sie eine grundlegende Schaltung arbeiten, können Sie es ändern, um Ihre Design-Einschränkungen (Datenbreite, Anzahl der Proben, Bereich der Ganzzahlen, die Verwendung von signierten vs Integer etc.) Endlich, wenn Sie verwenden möchten Den obigen Code, um zwei separate Mittelwerte für zwei verschiedene Signale zu halten, einfach Instanziieren der Mittelung Einheit zweimal: Edit: Wie ich aus Ihren Kommentaren zu verstehen, müssen Sie möglicherweise eine zusätzliche Eingabe, um den Durchschnitt sofort auf den aktuellen Eingangswert. In diesem Fall können Sie eine Lasteingabe wie unten gezeigt: beantwortet Nov 26 13 bei 15:45


Comments

Popular posts from this blog

Optionen Trading Motley Narr

Forex Arbitrage Ea Mt4

E Trade Nach Stunden Optionen