Hallo, ich will von einem Mikrofon die Frequenz (bis sagen wir max. 20kHz, 15 reichen denke ich auch) und (sofern möglich) auch die Lautstärke in dB messen/wissen. Am liebsten wäre mir natürlich ein fertiger IC (nach dem Motto Analog rein und I2C oder SPI oder so kommt Frequenz und Lautstärke raus). Davor einen Verstärker und fertig ;) Gibt es sowas? Wenn nicht.. wie kann ich sowas sonst machen? Erfahrung hab ich mit div. AVR/ARM und 8051. Bisschen was mit PIC (aber wirklich nur bisschen). Das ganze sollte nicht zu kompliziert (für mich) sein ;) Paar Hilfen / Links wären super. Bin auf dem Gebiet (Frequenzanalyse oder wie man das nennt) neu. Hoffe ihr könnt mir weiterhelfen. Grüße!
AD636 hat einen dB-Ausgang, echte Effektivwertmessung, allerdings noch analog http://www.analog.com/UploadedFiles/Data_Sheets/AD636.pdf
Der ist schon cool.. hab auch den TAS3103A gefunden von TI, der wohl als VU-Meter über I2C angesteuert wird und als VU-Meter dienen kann. Das wäre aber nur die Lautstärke. Die Frequenz ist mir eigentlich wichtiger ;) dazu irgendeine Idee? obiger Baustein kann auch als Spectrum Analyzer genutzt werden über I2C, aber nur mit 10 Bändern. Eine Frequenzmessung ist damit nicht wirklich gut ;) Wie kann ich das "Problem" lösen?
Hängt sehr stark davon ab was du genau möchtest, eine einfache Frequenzanalyse ist ja schon mit ein paar Bandpässen möglich (Lichtorgel) wenn das aber genauer sein soll wirst du im eine FFT (Fast Fourier Transformation) kaum herumkommen, das ist aber schon mit relativ wenig Aufwand möglich, das Elm-chan Teil: http://elm-chan.org/works/akilcd/report_e.html stellt imho so die schlankest mögliche Lösung dar, aber ein ARM sollte das locker nebenher machen, auch hier hängt es natürlich von den Anforderungen ab, wie genau es den sein soll und vor allem wie schnell (sich das Signal ändert). - wiebel
Also das Signal kommt von einem Mikrofon.. Auflösung sollte zwischen 50 und 20 Hz liegen (je besser umso besser g) Genaugigkeit .. naja 20Hz sollten auch hier reichen. Im Endeffekt reich es mir wenn ich nachher als Ausgabe habe 460Hz @ 20dB .. mehr brauche ich nicht. Das ganze Spektrum interessiert mich eigentlich nicht, daher wollte ich auch nicht umbedingt mit FFT etc. anfangen.
Eine "Frequenzmessung" wie du schreibst ist mit einem Mikrophonsignal unmöglich, das Signal wird IMMER ein gewaltiges Spektrum aufweisen, du must eine Spektrogramm erstellen (FFT) und den stärksten Pegel (im Frequenzraum) zu deiner gesuchten Frequenz erklären. Die anzahl der Bänder (Fenstergrösse) bestimmt natürlich deine Auflösung und deinen Rechenbedarf. -wiebel
Ok, also werde ich wohl um die FFT nicht rumkommen, leider .. dann "einfach" das stärkste Band nehmen und das ist das die Frequenz. Welchen Prozessor würdest Du/Ihr dafür empfehlen (wie gesagt ARM/AVR/8051 Dev. Kits/Compiler verfügbar)? Hier liegen habe ich noch einige ARMs (SAM7SE, SAM9260 .. etwas dick dafür ;), LPC2148, LPC2103 und STR9irgendwas). Das ganze sollte natürlich einigermaßen schnell aktualisieren (so 10xpro Sekunde oder so) Wenn ich richtig gerechnet habe müsste ich eine 2048 Punkte FFT machen bei 41kHz Abtastrate um auf 20Hz Auflösung zu kommen. Wie nutze ich die FFT? Ich habe im netz mehrere FFT Algorithmen gefunden für verschiedene Architekturen. Klar .. Signal in AD-Wandler und dann in ein Array ablegen. Aber was mache ich dann mit den Daten? Den ARM Algorithmus den ich habe erwartet ein Array mit Real/Imaginärteil (??) Dann muss ich ja erstmal meine AD-Signal umwandeln oder (wie das?) Dann rufe ich die FFT auf mit dem Array, erhalte wieder ein Array. Was mache ich jetzt damit? Wie verwende ich die Daten. Ein paar Sichwörter dazu wären noch super ;) THX!!
Sorry, dafür bin ich jetzt zu sehr der Theoretiker, die blutigen Details müsste dir jetzt jemand anderes liefern. Ideal wäre dafür natürlich ein DSP ansonste würde ich einen kleinen ARM dafür schon nehmen mit AVRs wird das zu träge, imho. Ich würde mir die Elm-Chan Lösung nochmal genauer ansehen. Der kommt immerhin auf knapp 5Hz bei 2048 Punkten bei 9,6kHz, das dürfte aber auch schon die Obergrenze für AVRs sein. Aber das Datenhandling, kannst du bestimmt von ihm übernehmen. -wiebel
Wo findet man da den den Hauptsource-Code ? FFT und Display Lib hab ich gefunden .. aber das PRogram?
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.