Hi,
ich habe ein Vu-Meter mit 16 LEDs gebaut. Die Anzeige ist im Moment
linear skaliert, d.h. ich dividiere einfach den ADC-Wert vom Atmega, so
dass er in die 16 LEDs passt.
Nun möchte ich eine Lookup-Tabelle einbauen, aber wie berechne ich die
16 Werte (z.B. mit Excel)?
Danke!
Chris
eigentlich ganz genau so, durch das Berechnen, Du musst nur von den
Werten noch die Toleranz abziehen, um den untersten Wert zu erhalten, ab
dem dein Vergleich dann arbeiten soll. Auf dieselbe Weise kannst Du auch
logarithmisch arbeiten. Wenn Du die Ungenauigkeit des Anzeigeergebnisses
ins Spiel bringst, ergeben sich daraus meisten vereinfachte Vergleiche
auf nur einige obere Bits des Wertes wenn es ein INT ist.
Chris schrieb:> Nun möchte ich eine Lookup-Tabelle einbauen, aber wie berechne ich die> 16 Werte (z.B. mit Excel)?
Das kommt drauf an, welchen Verlauf deine Skala haben soll. Gerne wird
ein logarithmischer Verlauf gewählt. Der diskrete Zweierlogarithmus
entsprich einer Schiebeoperation bzw. dem Exponent der Real-Zahl.
So zeigt die LED aber erst an, wenn der Wert überschritten ist.
Eigentlich macht ma es aber doch so, dass jede LED ihren Bereich
abdeckt. Daher leuchtet in einem 5er System z.B. die erste von 0 .. 20%,
ide letzte von 80% bis 100%. Die Zentralpunkte liegen bei 10%, .... 90%.
Es braucht also den oben erwähnten offset in der Tabelle.
Jürgen Schuhmacher schrieb:> Eigentlich macht ma es aber doch so, dass jede LED ihren Bereich> abdeckt.
Das kenne ich wiederum so nicht.
Die dB Angaben beziehen sich eigentlich immer auf die untere Schwelle.
D.h. die -9dB LED leuchtet nur dann, wenn das Signal >= -9dB ist, und
nicht vorher.
Chris schrieb:> @easylife:> Stimmt, ich habe die Skalierung gerade falsch herum gemacht.> Wie bist du auf deine Werte gekommen?
Erfahrung ;-)
0dB ist bei digital Audio der Vollausschlag.
Das Meter zeigt immer negative dB Werte (Abschwächungen) an.
Eine 3dB Skala ist ganz schön anzusehen, da sich Musik meistens so bei
-24dB..0dB abspielt.
Kannst natürlich auch mit einer anderen Skaleneinteilung
experimentieren, z.B. oben etwas feingradiger (-1.5dB Schritte), in der
Mitte -3dB Schritte und unten dann -6dB Schritte...
Die Formel den Schwellwert aus dem dB Wert zu errechnen, habe ich dir ja
bereits gegeben.
Um von float auf den ADC Schwellwert zu kommen, musst du ja nur mit 1024
multiplizieren, also
ADC_schwelle = 1024 * (10 ^ (dB / 20))