Hallo,
ich bin auf der Suche nach einem ADC der mir die Analoge Spannung aus
einem Mikrofon Vorverstärker liefern kann. Das Problem bei den Audio
Codecs ist, dass der Codec eine undefinierte Zeit zwischen dem Analogem
Signal und dem gelieferten Sample hat.
Ob ich die 24Bit benötige kann ich leider noch nicht sagen. Mir geht es
weniger um die Spannung, viel mehr um die Pegeländerung. Da das
Nutzsignal durch andere Signale vermutlich stark beeinflusst werden und
ich diese Analog nicht gefiltert bekomme, da unbekannt diese hohe
Auflösung.
Als Sample Rate sind 100ksps angesetzt.
Ich bin für jede Idee dankbar.
Jens
Hallo,
Natürlich Digitalisiert.
Das Mikrofon Signal wird mit einem Opamp verstärkt, dass ich eine
Spannung von etwa 250mV erreiche und wird dann durch einen "Microphone
Preamplifier with Variable Compression and Noise Gating" in der
maximalen Spannung begrenzt und nochmal durch einen OpAmp mit einem
Hochpass verstärkt in den ADC geschickt.
Als ADC habe ich mir erst mal einen AD7766 angeschaut.
Jens
Für das Signal vom Mikrofon wird ein 16 Bit ADC vollkommen ausreichen,
sofern nicht sehr hohe Schallpegel (so dass man Gehörschutz benötigt)
vorhanden sind. Schon da wird das Mikrofon in aller Regel noch deutlich
mehr rauschen. Wenn der Verstärker auch noch eine Variable Verstärkung
und Compression hat, dann wären vermutlich sogar 12 Bit ausreichen. Bei
einer Überlagerung und zur Messung von Pegeln sollte man die Compression
deaktivieren.
Die Audio Codecs liefern zwar eine gewisse Verzögerung vom Analogen
Eingang zum Ausgang, aber die ist konstant und sollte ggf. sogar im
Datenblatt zu finden. So groß sollte die auch nicht sein und in den
wenigsten Fällen stören. Störend ist die Verzögerung vor allem bei
schnellen Regelschleifen, aber so etwas scheint das hier nicht zu
werden.
Ein Sigma Delta Wandler ist sinnvoll, weil da der Anti-Aliasing Filter
vor dem ADC einfacher ausfallen kann.
Zum Filtern des Signal vor dem ADC ist vor allem wichtig wie das
interessante Signal aussieht - andere Frequenzen kann man dann ggf.
unterdrücken. Wie viel das dann bringt hängt von den Störungen ab.
Bist Du Dir sicher, dass Du weist was Du willst?
100.000 X 24 Bit = 300.000 Bytes/s wenn Stereo, dann 600.000.
Um diese kontinuierlich zu schaufeln und zu bewerten, braucht's schon
einen leistungsstarken Grübler.
Ja, da bin ich mir sicher, es geht nur um kurze Zeiten, in denen
aufgenommen wird.
Die Audio Codecs haben leider das Problem, dass eben nicht bekannt ist,
wie lange das Analoge Signal zum I2S Bus braucht. Es kann sein, dass bei
jedem Bit gesamplet wird.
Danke Rufus, ich schau mir die zwei mal an.
Jens
und in meinem Fall wird es ein STM32F427 sein mit 8 .. 16MB DRAM.
Ich brauche nur eine Sekunde lang das Signal aufnehmen und kann dann in
Ruhe das Signal verarbeiten. Aber das ist ein anderes Thema mir geht es
nur um das Aufnehmen der Signale.
Jens
Jens schrieb:> Ob ich die 24Bit benötige kann ich leider noch nicht sagen.
darüber sollte man noch mal recherchieren, ich persönlich kann es mir
nicht vorstellen. Wer will das linar vorher verstärken zum Wandeln.
Als ich noch Prüftechnik machte kostete ein künstliches Ohr samt
Vorverstärker im Bereich 300-3000 Hz 10000.- DM. Sicher ist das heute
evtl. günstiger aber deswegen immer noch nicht leichter zu bearbeiten.
24 Bit -> 16777215 als Zahl
bezogen auf 1V 60nV Auflösung
Die meisten tun sich ja schon mit mV schwer
24 bit ist ne Zahl wie Gigapixel, viel heisse Luft, wenig Infogewinn
Jens schrieb:> Ja, da bin ich mir sicher, es geht nur um kurze Zeiten, in denen> aufgenommen wird.>> Die Audio Codecs haben leider das Problem, dass eben nicht bekannt ist,> wie lange das Analoge Signal zum I2S Bus braucht. Es kann sein, dass bei> jedem Bit gesamplet wird.
Bspw. beim WM8786 http://www.wolfsonmicro.com/media/76497/WM8786.pdf
oder dem CS5381 http://www.cirrus.com/en/pubs/proDatasheet/CS5381_F2.pdf
ist im Datenblatt angegeben wie lange die Gruppenlaufzeit der Filter ist
(konstant in Abhängigkeit der Abtastrate). Falls das die Frage war...
Jens schrieb:> wie Synchron ist das Sampleing zum I2S Bus?
Mir erschließt sich nicht warum das ein Problem sein soll. Wenn man
synchron zu einem externen Signal eine Aufnahme starten will, dann ist
die Verzögerung ja auf der "guten" Seite. Und wenn man dann ebenfalls
synchron zu einem Signal die Aufnahme stoppen will, kann man ja
problemlos noch 10, 100 oder 1000 Samples zusätzlich mitnehmen. Was soll
der Geiz? Und natürlich wird die Verzögerung deterministisch sein
(konstante Anzahl an Samples). Und bei einem vernünftigen Codec auch im
Datenblatt stehen.
Ich sehe viel eher die große Auflösung als unnütz an. Sowohl zeitlich
als auch bei der Quantisierung. Letzteres insbesondere wenn das
Mikrofonsignal auch noch analog komprimiert wird. Schon unkomprimiert
glaube ich nicht daß irgendein Mikro auch nur 20 Bit Dynamik schafft.
XL
Ich möchte mit dem Mikrofon den Weg messen, den der Schall benötigt da
vermutlich einige Störgeräusche vorhanden hätte ich für den Prototypen
gerne die Auflösung. Mit welcher Auflösung ich hinterher arbeite ist
eine andere Sache. Vermutlich würden auch 16 Bit reichen aber das kann
derzeit leider keiner sagen.
Mein Problem ist alleine die Zeit im Codec.
Jens
Eine kleine Frage, die dem TO leider nicht hilft, die mir aber bei den
Antworten hier auf der Seele brennt:
Wenn ein Mikro nichtmal 20bit Auflösung schafft, und manche hier sogar
nur zu 12bit Auflösung raten, aus welchem Grund arbeiten dann die
AD-/DA-Wandler im professionellen Bereich eigentlich immer mit 24bit?
Wird da auch ein Großteil der Auflösung ungenutzt bleiben?
EGSler schrieb:> aus welchem Grund arbeiten dann die> AD-/DA-Wandler im professionellen Bereich eigentlich immer mit 24bit?
Das wird deswegen gemacht, damit auch bei mehrmaligem Durchlauf durch
DSPs und andere Audioprozesse das Quantisierungsrauschen unhörbar
bleibt, bzw. beim Downmix auf 16 bit dann weggekappt wird. Du musst dann
nicht schon bei der Aufnahme peinlich auf den Dynamikbereich der Wandler
achten, sondern hast immer noch Luft nach oben.
Ist nicht nur bei professionellen Teilen so, selbst unser Proberaum
Setup läuft mit 24 bit, das sind 2 Terratec Phase88 PCI Karten mit
insgesamt 16 analogen und 4 digitalen Inputs.
Amateur schrieb:> Bist Du Dir sicher, dass Du weist was Du willst?>> 100.000 X 24 Bit = 300.000 Bytes/s wenn Stereo, dann 600.000.>> Um diese kontinuierlich zu schaufeln und zu bewerten, braucht's schon> einen leistungsstarken Grübler.
Nö. Unser Rechner ist ein älterer P4 HT mit 2,8GHz und der steckt die
Daten der 20 Kanäle locker weg, bzw. auf die Platte. Seit dem Austausch
gegen eine modernere SATA ist die CPU Last noch von etwa 80% auf 50%
runtergegangen.
EGSler schrieb:> Wenn ein Mikro nichtmal 20bit Auflösung schafft
Die Bandbreite dessen, was man "Mikrophon" nennt, ist groß. Das geht vom
Elektretkrümel aus der Freisprecheinrichtung bis zum
Großmembranstudiomikrophon aus dem Hause Neumann ... und vermutlich auch
noch etwas weiter.
Matthias Sch. schrieb:> Ist nicht nur bei professionellen Teilen so, selbst unser Proberaum> Setup läuft mit 24 bit, das sind 2 Terratec Phase88 PCI Karten mit> insgesamt 16 analogen und 4 digitalen Inputs.
OK das mag ja vernünftig sein weil ihr die ADC nicht selber samt
Microfonvorverstärker gebaut habt.
Aber hier wurde doch nach ADC Selbstbau gefragt:
Jens schrieb:> ich bin auf der Suche nach einem ADC der mir die Analoge Spannung aus> einem Mikrofon Vorverstärker liefern kann.
und da darf man den Sinn nach 24-bit doch hinterfragen.
Joachim B. schrieb:> und da darf man den Sinn nach 24-bit doch hinterfragen.
Ich habe lediglich auf die Frage von EGSler um 14:30 Uhr geantwortet. Ob
es sinnvoll ist, die Aufgabe des TE mit 24-bit Wandlern zu lösen, mag
ich nicht beantworten. Da ist ein sauberer Vorverstärker wohl wichtiger
als die letztendliche Auflösung des ADC.
EGSler schrieb:> Eine kleine Frage, die dem TO leider nicht hilft, die mir aber bei den> Antworten hier auf der Seele brennt:> Wenn ein Mikro nichtmal 20bit Auflösung schafft,
Messmikrophone...
http://www.gras.dk/products/measurement-microphone-cartridge.html?p=2
Mal eins rausgegriffen: 40AC Frequenzbereich 3.15 Hz bis 40 kHz,
Dynamikbereich: 20 dBA - 164 dB
>Ich möchte mit dem Mikrofon den Weg messen
Messen heißt vergleichen. Kannst du nicht Chirpsignale in definierten
Abstand abfeuern? Dann ist es egal, wie viel delay in der Kette steckt.
Irgendwie versteh ich nicht, was du vorhast.
Wenn du einen Analogteil äquivalent 20 Bit schaffst, ist das schon sehr
gut. Der nachgeschaltete Wandler sollte dieses SNR nicht verschlechtern.
Also 24 Bit. Wobei 24 Bit, oder heutzutage eher 32 Bit, nur als
Marketingbits aufzufassen sind.
Investiere ruhig 10€ - 20€ für den ADC-Chip, damit du nicht am falschen
Ende sparst.
Wenn das Mikrofon von vielleicht 20 dBA an funktioniert, hat man bei
einem maximalen Lautstärkepegel von 90 dBA (da sollte man schon
Gehörschutz tragen) einen Dynamikbereich von 70 dB. Dafür reicht
theoretisch schon eine 12 Bit Wandler (theoretisch rund 72 dB Dynamik).
Rein für die Zeitmessung sollten die 12 Bit auch ausreichen - damit
könnte man dann sogar den µC internen ADC nutzen, muss aber ggf. bei der
Anpassung der Verstärkung etwas sorgfälltiger sein, um da nicht noch
viel zu verschenken.
Schon dass man einen 16 Bit Wandler wirklich braucht, erfordert ein
wirklich gutes Mikrofon und eine sehr ruhige Umgebung.
Die 24 Bit Audio Wandler können die 24 Bit der Auflösung nicht wirklich
ganz wiedergeben. Rauschbegrenzt sind dass dann ggf. auch nur Effektiv
vielleicht 17-22 Bit - halt meistens so das es nicht mehr in 16 Bit
passt, und die nächste Stufe die sie in den Audio Normen wohl vorsehen
sind halt 24 Bit. Wirklich brauchen tut man mehr als 16 Bit bei Audio
eher nicht. Es hilft aber das man nicht noch Rundungsfehler beim mischen
usw. rein bekommt.
Das Sampling und I2S nicht unbedingt Synchron laufen stört nicht weiter.
Die Samples selber sind im festen Zeitlichen Abstand - für einen
hochauflösenden ADC muss der Takt sogar schon recht stabil sein. I2S
darf halt ggf. von dem Takt abweichen, wenn es dem µC besser gefällt.
Das ist eher als ein Vorteil zu sehen.