INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Moving-Average Filter mit FGV



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

05.01.2012, 10:41 (Dieser Beitrag wurde zuletzt bearbeitet: 08.01.2012 18:46 von jg.)
Beitrag #1

chiefhood Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Nov 2011

2011
2011
EN



Moving-Average Filter mit FGV
Hey Ihr!!!
Ich habe diese blöde Aufgabe von meinem Dozenten bekommen....

Es soll das VI verwendet werden, dass im letzten Seminar erstellt wurde und eine Sinus-Kurve in einem
X-Y-Graph darstellt.
Nun soll anstatt des "reinen" Sinus-Signals ein verrauschtes Signal im X-Y-Graph dargestellt werden.
Hierzu einfach das VI "Disturb" zwischen Sinus-Generator und Graph einfügen. Das VI kann im FELIX
heruntergeladen werden.
Über einen Moving-Average-Filter soll nun das verrauschte Signal wieder geglättet werden. Hierzu schalten sie
einen Filter zwischen "Disturb"-VI und Graph.

Die Aufgabe besteht nun darin den Filter zu programmieren.
Hierzu soll eine FGV verwendet werden. In der FGV wird ein Array aus 20 Werten gespeichert. Über das ENUM-
Auswahlfeld SET soll ein Array Element mit Index n durch den neuen Wert ersetzt werden. Bei erneutem Aufruf der
FGV mit SET im ENUM-Auswahlfeld ersetzt das neue Element das Array-Element mit Index n+1 usw.
Beachten sie dass der Indexzähler niemals höher als 19 sein darf. Nach 19 folgt in diesem Fall wieder 0. Auf
diese Weise stehen im Array immer die 20 letzten Werte die über SET in die FGV geladen wurden.
Um die gewünschte Funktionalität zu erreichen muss somit neben dem Array auch der Indexzähler in der FGV
gespeichert werden.
Die eigentliche Filterung wird dadurch erreicht, dass der Mittelwert aller Array-Elemente gebildet wird.


ich habe den Sinusgenerator bereits schon hinbekommen...und das Disturb VI integriert.
Das FGV habe ich auch bin mir nur unsicher, dass ich diesen richtig aufgebaut habe...
Jedoch das Hauptproblem ist wie ich das FGV richtig einbinde...habe bereits eine Case-Struktur in das VI Aufgabe_Moving_Average-Filter.vi eingefügt. ohne Filter funktioniert das VI jedoch wie integier ich diesen Filter?

Schon mal vielen Dank!!!!!
Grüße
Chiefhood

EDIT jg: Inzwischen Crosspost: http://labviewportal.eu/viewtopic.php?f=...291#p36574


Angehängte Datei(en)
0.0 .zip  Aufgabe_Average_Filter+VIs.zip (Größe: 35,22 KB / Downloads: 282)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.01.2012, 10:59
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Moving-Average Filter mit FGV
Hallo chief,

da dies eine offensichtliche Uni-Aufgabe ist, habe ich nur die FGV bearbeitet und wieder angehangen.

Alles weitere ist dir überlassen. Aber wie immer gilt die Reihenfolge:
- nachdenken
- PAP aufmalen
- programmieren...


Angehängte Datei(en)
10.0 .vi  FGV-Array.vi (Größe: 26,22 KB / Downloads: 328)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.01.2012, 19:11
Beitrag #3

chiefhood Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Nov 2011

2011
2011
EN



RE: Moving-Average Filter mit FGV
Wink
okay...dann rätsel ich mal bissi weiter!!!
Vielen DANKE ABER!!!!

Grüße

Chiefhood
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.01.2012, 23:08
Beitrag #4

chiefhood Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Nov 2011

2011
2011
EN



RE: Moving-Average Filter mit FGV
Hallo!
ich denke ich habe einen kleinen Fehler entdeckt...
kann es sein, dass ich die konstante 0 bei Schift-Register entfernen muss??
da das VI sonst bei jeder Ausführung ja dann bei null anfängt und nicht weiterzählt....
das gleiche gilt jedoch auch für das Array...das Array wird jedesmal neu initialisiert und somit ist der alter wert weg!!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.01.2012, 09:07
Beitrag #5

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Moving-Average Filter mit FGV
Der Dozent hat zwar detaillierte Hilfestellung zur Programmierung gegeben, aber vergessen auszuschließen, dass ein FIR-Punkt-zu-Punkt Filter verwendet werden darf (In Basic-Version allerdings nicht enthalten). Insofern wäre das auch erlaubt. (Der Rücksetz-Schalter wäre noch durch ein Enum zu ersetzen um der Aufgabe gerecht zu werden)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.01.2012, 09:07
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Moving-Average Filter mit FGV
Hallo chief,

Zitat:kann es sein, dass ich die konstante 0 bei Schift-Register entfernen muss??
Ja, ein kleiner Lapsus...

Zitat:das gleiche gilt jedoch auch für das Array...das Array wird jedesmal neu initialisiert und somit ist der alter wert weg!!
Das Array wird nur im "Reset"-Case initialisiert - und der wird üblicherweise nur einmal am Anfang aufgerufen. Ansonsten arbeitest du mit "Set" und "Get"...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
06.01.2012, 09:19 (Dieser Beitrag wurde zuletzt bearbeitet: 06.01.2012 09:24 von eb.)
Beitrag #7

eb Offline
LVF-Lernwilliger
***


Beiträge: 292
Registriert seit: Mar 2008

2014
2008
EN

12xxx
Deutschland
RE: Moving-Average Filter mit FGV
Hallo,

ja ich denke, da hast du recht.
Außerdem würde ich das Berechnen des Mittelwert in den Case reinpacken und einen Selector statt Quotient and Remainder nehmen - nennt mich verbohrt, aber die Quotient and Remander Funktion ist mir unsympatisch. Wahrscheinlich wegen der FPGA-Programmierung, da ist es der Platzfresser schlechthin...

hier das leicht geänderte VI:
   

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.01.2012, 09:25 (Dieser Beitrag wurde zuletzt bearbeitet: 06.01.2012 09:26 von GerdW.)
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Moving-Average Filter mit FGV
Hallo Erik,

Zitat:aber die Quotient and Remander Funktion ist mir unsympatisch
Es wurde bisher nicht deutlich, dass Chiefhood für ein FPGA-Target programmieren soll - und damit ist Q&R die deutlich platzsparendere Alternative. Selbst ein cRIO hat genug CPU-Reserven für ein gelegentlich ausgeführtes Q&R...

Zitat:würde ich das Berechnen des Mittelwert in den Case reinpacken
Ich habe es extra heraus genommen, da man so diese Berechnung nicht in jedem Case extra programmieren muss (wie es vorher der Fall war) und man außerdem bei jedem Aufruf der FGV auch den aktuellen Mittelwert gemeldet bekommt...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.01.2012, 09:29
Beitrag #9

eb Offline
LVF-Lernwilliger
***


Beiträge: 292
Registriert seit: Mar 2008

2014
2008
EN

12xxx
Deutschland
RE: Moving-Average Filter mit FGV
Hallo Gerd,

soweit ich das beim überfliegen des VIs gesehen hatte gabs nur einen Case der das Array so verändert dass der Mittelwert neu berechnet werden muss.
Und die Quotient and Remainder Funktion nehme ich auch manchmal, aber hier nicht, weil eh klar ist, dass der Index sich immer nur um 1 erhöht, und keine "Riesenzahlen" mit Rest dividiert werden sollen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.01.2012, 09:53 (Dieser Beitrag wurde zuletzt bearbeitet: 06.01.2012 10:26 von Lucki.)
Beitrag #10

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Moving-Average Filter mit FGV
Die Vorschläge werde ja immer komplizierter. Es sei mal darauf hingewiesen, daß die Funktion "Array rotieren", entgegen wie man vernuten könnte, rasend schnell ist, und dass deshalb nichts gegen deren Verwendung spricht.
Außerdem: Man gibt einen Wert ein und holt gleichzeitig den Mittelwert heraus. Mittels "Get" mehrere Male denselben Wert abrufen zu können macht doch keinen Sinn. Sollte man das nicht im Enum weglassen? Diskutieren sollte man auch, ob bei "Reset" am Ausgang Null herauskommen soll, oder ob der gleichzeitig anliegende Eingangsswert als erstes neues Element schon berücksichtig werden soll.
   
Edit: Wie man aus der detaillierten Programmieranweisung mit Indexzähler usw. sieht, hat der Dozent an diese einfache Möglichkeit ebensowenig gedacht wie an das vorgenannte FIR-Filter.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Wer kann diesen Filter erklären? Philipp841 12 7.278 25.07.2020 07:32
Letzter Beitrag: Martin.Henz
  Extended Kalman Filter in LabVIEW Heber 11 8.524 20.04.2017 09:26
Letzter Beitrag: Heber
  Hochpass Filter se 19 13.410 14.06.2015 18:32
Letzter Beitrag: se
  Filter selbst erstellen creo_123 13 12.873 23.04.2013 14:20
Letzter Beitrag: Lucki
  Filter tetef 5 6.268 09.04.2013 09:52
Letzter Beitrag: creo_123
  IIR-Notch-Filter 50Hz JaDa 4 7.497 25.11.2012 09:01
Letzter Beitrag: Lucki

Gehe zu: