Thursday, 28 September 2017

Einfach Gleitender Durchschnitt Vhdl


Ich versuche, ein VHDL gleitenden Durchschnitt (gleichmäßig gewichtet) Modul, das FSMD (ata) verwendet zu schreiben. Von dem, was ich verstehe, die Zustände benötigt würde etwas wie holen, teilen, Ausgabe. Unten ist der Prozess, den ich geschrieben habe, aber ich fühle mich wie meine Logik ist ein bisschen aus. Beachten Sie, dass die Daten Im Mittelung nur ein konstantes Array von 8-Bit-Zahlen ist, so dass ich dachte, es sollte gut sein, ein nicht-kausalen Design verwenden. Die Daten haben 64 Einträge, und im Moment ist das Fenster für den Durchschnitt 4. Wie falsch ist dies aussehen Ein paar Probleme kann ich sofort sehen: Sie dont neu initialisieren Temp irgendwo. Sie haben keine Limit-Checks für count (ist es ein Subtyp oder nur eine natürliche Integer.) Was passiert mit Muster (Counti), wenn Sie die Grenze zu nähern Wie rollen Sie über) Ihre for-Schleife ist 0 bis len - sind Sie sicher, Sie Didnt mean 0 to (len - 1) Da Ihre gesamte Zustand decodieren Prozess getaktet ist, brauchen Sie nicht wirklich nstate überhaupt. Beachten Sie, dass Sie nicht sogar initialisieren cstate (aber youre immer noch decodiert). Entweder machen Sie Ihren Zustand decodieren einen separaten kombinatorischen Prozess oder einfach nur loswerden nstate und zuweisen cstate direkt. Ansonsten hängt es von Ihren Design-Ziele. Wenn Sie nicht über Durchsatz kümmern, aber Notwendigkeit, an einer sehr hohen Taktrate laufen zu lassen, möchten Sie möglicherweise Ihre Ergänzung sequentiell anstelle von parallel, zum Beispiel durchführen. Antwortete am 5. September 14 um 13:32 dank, dass definitiv macht die Dinge besser. Über die count Rollover, I39m nicht sicher, wie es zu tun, weil für jedes Muster (count) bis zu 63, möchte ich seinen Wert und den Durchschnitt des Fensters um es anzuzeigen. So dass, wenn ich Rollover bei coun-len, es shouldn39t gehen von Grenzen, aber es wird nicht zeigen, alle Daten. Wenn ich eine kausale Implementierung würde ich eine gewisse Verzögerung am Anfang haben, ist es eine ähnliche Sache, die ich hier brauchen, aber am Ende ndash user1710566 Sep 5 14 um 23:23 meine Lösung war: elsif (Clk-Ereignis) dann, wenn Zählung 64 Dann zählen lt 0 sonst berechnen Ende if. And in der for-Schleife habe ich einen Ausgang, wenn count i größer als 63. ndash user1710566 Sep 6 14 bei 0: 05 Ich habe eine Frage im Zusammenhang mit kontinuierlichen Mittelung der ADCs 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 verwenden: antwortete Nov 26 13 um 15: 45Einfacher Moving Average - SMA BREAKING DOWN Einfache Moving Average - SMA Ein einfacher gleitender Durchschnitt ist anpassbar, dass es für eine andere Anzahl von berechnet werden kann Indem man den Schlusskurs der Sicherheit für eine Anzahl von Zeitperioden hinzufügt und dann diese Summe durch die Anzahl von Zeitperioden dividiert, die den Durchschnittspreis des Wertpapiers über den Zeitraum gibt. Ein einfacher gleitender Durchschnitt glättet die Volatilität und macht es einfacher, die Preisentwicklung eines Wertpapiers zu sehen. Wenn der einfache gleitende Durchschnitt nach oben zeigt, bedeutet dies, dass der Sicherheitspreis steigt. Wenn es nach unten zeigt, bedeutet dies, dass der Sicherheitspreis sinkt. Je länger der Zeitrahmen für den gleitenden Durchschnitt, desto glatter der einfache gleitende Durchschnitt. Ein kürzerer bewegter Durchschnitt ist volatiler, aber sein Messwert ist näher an den Quelldaten. Analytische Bedeutung Die gleitenden Durchschnitte sind ein wichtiges analytisches Instrument, um aktuelle Preisentwicklungen und das Potenzial für eine Veränderung eines etablierten Trends zu identifizieren. Die einfachste Form der Verwendung eines einfachen gleitenden Durchschnitt in der Analyse ist es, schnell zu identifizieren, ob eine Sicherheit in einem Aufwärtstrend oder Abwärtstrend ist. Ein weiteres populäres, wenn auch etwas komplexeres analytisches Werkzeug, besteht darin, ein Paar einfacher gleitender Durchschnitte mit jeweils unterschiedlichen Zeitrahmen zu vergleichen. Liegt ein kürzerer einfacher gleitender Durchschnitt über einem längerfristigen Durchschnitt, wird ein Aufwärtstrend erwartet. Auf der anderen Seite signalisiert ein langfristiger Durchschnitt über einem kürzerfristigen Durchschnitt eine Abwärtsbewegung im Trend. Beliebte Trading-Muster Zwei beliebte Trading-Muster, die einfache gleitende Durchschnitte verwenden, schließen das Todeskreuz und ein goldenes Kreuz ein. Ein Todeskreuz tritt auf, wenn die 50-tägige einfache gleitende Durchschnitt unter dem 200-Tage gleitenden Durchschnitt kreuzt. Dies wird als bärisch signalisiert, dass weitere Verluste auf Lager sind. Das goldene Kreuz tritt auf, wenn ein kurzfristiger gleitender Durchschnitt über einen langfristigen gleitenden Durchschnitt bricht. Verstärkt durch hohe Handelsvolumina, kann dies signalisieren, weitere Gewinne sind im Laden.

No comments:

Post a Comment