Sunday 26 November 2017

Moving Average Filter Vhdl


Ich habe eine Frage im Zusammenhang mit der kontinuierlichen Mittelung der ADC-Werte Der Ansatz, den ich verwendete, ist die kontinuierliche Mittelung von Beispiel 256 Samples Der Adcaout-Wert, der in dem Code angezeigt wird, den ich auf meinem GUI bekomme, erhöht sich langsam Als Beispiel, wenn ich den Wert 100mA erwarte, Meine GUI zeigt 4mA, 8mA, 15mA und dann endlich nach 2 Minuten bekomme ich stabil 100mA Wert Ich möchte die 100mA direkt auf meiner GUI von Adcaout anstelle von Inkrementwerten sehen und stabilisieren nach irgendwann Eine andere Frage ist das, kann ich irgendwie diesen Prozess machen Schnell, so dass ich nicht für 3 Minuten warten muss, um stabile 100 mA von adcaout zu erhalten. Die Uhr clk im digitalen Design unten ist 20 MHz Die Uhr für den Empfang von ADC-Werten auf der FPGA-Karte beträgt 15 KHz .-- Die Datei ist unten . Dein Code wird wie folgt modifiziert. Die endgültige Ausgabe, die ich auf meiner GUI betreibe, ist slvvalue1 und slvvalue2.How über diese bei Reset oder zu jeder anderen Zeit, wenn du willst, ordne den Datain-Wert allen Elementen in deinem Bühnen-Array zu. Dies sollte Sofort legen Sie Ihren Durchschnitt auf den aktuellen Wert. Das folgende Beispiel zeigt den vollständigen Code für einen gleitenden Durchschnitt Taschenrechner Mein Vorschlag ist, dass Sie es studieren, bis Sie es verstehen Dann versuchen, es in Ihrem Design verwenden Endlich, und nur nachdem Sie eine grundlegende haben Schaltung arbeiten, können Sie es ändern, um Ihre Design-Einschränkungen Datenbreite, Anzahl der Proben, Bereich der ganzen Zahlen, die Verwendung von signierten vs Integer etc. zu befriedigen, wenn Sie den obigen Code verwenden möchten, um zwei getrennte Mittelwerte für zwei verschiedene Signale zu halten, Einfach instanziieren Sie die Mittelung Entity zweimal. Edit Wie ich aus Ihren Kommentaren zu verstehen, können Sie eine zusätzliche Eingabe, um den Durchschnitt sofort auf den aktuellen Eingabewert einstellen In diesem Fall können Sie eine Lasteingabe wie unten gezeigt angewendet werden. answered Nov 26 13 at 15 45.Ist es möglich, einen gleitenden Durchschnitt in C ohne die Notwendigkeit für ein Fenster von Samples zu implementieren. Ich habe festgestellt, dass ich ein bisschen optimieren kann, indem Sie eine Fenstergröße, die eine Kraft von zwei, um Bit-Verschiebung statt zu ermöglichen Teilung, aber nicht brauchen einen Puffer wäre schön Gibt es eine Möglichkeit, ein neues gleitendes durchschnittliches Ergebnis nur als eine Funktion des alten Ergebnisses und der neuen Probe auszudrücken. Define ein Beispiel gleitenden Durchschnitt, über ein Fenster von 4 Samples zu. Add Neue Probe eA Gleitende Durchschnitt kann rekursiv implementiert werden, aber für eine genaue Berechnung des gleitenden Durchschnitts müssen Sie sich an die älteste Eingabe Probe in der Summe erinnern, dh die a in Ihrem Beispiel Für eine Länge N gleitenden Durchschnitt Sie berechnen. wo yn ist die Ausgabe Signal und xn ist das Eingangssignal Eq 1 kann rekursiv geschrieben werden. So müssen Sie sich immer an die Probe x nN erinnern, um zu berechnen 2.As von Conrad Turner, können Sie ein unendlich langes exponentielles Fenster stattdessen verwenden, was erlaubt Sie rechnen die Ausgabe nur aus der Vergangenheit und die aktuelle Eingabe. But dies ist nicht ein Standard ungewichtet gleitenden Durchschnitt, sondern ein exponentiell gewichtet gleitenden Durchschnitt, wo Proben weiter in der Vergangenheit bekommen ein kleineres Gewicht, aber zumindest in der Theorie Sie nie vergessen Alles, was die Gewichte nur kleiner und kleiner für Proben weit in der Vergangenheit. Ich habe einen gleitenden Durchschnitt ohne individuellen Element Speicher für ein GPS-Tracking-Programm Ich schrieb. Ich beginne mit 1 Probe und teilen durch 1, um die aktuelle avg. I dann hinzufügen Anothe Probe und teilen durch 2 auf die aktuelle avg. Dies geht weiter, bis ich auf die Länge des average. Each Zeit danach, füge ich in die neue Probe, bekomm den Durchschnitt und entfernen Sie diesen Durchschnitt aus der total. Ich bin nicht ein Mathematiker aber das schien wie ein guter Weg, es zu tun Ich dachte, es würde den Magen eines echten Mathe Kerl drehen, aber es stellt sich heraus, es ist eine der akzeptierten Möglichkeiten, es zu tun Und es funktioniert gut Nur daran erinnern, dass je höher Ihre Länge der Langsamer ist es folgend, was du dir folgen möchtest Das mag nicht die meiste Zeit sein, aber wenn man den Satelliten nachträglich, wenn du langsam bist, könnte der Weg weit von der tatsächlichen Position entfernt sein und es wird schlecht aussehen Du könntest eine Lücke zwischen dem Sat und Die hinteren Punkte Ich wählte eine Länge von 15 aktualisiert 6 mal pro Minute, um ausreichende Glättung und nicht zu weit von der tatsächlichen Sat-Position mit dem geglätteten Pfad dots. answered 16. November 16 um 23 03.initialize insgesamt 0, zählen 0 jedes Mal Einen neuen Wert zu sehen. Nach einer Eingabe scanf, eine addieren total newValue, eine Inkrementzählung, eine geteilte durchschnittliche Gesamtzählung. Dies wäre ein gleitender Durchschnitt über alle inputs. To berechnen den Durchschnitt über nur die letzten 4 Eingänge, würde 4 inputvariables erfordern , Vielleicht kopiert jeder Eingang zu einem älteren inputvariable, dann die Berechnung der neuen gleitenden Durchschnitt als Summe der 4 inputvariables, geteilt durch 4 richtige Verschiebung 2 wäre gut, wenn alle Eingänge waren positiv, um die durchschnittliche Berechnung. answerted 3. Februar 15 bei 4 zu machen 06.Das wird eigentlich den Gesamtdurchschnitt berechnen und NICHT der gleitende Durchschnitt Wenn der Zählwert größer wird, wird der Einfluss eines neuen Input-Samples verschwindend kleiner Hilmar 3. Februar 15 um 13 53. Ihre Antwort.2017 Stack Exchange, Inc. Moving Avergare Filter MAF in VHDL 2008 für DE0-NANO mit FPGA Cyclone IV. This Filter arbeitet mit festen Punkt, dass die Anzahl der Bits von der ADC. About der Moving Average Filter. A Moving Average Filter ist ein digitaler Filter, der Durchschnitt der Eingang s letzten M 1 Begriffe wie die folgende Expresion. Unter der zweiten direkten Form können wir definieren hn wie diese hnxnh n-1.So yn kann in diesem waw ynhn - h nM M ausgedrückt werden. Struktur des Filters. Die Top-Hierarchie ist, dass definieren Alle Filter s Struktur. Um von h n-1 zu h nM zu generieren, werden Flip-Flops verwendet, um Verzögerungen. Sie können diese Aktion zu diesem Zeitpunkt durchführen. Sie haben mit einem anderen Tab oder Fenster angemeldet Reload, um Ihre Sitzung zu aktualisieren Sie unterzeichneten Out in einem anderen Tab oder Fenster Reload, um Ihre Sitzung zu aktualisieren.

No comments:

Post a Comment