AVR Audiopegel messen

Gast #637689
Lesenswert?

Gibt es eine Möglichkeit mit einem µC den Pegel eines Audiosignals zu 
messen? Klar, mit einem OpAmp in entsprechender Beschaltung und dann an 
einzelne Pins des µC geht's auf jeden Fall, aber so ist man von den 
Lautstärkepegeln festgelegt.
Könnte man nicht über einen Optokoppler das Signal erstmal entkoppeln 
und dann über den ADC vom Atmel die Amplitude messen?
#637698
Lesenswert?

>Klar, mit einem OpAmp in entsprechender Beschaltung und dann an
>einzelne Pins des µC geht's auf jeden Fall, aber so ist man von den
>Lautstärkepegeln festgelegt.

Das verstehe, wer will. An was für "einzelne Pins" willst Du denn das
durch den OPV verstärkte Signal legen?
Gast #637936
Lesenswert?

>Gibt es eine Möglichkeit mit einem µC den Pegel eines Audiosignals zu
>messen?

Ja, natürlich. Spitzenwertgleichrichter mit 2x OP aufbauen.
Einfachen RC Tiefpass zur Mittelwertbildung dahinter.
Spannung mit dem AD Wandler messen. Pegel im uC in dB umrechnen.
Fertig ist die Pegelanzeige.
Gast #637990
Lesenswert?

audiosignal?
20hz-20khz dafür brauchst doppelte Abtastfrequenz also 40khz,
ist AD Wandler so schnell bei AVRs?
Das heisst ja, ein Sample muss in 25 mikrasekunden umgewandelt sein.

Pegel vom Audiosignal, das ist sehr unpräzise Beschreibung.
Was stellst du dir darunter?
Ein Zeitsignal ist ein riesiges Gezackel, was soll da Pegel sein?
Ich kann mir nur Vorstellen dass das ganze auf FFT rausläuft
Gast #638255
Lesenswert?

Danke Daniel!
Ich habe mal ins Datenblatt vom atmega16 geguckt.
Der ADC dort braucht 13-260µs für die Wandlung.
Im Prinzip soll es ein Audiosignal (Kopfhörer) überwacht werden.
Ab einer einstellbaren Amplitudenwert (Laufstärke/Pegel... wie auch 
immer) soll eine Lampe leuchten.
Gibt es denn noch andere Möglichkeiten das zu lösen. Bin gerne für 
Vorschläge zu haben. Kenne mich echt noch nicht so toll aus.
Gast #638298
Lesenswert?

Ehm, im Datenblatt vom LM3916 ist auf Seite 11 ein "FIGURE 6. Precision 
Full-Wave Peak Detector" angegeben.
Der bildet dir eine Gleichspannung aus dem Audiosignal.
Habe das selber für eine VU-Bargraphanzeige auf LCD verwendet, 
funktioniert prima. Durch das RC-Filter am Ausgang bleiben auch kurze 
Spitzen noch messbar, da die Spannung etwas gehalten wird.
Mann sollte allerdings die Werte vom AD-Wandler noch logarithmieren, 
sonst wirkt die Anzeige etwas "ungewohnt" ;-)
Gast #638299
Lesenswert?

Danke Läubi!
Das mit dem LM3914 klingt sehr gut.
Ich habe mir das Datenblatt mal angesehen, aber leider nix zu den Zeiten 
gefunden, die das Dinge braucht, bis die entsprechenden Ausgänge 
angesteuert sind. Sollte möglichst schnell sein (habe ich bisher 
vergessen zu erwähnen... sorry)
Gast #638302
Lesenswert?

Edith:

Lese gerade die Anforderung, dafür braucht man nicht mal einen µC.
Den Spitzenwertgleichrichter aufbauen und eventuell einen Komparator 
dahinter, der ab dem geforderten Wert umschaltet und die Lampe ansteuert 
(eventuell noch einen Transitor als Stromverstärker dazwischen), fertig.
Gast #638308
Lesenswert?

@Klaus
Da der LM3914-16 analog arbeitet, dürfte die Geschwindigkeit mehr als 
ausreichend sein.
Da du aber nur einen Pegel brauchst, kommste ohne LM391x günstiger weg 
mit einem OP als Komparator, der LM ist nämlich nicht ganz billig.
Gast #638585
Lesenswert?

ich hab nachgedacht und wahrscheinlich geht es beim
Audiopegel eher um die Signalenergie. FFT ist dann
ein overkill, da man mehr Information daraus bekommt als nötig wäre.

Wie wäre es mal einen gleitenden Zeitintervall von 1 sekunde
aus dem Zeitsignal rauszuschneiden und über dessen
Quadrat zu integrieren?
(Quadrat, damit negative Werte positiv zum Integral beitragen)

Also mathematisch sei x(t) das ganze Zeitsignal.
Wir bilden dann
p(t) = Integral von t-T bis t über x(tau)*x(tau)*dtau
für t>T natürlich, weil x(t) erst ab 0.

Man wird dann die Energie des Rauschens abschätzen
müssen. Wenn Energie des Zeitschlitzes grösser
als die Energie des Rauschens derselben Zeitschlitzes ist,
dann bingo ist ein Signal auf der Leitung detektiert.
Die Energieverteilung auf einzelne Frequenzen wäre
wie gesagt ein Overkill oder nice to have information.

@SNT-Opfer
>Ehm, im Datenblatt vom LM3916 ist auf Seite 11 ein "FIGURE 6. Precision
>Full-Wave Peak Detector" angegeben.
>Der bildet dir eine Gleichspannung aus dem Audiosignal.

.. also in der Art wie ich beschrieben habe oder
ist es Anteil der Gleichspannung im Signal, also X(0)?

Gruss, Daniel
Gast #638618
Lesenswert?

Au weia...das wird ja immer komplizierter...;-)

Der "Full Wave Peak Detector" ist nix anderes als ein modifizierter 
Spitzenwert-Gleichrichter (Vollwelle). Im Datenblatt vom LM3916 ist der 
nur als Schaltungs-Vorschlag angegeben um NF-Signale "vollständig" 
auszuwerten.
Der LM kommt schon mit Wechselspannung am Eingang klar, er bewertet aber 
nur die positive Halbwelle.
Will man ein "taugliches" VU-Meter daraus machen, benötigt man den 
aktiven Gleichrichter (da ja Audio-Pegel weiter unter der Dioden 
Flussspannung liegen können). Zudem ist die Schaltung so ausgelegt, das 
sie eine gewisse Ansprech- und Verzögerungszeit hat, damit a) extrem 
kurze (Stör) Impulse nicht angezeigt werden, aber b) der "normale" 
Spitzenwert noch für das Auge sichtbar (100ms) angezeigt wird.

Im Grunde wird die Amplitudenspitze herausgeholt, daher auch Peak 
Detector.
Es wird kein RMS gebildet, oder gar die Energie über die Zeit.
Nur ganz simple der höchste Punkt im Signal am Ende ausgegeben, als 
positive Spannung in Bezug auf Masse.
Gast #638661
Lesenswert?

Als Alternative zum LM3916 kann man auch einen beliebigen AVR mit ADC 
nehmen und an einen Analogeingang das gleichgerichtete und 
RC-TP-gefilterrte Audiosignal geben. Dann hat man schonmal was ganz 
brauchbares, das z.B. mit mehr alsa 10 LEDs auch noch deutlich billiger 
als ein LM3916 sein kann. Wenn man es ganz besonders toll haben will, 
kann man auch mit einem LM324 o.ä. einen Vollwellengleichrichter mit 
angehängtem Verstärker bauen (Faktor 4), an zwei ADC-Ins des AVR kann 
gibt man dann das Signal vor dem Verstärker /4 und das danach (jeweils 
über einen 10k Widerstand, da am OPA evtl etwas mehr als 5V anliegen 
könnten). Wenn man das jetzt geeignet verarbeitet, hat man dann 
problemlos 0,5dB Auflösung, womit man z.B. ein sehr amtliches VU-Meter 
oder aber auch (z.B. mit einem PGA2310) einen 
Dynamikkompressor/Peaklimiter bauen kann (das geht wirklich und klingt 
garnicht mal so übel). Bei diesem Anwendungsfall sollte aber ein LM324 
schon bestens reichen. Erster OPA aktiver Gleichrichter, zweiter OPA 
Invertierer, danach mit drittem OPA ebenfalls gleichrichten, ausgänge 
beider Gleichrichter zusammenschalten, dort einen C mit R parallel dazu 
anhängen (Peak Hold) und das Signal mit dem vierten OPA im Chip mit dem 
Schwellwert vergleichen - fertig ist die Laube. Bauteilbedarf: 1 LM324, 
2 1N4148, 2 Widerstände 47k, 1 Widerstand 10K, 1 Elko 10µF, ggf. ein 
Poti für Schwellwerteinstellung und irgendwelche Ausgangsbeschaltung 
(z.B. Transistor für mehr Saft)
Gast #638672
Lesenswert?

@Andreas
Jepp...so habe ich das in meinem Verstärker gemacht, nur mit drei 
Kanälen (R;L;Sub). Der PSoC bietet die Möglichkeit eines 3-Kanal ADC 
(8Bit) mit simultanem Sampling, das Signal noch logarithmieren -> 
Schönes LCD-Bargraph.
Die Idee mit dem Limiter hatte ich auch schon, war bisher nur zu faul 
das zu programmieren. Aufwand ist das nicht, dank des PGA mit SPI.

Meine ich ja, man kann sich den LM sparen.
Nur das Schöne ist das Datenblatt, wo der Vollwellen-Gleichrichter als 
Applikation vorgestellt wird.
Mit einem einfach Komparator am Ausgang hat der Thread Eröffner das was 
er sucht.
(Firma: TravelRec.) Persönliche Seite #638695
Lesenswert?

Der AVR kann auch direkt die Wechselspannung messen, wenn diese auf eine 
Gleichspannung Vcc/2 mittels Kondensator überlagert wird, beide 
Halbwellen lassen sich dann mit 9-Bit Auflösung messen. Die Spitzenwerte 
speichert man als Peaks und mit einer entsprechenden Rücklaufzeit kann 
man dann die VU-Pegel anzeigen. So habe ich mir meine 
Aktivboxen-Pegelmeter gebaut und das sieht richtig fett aus. Die 
Erkennbarkeit der Signale ist um einiges besser, als mit den reinen 
Analog-LED-Schaltkreisen und dieser 
Spitzenwert-Gleichrichter-OV-bastelei. Im Controller lassen sich bei 
Bedarf auch verschiedene Anzeigemodi und Zusatzanzeigen implementieren 
(Punkt-, Bandbetrieb, Peak-Hold, Effektivwerte, LED-Helligkeit über 
SoftPWM etc.). Der Bauteileaufwand ist extrem gering: Controller, LEDs 
mit Vorwiderständen, 1 OV zur Pegelanhebung, 4 Kondensatoren, 4 
Widerstände.
Gast #638707
Lesenswert?

@ Travel Rec.
Ja, stimmt schon. Der Reiz ist halt die sofwaremässige Anpassmöglichkeit 
von Attack und Release der Anzeige.
Nur bei drei Kanälen gleichzeitg hätte das in meinem Fall wohl Probleme 
mit den Berechnungen gegeben. Reine Vermutung, ob das zeitlich hinhauen 
würde.
Daher habe ich die Spitzenerkennung ausgelagert und analog gelöst.

Wie hast du den effektiv Wert bestimmt ? Wäre mal interessant, da ich 
noch ein Projekt im Hinterkopf habe, einen Audio-Leistungsmesser.
Der soll unbedingt OHNE Sinussignal auskommen, liebäugle schon mit einem 
(bzw. 2, Spannung & Strom) integrierten AC -> RMS Wandler.
Wenn sich das aber direkt im µC erledigen lassen würde, ohne zuviel 
Mathe (bremst), wäre das eine preisgünstigere Variante.
(Firma: TravelRec.) Persönliche Seite #638724
Lesenswert?

>Wie hast du den effektiv Wert bestimmt ? Wäre mal interessant, da ich
>noch ein Projekt im Hinterkopf habe, einen Audio-Leistungsmesser.

Der ADC läuft mit 500kHz im AutoTrigger. Sämtliche auflaufenden Meßwerte 
werden gesammelt und über ein veränderbares Zeitfenster gemittelt. Für 
den Zweck eines Pegelmeters reicht das völlig. Viel interessanter wird 
der Effekt, wenn man die Peaks als Punkte in der Anzeige für 2-3 
Sekunden hält und über die VU-Messung blendet; gerade für genaue 
Aussteuerungen ist diese Art von "Doppelmessung" sehr intuitiv. Man 
verpaßt keine Spitzen und hat über das LED-Band einen guten Eindruck von 
der Gesamtenergie der Musik.
Für diesen Zweck habe ich 2 Arrays angelegt, das eine wird mit den 
"langsamen", gemittelten Werten in Bandform geladen und das andere mit 
den jeweiligen Spitzenwerten in Punktform. Bei der Ausgabe auf die LEDs 
werden beide Arrays ODER-verknüpft.
Gast #638749
Lesenswert?

Normal gemittelt oder RMS ?
Ansonsten echt nett mit der separaten Spitzenwert Auswertung.
Ich habs mir da einfacher gemacht, die Werte von den Gleichrichtern 
werden simultan von drei ADC gesampelt. Danach skaliert und 
logarithmiert, anschliessend auf den 85 teilige Bargraph verteilt und 
angezeigt.
Ganz nett ist der optische Effekt aufgrund der gewissen Trägheit des 
LCD, die kurzen Spitzen werden mit halber Intensivität angezeigt.
Man sieht auch gut wie die 8x5 Pixel vom LCD sich von oben nach unten 
aufbauen.
(Firma: TravelRec.) Persönliche Seite #639609
Lesenswert?

>Sieht gut aus. Nur die Musik, die man in Halberstadt so hört.....*GRINS*

Was stimmt nicht mit der Musik?! ;-)

>Hast du zufällig Schaltplan/Software irgenwo veröffentlichst?

Noch nicht, da es sich bei der Schaltung um eine Steuerung für meine 
Selbstbau-Aktivboxen handelt, die es bislang nur 2x als Prototypen gibt. 
In Auszügen könnte man das sicher mal schick zusammenstellen. Der Code 
ist auch noch etwas überarbeitungswürdig weil es mußte schnell gehen 
;-). Ich denke mal drüber nach.
Gast #643269
Lesenswert?

Ich bin auch auf der Suche in etwas in der Richtung.

Ich möchte die Eingangssignale meines Verstärkers messen.
Ich brauche aber keine Peak anzeige oder so, einfach nur ob ein Signal 
da ist oder nicht.
wenn kein Signal da ist soll der Verstärker abgeschaltet werden, wenn 
eins da ist wieder ein.

Kann ich einfach das Signal an nen ADC pin legen und gucken ob sich da 
was tut?
#643274
Lesenswert?

Vom Prinzip her spricht nix gegen, obwohl man dafür nicht unbedingt 
einen µC braucht. Wenn der aber schon da ist, warum nicht.
Man müsste nur zusehen, dass der AD-Wandler kein Problem mit den 
negativen Halbwellen bekommt, ein Vorwiderstand dürfte da genügen 
(sofern im µC eine Schutzdiode gegen Masse liegt, zur Not halt extern).

Was soll denn abgeschaltet werden ? der ganze Verstärker oder nur die 
Endstufen ? Soll die Schaltung mit rein oder externe Kiste ?
Gast #643295
Lesenswert?

Der Verstärker selbst wurde schon umgebaut, so das die einzelnen 
Funktionen über den Hausbus gesteuert werden können. Da habe ich nen 
Atmel 40 Pinner (mega8535) drine , der hat noch ein par Pins frei. 
Bisher lief der eigentlich immer 24/7, habe aber mal gemessen. Der zieht 
im Leerlauf 30 Watt, das muss nicht sein ;)

Was für Pegel haben so Standard Audio Signal eigentlich? Meines Wissens 
liegen die doch irgendwo im mV Bereich, da wird die Flussspannung der 
Dioden wahrscheinlich nichteinmal erreicht ;)
#643309
Lesenswert?

Korrekt, dachte wieder an den Ausgang, naja ;-)

Vermutlich ist es einfacher das analog zu lösen, Komparator + 
retriggerbares Monoflop.
Kommt Pegel wird Monoflop getriggert, bleibt Pegel wird weiter 
getriggert, fehlt Pegel läuft Monoflop (NE555) aus und macht den 
Verstärker bzw. das Relais aus. Der 555 kann auch direkt Relais treiben.
Oder nur mit Komparator und das Signal des Komparators mit einem 
Kondensator so lange halten wie der Verstärker an bleiben soll. Braucht 
dann aber noch einen Schaltverstärker für das Relais.

Edith: Audio LINE-Pegel in der Regel 0,7V bis 1,2V (bei 
Vollaussteuerung)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren