Hallo, ich habe ein Problem mit der Umsetzung meines Audio Spectrum Analyzer. Zum Aufbau: Er hat 8 Kanäle (16 khz, 8 khz, 4 khz,...) und 10 LEDs je Kanal. Mikrocontroller ist ein Atmega32, programmiert wird er in C. Am Eingang des controller ist ein MAX7490. Ein Bandpass, der sich durch eine angelegte Frequenz einstellen lässt. Mit einem Zähler wird eine feste Frequenz geteilt und durch einen Multiplexer an den MAX weitergegeben. Dies funktiopnier soweit auch sehr gut. aus dem MAX7490 kommt eine Wechselspannung mit 2,5V offset. (also wenn nichts am Eingang kommt 2,5V an, bei vollem Ausschlag schwankt es zwischen 0 und 5 V) Am Ausgang sind Darlington Transistor Arrays. Die Ansteuerung der LEDs funktioniert auch einwandfrei. Nun zu meinem Problem: Ich schaffe es gerade mal 3 Messungen pro Kanal zu machen, um eine flüssige Anzeige zu haben (also um min. ca. 20 FPS zu haben) Das Signal schwankt dabei auch Stark. Wenn ich eine feste Frequenz anlege schwankt es an der Anzeige sehr stark. Dies liegt vermutlich daran, dass ich nur den durchschnitt aus 3 Messungen nehme. Wenn es hilft, kann ich auch Teile des Quelltextes noch abtippen, kann leider nichts per Stick auf den Firmenrechner hier schieben. Es ist ein Projekt in meiner Ausbildung als Elektroniker für Geräte uns Systeme, meine Ausbilder kennen sich leider nicht mit C aus. Ich würde mich über Tipps und Anregungen freuen :)
Jano schrieb: > (also wenn nichts am Eingang kommt 2,5V an, bei vollem Ausschlag > schwankt es zwischen 0 und 5 V) Du schickst also vermutlich direkt das gefilterte Audio auf den MC. Je nach Abtastpunkt findet er dann ein zufälliges Signal. Lösen kannst du das recht einfach, indem du einen aktiven Gleichrichter zwischen MAX und ADC Eingang schaltest. Das Datenblatt zum LM3916 hat da einige Vorschläge, ab Figure 3 aufwärts, von simpel bis komplex.
Erstmal danke für die Antwort. Ich denke ich brauche wohl einen Peak detektor. Der Half-Wave Peak Detector sollte doch reichen, ich brauch ja nicht unbedingt beide Halbwellen? Mir stellen sich nur noch 2 Fragen: Muss ich das Signal nicht vorher den Offset rausbekommen? Ein normaler Gleichrichter würde ja auch nichts bringen, wenn es alles überhalb von 0 V ist. Ich weis nicht, ob ich mir einen aktiven Gleichrichter gerade falsch vorstelle, aber das ist doch im Prinzip das Selbe wie ein Gleichrichter mit Glättung, so würde ich ja auch einen Peak erkennen können. Funktioniert der aber auch im ganzen Audio Frequenzbereich? Bei der Passiven Lösung würde ich ja mit einem Kondensator den Peak halten, aber bei hohen Frequenzen evtl zu lange, und somit immer auf der maximalen Spannung bleiben, weil hin und wieder ein Peak vorhanden ist. Oder eben bei einer niedrigen Frequenz würde die Spannung bis zur nächsten Flanke wieder abgesunken sein.
Ich habe mal den "Half-Wave Peak Detector" aus Bild3 aufgebaut, und es hat sich genau das bestätigt, was ich vermutet habe. Ich muss den Offset vorher wegbekommen und es funktioniert erst richtig ab ca. 10 khz mit der Peak detection. Wenn ich den Kondensator so anpasse, dass es in den unteren Frequenzbereichen passt, dauert es natürlich viel zu lange, bis die Spannung in den hohen Frequenzen wieder abnimmt. was tun?
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.