Seite 1 von 1

Zustandgesteuerte Zeitwerte hochzählen?

Verfasst: Donnerstag 29. September 2011, 21:48
von HMT
Hallo Profilab-Experten,

ich habe ein „Problemchen“ was ich bisher nicht lösen konnte, wahrscheinlich aber kein wirkliches Problem darstellt.
Ich möchte in meiner Schallpegelvisualisierung (funktioniert fast alles ganz gut) noch prozentuale Zeitanteile über drei Schallpegelbereiche darstellen. Also, wie viel Prozent der aktiven Zeit (von Wochenschaltuhr vorgegeben) unter 45dB, unter 50 dB und über 50dB waren. Mein Ansatz: Schallpegel auf Vergleicher, die über UND-Glieder mit einem Zeittakt getaktet werden und auf 3 Bereichszähler und einen Gesamtzähler wirken. Die Bereichszähler wollte ich im Bezug zum Gesamtzähler setzen, um die prozentualen Anteile zu bekommen und darzustellen.
Das ganz funktioniert aber nicht, da durch die Schallpegelschwankungen z. B. zwischen 44 dB und 46 und wieder zurück 2 zusätzliche Takte auf die Bereichszähler zählen. Es sind dann plötzlich auf den Bereichzähler mehr Takte wie der Taktgeber überhaupt ausgibt.
Das Projekt ist mit angehängt.
Wenn jemand eine Idee hat, wie man das lösen könnte, wäre ich sehr dankbar!

:?:

Re: Zustandgesteuerte Zeitwerte hochzählen?

Verfasst: Freitag 30. September 2011, 05:53
von tmm
Hallo,

dass das Rauschen um den Schwellwert Signale erzeugt ist ja klar. Es gibt mehrere Möglichkeiten dieses "Problem zu lösen.

- Mittelwertbildung einbauen (so "stark", dass das Rauschen damit glatt gebügelt wird)
- Tiefpass einbauen (nimmt dem verrauchten Signal die Spitzen weg (kann aber trotzden nicht wie gewünscht funktionieren)
- "Abtastrate" für deine Zähler erhöhen (du musst die Zählerpulse schneller kommen lassen als dein Signal rauscht - sonst bekommst du u. U. 2 oder mehr Pulse (vom verrauschten Signal) pro Takteinheit)
- Hysteresemodul einbauen (Schwellwert etwas größer als die Rauschsignalhöhe einstellen - wenn die Schwankungen z. B. +- 1,4 dB betragen, dann stellst du den Wert auf > 1,5 ein

Ich würde die zwei letzt genannten Punkte ausprobieren.

Gruß MM

Re: Zustandgesteuerte Zeitwerte hochzählen?

Verfasst: Freitag 30. September 2011, 07:56
von abacom
Eine Hysterese zu verwenden (auch Spiel genannt) scheint auch mir der richtige Weg.
siehe Komponente:
Bibliothek->Analoges->Sonstige->Spiel

Re: Zustandgesteuerte Zeitwerte hochzählen?

Verfasst: Freitag 30. September 2011, 12:26
von tom_g
Hi HMT,

übereinstimmend mit tmm und Abacom:
hier eine Möglichkeit für die Auswertung von drei Schallpegeln wie in Deiner Aufgabe gestellt, ich benutze eine prozentual einstellbare Hysterese und Integratoren über die Teilereignisse und über die ganze Messdauer und rechne das Verhältnis.



Gruss Thomas

PS: ich habs nicht im Griff: die Voreinstellungen kommen nicht mit ?

Zu beachten:
*Hysterese-Bänder (bewirkt mittels den Toleranzen) dürfen keine Bandüberlappungen bewirken
*also lo = 45, mid = 50 und hi = 55 dB einstellen, Toleranzen 5%, dann sollte es klappen.
*aber Achtung: Die Bänder sind absolut gesehen nicht gleich breit durch Angabe der prozentualen (relativen) Bandbreite ! D.h. sie gewichten unterschiedlich ! -> versuche doch auch mal lo = 6%, mid = 5% und hi = 4% !
*Mit dem Reset beginnt ein neuer Auswerteintervall (hier nicht terminiert)
*Wenn schon ein Ereignis vor dem Reset ansteht, funktioniert die Auswertung manchmal nicht.

Diese Feinheiten überlasse ich Euch :-), was ich zeigen möchte, ist das Konzept.

Interessant kann auch der zeitliche Verlauf sein (Bpl. Auswertung Lärmpegel an einer Dorfstrasse, tageszeitlich aufgelöst), neu ist im angefügten Projekt realitätsnah eine HF-Rauschquelle mit random LF-Modulation des Rauschens: der Zeitverlauf sieht fast aus wie an der Börse...

Re: Zustandgesteuerte Zeitwerte hochzählen?

Verfasst: Freitag 30. September 2011, 23:23
von HMT
Vielen Dank, für eure Unterstüzung!

Da es recht variable und dynamische Schallpegelwerte (Aktualisierungsrate 125ms) sind, die recht oft die 3 Bereiche in beiden Richtungen wechseln, scheidet Mittelwertbildung aus. Da würde sicher die hohe 50 dB Zone deutlich zu Gunsten der 40dB und 45 dB „geschönt“. Insbesondere in hohen Zone sind es eher Spitzen und keine Konstantwerte die für längere Zeit anstehen.
Ich habe kein wirkliches „Rauschen“. Es sind tatsächliche dynamische Pegelschwankungen von bis zu +/- 40 dB die über alle 3 Bereiche gehen und die ich natürlich auf die Zeieinheiten akkumulieren möchte.

Die Vorschläge von Tom_g sind sehr interessant und scheinen mir hierfür gut brauchbar. Ich versuche deine Tipps bei mir um zu setzen.

P.S.: Ich habe bei mir mal die Taktung mit Frequenzgenerator deutlich gegenüber der Schallpegelaktualisierungen erhöht und es scheint so auch zu gehen. Muss nur noch %-Auswertung und die Zählerüberläufe integrieren.

Herzlichen Dank für die Hilfe an alle!

Grüße HMT

Re: Zustandgesteuerte Zeitwerte hochzählen?

Verfasst: Dienstag 4. Oktober 2011, 19:07
von HMT
WoB hat geschrieben:Hi HMT,

der Gesamtzähler (CO4) ist immer ungleich der Summe der 3 Einzelzähler (CO1-CO3), wenn mehrere Zustandsänderungen innerhalb einer Messung stattfinden.
Dazu generell folgende Lösungsmöglichkeiten:
1. Messimpuls so kurz wie möglich halten (z.B. unsymmetrischen Taktgeber 0,005s an und 0,195s aus)
2. Gesamtzähler ignorieren, lieber Einzelzähler summieren und als 100% definieren,
dann bildet sich der Mittelwert automatisch, wenn man die Einzelzähler mit diesen 100% ins Verhältnis setzt
P.S. die Zählereingänge unbedingt invertieren, damit nur kurze positive Impulse zum Zählen genommen werden

Im Anhang dazu das abgeänderte Programm als Vorlage für weitere Optimierungen.
Der enthaltene Zufallsgenerator dient nur dem Test ohne Schallpegelmesser.

M.f.G. WoB
Hallo WoB,
Danke für deinen zusätzlichen Hinweis. Ich hatte in der Zwischenzeit auch den Gesamtzähler verworfen und stattdessen die Summe der 3 Bereichszähler als Bezug genommen. Mit einer kurzen Taktfrequenz von 50Hz hat das schon ganz gut funktioniert. Deine Idee mit dem unsymmetrischen Taktzähler finde ich noch besser, werde ich gerne übernehmen.
Danke für die Tipps!