Hallo. Ich möchte mit meinem AVR ein Audiosignal analysieren. Eigentlich möchte ich nur die Amplitude messen. Das ganze soll aber möglichst ohne äußere Bschaltung funktionieren. Ist das überhaupt möglich, und wenn ja, gibts da irgendwelche Codeschnipsel, an denen ich mich orientieren kann? Ach ja, ich programmiere in C. Cha_Ko
Ganz ohne externe Beschaltung wird es nicht gehen, da das Audiosignal in den Grenzen 0V bis Vref liegen muß. Dazu braucht es mindestens 2 Widerstände und einen Kondensator. Wenn das Audiosignal nur Line-Pegel hat, muß noch ein Verstärker her. Wenn man beide Halbwellen um einen virtuellen Nullpunkt herum mißt, kann auf einen externen Gleichrichter verzichtet werden. Siehe auch hier: Beitrag "AVR Audiopegel messen"
Die Spitze-Spitze-Amplitude kann man einfach messen, Effektivwert nur per Software wird kompliziert. Einfach in z.B. je 100 Millisekunden den maximalen und minimalen AD-Wandler-Wert ermitteln.
Bei genügend hoher Abtastrate kannst Du beide Fliegen mit einer Klappe schlagen, indem Du die Spitzen in der ADC-Interrupt-Routine in Zwischenregister speicherst und diese gleichzeitig in anderen Registern aufaddierst und interpolierst. Nach beispielsweise 100ms wird dann dieser gemittelte Wert ausgegeben.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.