Hallo, https://www.adafruit.com/product/1063 an einem https://www.adafruit.com/product/2590, in einem gut schallgedämpften Raum getestet, zeigt einen regelmäßig auftretenden "Herzschlag" im Signal, siehe Bildschirmfoto. Mit drei verschiedenen Metro Mini und MAX4466 Kombinationen an zwei verschiedenen Laptops mit externem 5V Netzteil und nur via USB getestet - immer das gleiche Bild. Ist dieses low-end Teil einfach so, oder kann man da noch etwas verbessern? Danke!
Zwar stehen an den Achsen irgendwelche Zahlen dran, aber ich nehme an, daß die x-Achse eine t-Achse sein soll, und dann wäre es schon hilfreich, wenn man Rückschlüsse auf die Frequenz nehmen könnte. Was ist das, was da von 1 bis 256 geht? Stunden? Sekunden? Millisekunden? Fische pro Woche?
X-Achse = samples, 256 an der Zahl. Mit 512 samples sieht es aber nicht anders aus.
Andreas H. schrieb: > X-Achse = samples, 256 an der Zahl. Seufz. Daß das eine Aussage ohne Wert ist, ohne die Samplerate anzugeben, ist Dir nicht klar? Wie viele Samples pro Monat/Woche/Tag/Stunde ... sind das? Welche Samplefrequenz?
Prescaler 128: 256 samples in 28 Millisekunden Prescaler 64: 256 samples in 14 Millisekunden Prescaler 32: 256 samples in 7 Millisekunden
Andreas H. schrieb: > ... zeigt einen regelmäßig auftretenden "Herzschlag" ... Dann zeig doch einmal das Spektrum. Was genau zeigt dein Bildschirmfoto? Wie hast du die Bandbreite begrenzt?
:
Bearbeitet durch User
Das Bildschirmfoto zeigt den ADC Ausgabewert des Metro Mini (X-Achse). Bei 3,3V Aref des microcontrollers und 1,65V bias des Mikrofon-Verstärker breakout boards sähe man bei absoluter Stille theoretisch eine gerade Linie bei 338. Einen spectrum analyser habe ich leider nicht. Die Bandbreite des sampling, die sampling frequency, ist mit dem ADC prescaler festgelegt. Prescaler 128 (default): 256 samples/28 ms => 9143 samples/s = 9.1 kHz Prescaler 64: 256 samples/14 ms =>18286 samples/s = 18.3 kHz Prescaler 32: 256 samples/7 ms => 36571 samples/s = 36.5 kHz
Andreas H. schrieb: > Einen spectrum analyser habe ich leider nicht. Um aus der Zeitserie das Spektrum zu berechnen, brauchst du keinen "spectrum analyser", sondern eine Software, die die FFT rechnen kann. > Die Bandbreite des sampling, die sampling frequency, ist > mit dem ADC prescaler festgelegt. Abtastfrequenz und Signalbandbreite sind zwei völlig verschiedene Dinge. Damit es nicht zu Aliasing kommt, muss die Abtastrate mehr als doppelt so hoch wie die höchste Signalfrequenz sein.
Zum Vergleich ein 1 kHz Sinuston, bei 2,5V Aref, in 100 cm Entfernung vom smartphone abgespielt. Absolute Stille läge theoretisch bei einem ADC Ausgabewert von 676, ist aber hier um 10 Einheiten nach oben verschoben. Da die Amplitude nun größer ist, und ein bischen Sinus-Lärm, ist der periodische "Puls" nicht mehr zu sehen.
Ich würde erstmal den Noise-Floor ermitteln. Dazu das Mikro-Board abziehen und dann nochmal eine Messreihe aufzeichnen. Je nach Ausgabe kann man dann schonmal 50% der Fehler aussortieren.
Die Signalfrequenz bei Stille in meinem schallgedämpften Raum kenne ich nicht. Rauschen tut hier jedenfalls nichts. Die Dämpfung ist (drumkit) wirklich gut. Nur das Signal, was der microcontroller aus der Stille, dem Restrauschen im Raum, macht. FFT werde ich machen, dazu müßte es auch für low-end Teile wie meine code geben.
:
Bearbeitet durch User
FFT bei Stille. Für mehr als 128 samples hat der Metro Mini keinen Speicher.
wird der Laptop mit Netzteil betrieben? Falls ja probiere mal die Messungen im Akkubetrieb
Habe ich schon. Laptop am Netz. Laptop im Batteriebetrieb. Die klassische 9V Batterie. Bestromung nur über das USB-Kabel. Anderen Laptop. Laptop einen Meter weit weg gestellt. Keine Leuchtstoffröhre oder "Energiesparlampe" oder sonstige Leuchte in Betrieb. Kein anderes elektrisches Gerät ist eingeschaltet. Bei drei gleichen Metro Mini und zwei MAX4466 Kombinationen, nicht aus einer Bestellung, sondern mit einigen Jahren Abstand für die Bastelkiste gekauft - stets das gleiche Resultat bei Stille. Ich habe leider kein Oszilloskop zur Verfügung, nur ein DMM.
was kommt raus wenn du das Mikro kurzschließt? Immer noch die gleiche Wellenform?
Andreas H. schrieb: > Den microcontroller abziehen... und was sollte ich dann machen? Da hast du mich falsch verstanden. Mit Mikro-Board meinte ich das Board mit dem Mikrofon. Es geht darum, mal aufzuzeichnen, was der ADC ohne Mikrofon misst. Das müsste im Idealfall ja eine Nulllinie sein. Wenn der ADC dann aber NC ist, müsstest du ihn vorher mit Masse verbinden. Alternativ kannst du versuchen, VCC vom Mikrofon-Board NC zu schalten, also das Mikrofon-Board spannungsfrei zu schalten. Letztendlich geht es darum, Fehler auszuschliessen und sich damit dem eigentlichen Fehler anzunähern, indem man ein grundsätzlich erwartetes Verhalten empirisch überprüft.
Thomas Z. schrieb: > was kommt raus wenn du das Mikro kurzschließt? Immer noch die gleiche > Wellenform? Das meinte ich. Meine Methode ist zwar weniger brachial, kommt aber aufs gleiche raus.
Alles klar. Ohne MAX4466 bekomme ich 256 schöne Nullen vom ADC. ADC pin A0 an GND.
:
Bearbeitet durch User
Andreas H. schrieb: > FFT bei Stille. Für mehr als 128 samples hat der Metro Mini keinen > Speicher. Was soll man daraus ablesen? Für die Qualität deines Signals interessiert die Dynamik, d.h. du brauchst ein Signal, dass deinen ADC voll aussteuert und dann kannst du den Störlevel und den Dynamikabstand zu Störsignalen bestimmen, am besten in logarithmischer Darstellung der Amplitude. Welche Fensterfunktion hast du für die FFT benutzt? Abtastrate 9.1kHz? p.s. An der Darstellung der FFT kannst du noch ETWAS arbeiten: - Vernünftigen Achsenteilung für die Frequenz - Vernünftige Beschriftung der Frequenzachse - Deine Abtastfrequenz ist bestimmt nicht auf die angegebenen 10 Stellen genau, d.h. die Werte in dieser Form sind ein Artefakt.
:
Bearbeitet durch User
Ich kann nicht sagen, wie man diesen gleichförmigen "Herzschlag" im Signal daraus ablesen kann, ich bin leider kein Akustik- oder Elektronikfachmann. FFT wurde zwecks Untersuchung der Signalmacke vorgeschlagen, also - gesagt getan. Mehr als 128 samples und 9.1 kHz schafft der Metro Mini nicht. Zu einer Fensterfunktion kann ich nichts sagen, da ich den code der library https://github.com/kosme/arduinoFFT nicht gelesen habe.
Andreas H. schrieb: > Ich kann nicht sagen, wie man diesen gleichförmigen "Herzschlag" im > Signal daraus ablesen kann Das könnten die Peaks bei 600, 1200, 1800 Hz sein. Um das zu prüfen, müsstest du mal die Periodendauer von deinem Herzschlag in Zeiteinheiten ausdrücken.
Andreas H. schrieb: > Mehr als 128 samples und 9.1 kHz > schafft der Metro Mini nicht. Hast Du kein Notebook/keinen PC mit Audioeingang? Da könntest Du Dein Mikrophon anschließen und z.B. mit Audacity (freie Software) eine Aufnahme bei audioüblichen Sampleraten anfertigen.
Andreas H. schrieb: > Zu einer Fensterfunktion kann ich nichts sagen, ... Das Fenster ist auch nicht Aufgabe der FFT, sondern muss vorher passieren. Sobald Anfang und Ende der Zeitserie nicht zusammenpassen, gibt es sonst Ärger (Artefakte), weil die FFT davon aus geht, dass sich die Zeitserie periodisch fortsetzt. Wenn du die FFT wie im Beispielcode berechnest, wird dort vor der Transformation ein Hamming-Fenster über die Zeitserie gelegt.
1 | void loop() { |
2 | // Get samples
|
3 | FFT.windowing(FFTWindow::Hamming, FFTDirection::Forward); /* Weigh data */ |
4 | FFT.compute(FFTDirection::Forward); /* Compute FFT */ |
5 | FFT.complexToMagnitude(); /* Compute magnitudes */ |
6 | float x = FFT.majorPeak(); |
7 | // Rest of the code
|
8 | }
|
https://github.com/kosme/arduinoFFT/wiki
:
Bearbeitet durch User
Andreas H. schrieb: > Alles klar. Ohne MAX4466 bekomme ich 256 schöne Nullen vom ADC. ADC pin > A0 an GND. Dann kommt die Noise wohl vom Mikrofon-Board. Entweder ist es einfach crap, oder VCC ist unsauber, oder es ist defekt, oder die hochohmige lange(?) ADC-Leitung nimmt Störungen auf, oder oder oder. Ich würde jetzt einen Elko direkt(!) an die VCC und GND Pins am Mikrofon-Board anschliessen, damit VCC auf jeden Fall sauber ist. Das wäre nochmal eine häufige Fehlerquelle. Idealerweise noch ein paar Ohm in die lange VCC-Zuleitung, dann hast du einen vernünftigen Tiefpass. Wie versorgst du VCC? Externes Schaltnetzteil? Die verursachen ne Menge Noise. Wie lang sind die Kabel zum ADC? Die nehmen auch gerne Noise auf. Idealerweise sollten die Leitungen alle so kurz wie möglich sein. Eigentlich gehört der ADC aufs gleiche Board, maximal einige cm neben dem Mikrofon platziert ;) Du bist hier im analogen Bereich. Das ist eigentlich nicht so easy wie man es vielleicht gerne hätte.
:
Bearbeitet durch User
Harald K. schrieb: > Hast Du kein Notebook/keinen PC mit Audioeingang? Nur zwei Laptops mit USB-C Eingängen und Bluetooth für drahtlose Kopfhörer/Lautsprecher. > Da könntest Du Dein Mikrophon anschließen Ich könnte einen Laptop mit TRS-Buchse für Kopfhörer/Lautsprecher ausleihen. Das MAX4466 breakout board hat nur einen OUT pin. Den lege ich dann mit Schraubklemme-TRS-Adapter auf L oder R. Ich habe für drumkit Aufnahmen Ableton Live, damit kann ich aufnehmen.
Harald K. schrieb: > Andreas H. schrieb: >> Mehr als 128 samples und 9.1 kHz >> schafft der Metro Mini nicht. > > Hast Du kein Notebook/keinen PC mit Audioeingang? > > Da könntest Du Dein Mikrophon anschließen und z.B. mit Audacity (freie > Software) eine Aufnahme bei audioüblichen Sampleraten anfertigen. Ha, das geht tatsächlich, gute Idee! OUT auf L. GND auf GND. TRS an Laptop mit Ableton Live. Das Signal aus dem MAX4466 ist sehr schwach. Sample +24 dB aber kaum was zu erkennen. Aber - ein regelmäßiges "Puckern" ist auch hier erkennbar. Also, da jetzt kein microcontroller im Spiel ist, hat das Ganze was mit den MAX4466 breakout boards bei fast absoluter Stille zu tun. Irgendetwas oszilliert da, aber warum kann ich natürlich nicht beurteilen. Vielleicht ist das bei diesen low-end breakout boards im alleruntersten Bereich einfach so.
Rainer W. schrieb: > Wenn du die FFT wie im Beispielcode berechnest So gemacht wie vom library Schreiber im Beispiel beschrieben. Anzahl der samples ausgewählt (128) und sampling rate (9.1 kHz). Mehr kann der Metro Mini nicht.
Christian schrieb: > Andreas H. schrieb: >> Alles klar. Ohne MAX4466 bekomme ich 256 schöne Nullen vom ADC. ADC pin >> A0 an GND. > > Dann kommt die Noise wohl vom Mikrofon-Board. Entweder ist es einfach > crap, oder VCC ist unsauber, oder es ist defekt, oder die hochohmige > lange(?) ADC-Leitung nimmt Störungen auf, oder oder oder. > > Wie lang sind die Kabel zum ADC? Die nehmen auch gerne Noise auf. > > Du bist hier im analogen Bereich. Das ist eigentlich nicht so easy wie > man es vielleicht gerne hätte. Die Leitungen sind daumenlang. Da ich das Teil, wie von Harald K. vorgeschlagen, an einem Laptop mit TRS-Buchse angeschlossen habe, und mit Ableton Live eine Aufnahme gemacht habe, sehe ich, daß es nicht am microcontroller liegen kann. Vielleicht "pulsen" solche analogen low-end Teile mit Billigverstärker immer, wenn es so richtig still ist (der Raum ist astrein gedämmt wg. drumkit). Und wenn "viel los ist", ob Sprache oder Musik, fallen einem diese spikes einfach nicht mehr auf, gehen unter im Wellengewaber. Aber ok, dann weiß ich Bescheid, daß es nicht der microcontroller oder der code sein kann. Auch gut!
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.