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 

Mittelwertbildung und Datenkonvertierung



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!

04.02.2011, 10:18 (Dieser Beitrag wurde zuletzt bearbeitet: 04.02.2011 10:42 von fk046.)
Beitrag #1

fk046 Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: Jun 2009

2009
2007
de

18059
Deutschland
Mittelwertbildung und Datenkonvertierung
Hallo alle zusammen.

Es werden kontinuierlich Daten vom ADC an ausgelesen.Die dAten kommen aus dem Sub_Vi(siehe Bild).Nun will ich von 4 Werten ein MW bilden.Die Funktion funktioniert soweit in einem kleinen VI.Jetzt habe ich das Vi auf mein FPGA_Vi umgeändert.Das Problem ist,das der FIFO sich mit den DAtentypen nach der Division "beißt".Welche Umwandlung oder einstellung ist am besten?Achso die DEzimalzahlen die durch das Sub_Vi ADC umgerechnet wurden sind befinden sich zwischen 0 und 16384.Ich würde gerne das ich nachh der Division auf U18 komme,weild amit hatte die Funktion soweit voreher funktioniert,bzw. der FIFO ist auf U18 eingestellt.Habe auch schon andere Datentypen versucht einzustellen.Hatte aber immer die gleiche Fehlermeldung zur Folge.


LV Version 2009
Mfg Frank


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.02.2011, 18:55 (Dieser Beitrag wurde zuletzt bearbeitet: 07.02.2011 18:59 von Matze.)
Beitrag #2

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
RE: Mittelwertbildung und Datenkonvertierung
Hallo,

dass der Datentyp nach einer Division nicht mehr passt (= Konvertierungspunkt) ist bei der Division fast normal. Das stört eigentlich auch nicht.

Mir fallen 2 Dinge auf:

- Wieso nutzt du 2 For-Schleifen, eine reicht hier aus
- Die 2. For-Schleife hat ein nicht-initialisiertes Schieberegister. Das macht mich etwas skeptisch und ich würde sagen, das ist falsch.
Ich würde das mit 0 initialisieren, wenn du den Code so lassen und das Array aufsummieren möchtest.

Die Division kannst du jedoch auch so berechnen, wie es NI auf der Website zeigt und zwar aus fortlaufenden Subtraktionen.
Das Ganze kannst du in ein kleines SubVI packen und die Übersicht ist gewährleistet.

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.02.2011, 09:55 (Dieser Beitrag wurde zuletzt bearbeitet: 08.02.2011 11:18 von Dennis.Moser.)
Beitrag #3

chrissyPu Offline
LVF-Stammgast
***


Beiträge: 467
Registriert seit: Jun 2006

2014 PDS
2006
DE_EN

64283
Deutschland
RE: Mittelwertbildung und Datenkonvertierung
Hi,

es gäbe auch noch die Möglichkeit, durch Mehrfacharithmetik die Schleife für die Mittelwertbildung zu vermeiden (siehe IPNet, 8-point-Average http://decibel.ni.com/content/docs/DOC-1249 oder vielleicht doch über die wie ich finde sehr hübsche Moving-Average-Implementierung unter http://decibel.ni.com/content/docs/DOC-1128 nachdenken...

ch
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.02.2011, 18:31 (Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2011 18:36 von Nilbog.)
Beitrag #4

Nilbog Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Oct 2010

2009
2008
en


Deutschland
RE: Mittelwertbildung und Datenkonvertierung
Hi,

du solltest dir zunächst mal (neben allen guten Anregungen meiner Vorredner) Gedanken zum Thema Datentypen machen. Was bitte ist ein U18? du verwendest einen FixedPoint Datentypen bei deinem FIFO. Was mich irritiert ist, dass du bei deinem Divisor einen völlig unnötigen coercion dot hast. und wenn das ganze schon Werte von 0..16384 dann nimm doch für deinen FIFO einen ganzzahligen Datentypen(z.B. U16) und keine Gleitkommazahl. Im Bild ein arithmetischer Mittelwert über 4 Werte ohne coercion dots, wobei die vorher geposteten Ansätze natürlich viel eleganter sind.
Was bekommst du denn wann für einen Fehler?

Gruß

   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.02.2011, 08:21
Beitrag #5

chrissyPu Offline
LVF-Stammgast
***


Beiträge: 467
Registriert seit: Jun 2006

2014 PDS
2006
DE_EN

64283
Deutschland
RE: Mittelwertbildung und Datenkonvertierung
Ich hab das jetzt nicht nachprogrammiert (und traue NI schon zu, diesen Sonderfall irgendwie zu implementieren), aber das wäre das erste Mal, dass man mal irgendwo durch Null teilen darf... Wink
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.02.2011, 09:28
Beitrag #6

Nilbog Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Oct 2010

2009
2008
en


Deutschland
RE: Mittelwertbildung und Datenkonvertierung
Wie du siehst Leben wir noch und wurden nicht von einem schwarzen Loch verschlungen. Und es kommt sogar ein mehr oder weniger sinnvolles Ergebnis raus. Die Sache mit der Null solltest du aber nochmal mit der Spaltfunktion durchdiskutieren.
Hier noch eine nicht geschlossene Klammer auf das sich jemand darüber aufregt(
Aber der Punkt ist: Pass auf deine Datentypen auf. Vor allem auf dem FPGA.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.02.2011, 10:21
Beitrag #7

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
RE: Mittelwertbildung und Datenkonvertierung
(16.02.2011 09:28 )Nilbog schrieb:  ... ( ...

Hopper
__(__
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: