
Eigentlich bin ich mit interessanten Bastelarbeiten mehr als Ausgelastet, aber ich konnte nicht widerstehen, es gab gestern eine Möglichkeit an digitale AudioMEMs zu einen kleinen Preis (4,- Stück inkl. Porto) hier in DE zu kommen. Es handelt sich um das INMP441 MEMs, schon gleich auf einer Platine aufgelötet - mit fertigen Anschlüsse für mein Breadboard, das macht das Teil interessant für einen Ausflug in die DIY digitale Audiowelt.
Grund genug sich mit der digitalen Audio-Technik kurz zu befassen. Mein jetziges Wissen habe ich aus der KI und einigen Blogs die schon damit spielen. Dieses Mikrofon ist nicht im Klang im HighEnd Bereich angesiedelt, das was ich als Wave davon gehört habe, würde ich auf den Stand der Elektredkapseln in den späten 80er Jahren verorten - allerdings etwas luftiger aufgelöst im Klang, da keine Masse als Membran der Schallschwingungen einen Widerstand entgegensetzt. Gemessen in einem Blog wurden 61 dB Rauschabstand, nicht mehr Stand der Dinge im Audiobereich und kann in der Serienfertigung auch etwas schwanken, ist mit 60 dB im Datenblatt +-1dB angegeben. Obwohl ich vom Rauschen bei Sprache nichts bemerkt habe (vielleicht ist digitales Rauschen anders Bemerkbar als Analoges?), hatte aber auch nur kurze Sampel zur Verfügung. Darum geht es mir auch nicht, bis heute sind die spitzen AudioMEMs diesen INMP441 weit überlegen, besonders im Bassbereich und dem Rauschabstand...... nur sie sind halt analog. Mit digitalen MEMs lassen sich viele Bastelsachen stark vereinfachen, sie benötigen keinen rauscharmen Vorverstärker oder besonders gut geschirmte Kabel, nein, sie können ihre Einsen und Nullen direkt z.B. in einen ESP32 schreiben, ohne auch nur ein einziges Bauteil zusätzlich zu benötigen.
Deshalb für Interessierte eine kurze Übersicht über das INMP441. Meine erste Idee wäre damit eine klassische Lichtorgel mit 4 Tonkanälen zu realisieren, Rot-Gelb-Grün-Blau...natürlich mit den heutigen programmierbaren LEDKetten für kleines Geld. Ich finde es klasse beim Musikhören auch noch was auf die Augen zu bekommen ;-)
Der INMP441 ist ein digitales MEMS-Mikrofon mit integriertem ADC und I²S-Ausgang. Das bedeutet: Aus dem Mikrofon kommt **kein analoges Audiosignal**, sondern bereits ein digitaler Datenstrom. Hier in sehr kurzen KI-Wörtern ein erster Überblick:
Die typischen 6 Pins sind:
| Pin | Funktion |
| ---------- | --------------------------------- |
| VDD | Versorgung (meist 3.3 V) |
| GND | Masse |
| SCK / BCLK | Bit Clock vom Controller |
| WS / LRCLK | Word Select / Left-Right Clock |
| SD | Serieller Audiodaten-Ausgang |
| L/R | Auswahl linker oder rechter Kanal |
## Was passiert intern?
Ein digitales MEMS-Mikrofon enthält:
1. die MEMS-Membran
2. einen Vorverstärker
3. einen Sigma-Delta-ADC
4. eine digitale I²S-Schnittstelle
Dadurch liefert das Modul direkt PCM-Audiodaten!
# Was kommt elektrisch heraus?
Am SD-Pin erscheint ein serieller Bitstrom:
* logisch 0 / 1
* typischerweise 24-Bit Audio
* synchron zu den beiden Taktsignalen:
* BCLK
* LRCLK
Das ist kein UART, kein SPI-Protokoll im klassischen Sinn, sondern meist **I²S**.
---
# Die drei wichtigen Signale
## 1. BCLK (Bit Clock)
Der Mikrocontroller erzeugt den Takt.
Beispiel:
* 48 kHz Sampling
* 24 Bit
* Stereo-Frame
Dann liegt BCLK typischerweise bei einigen MHz.
Mit jeder Flanke wird ein Datenbit übertragen.
---
## 2. LRCLK / WS
Markiert:
* linker Kanal
* rechter Kanal
Auch wenn nur ein Mikro vorhanden ist, läuft I²S oft im Stereoformat.
---
## 3. SD (Serial Data)
Hier kommen die eigentlichen Audiodaten heraus.
Zum Beispiel:
00000000 00010110 11100101 ...
Das repräsentiert die Amplitude des Audiosignals als Zweierkomplementzahl.
---
# Warum hat das Mikro einen L/R-Pin?
Der INMP441 kann sich als:
* linker Kanal
* rechter Kanal
ausgeben.
Damit lassen sich zwei Mikrofone an denselben I²S-Bus hängen:
| Mikro | L/R |
| ------- | ----------- |
| Mikro 1 | GND → Left |
| Mikro 2 | VDD → Right | (VDD ist die Versorgungsspannung 3.3V)
Beide teilen sich:
* BCLK
* LRCLK
* SD
und senden abwechselnd ihre Samples.
---
# Beispiel eines Samples
Ein 24-Bit-Sample könnte sein:
0x001234
```
oder negativ:
0xFF8000
```
Das ist einfach der momentane Schalldruckwert.
Der Controller sammelt kontinuierlich solche Samples:
48.000 Samples/s
und daraus entsteht Audio.
---
# Unterschied zu analogen Mikrofonen
## Analoges MEMS
Hat:
* VCC
* GND
* OUT
Am OUT liegt eine kleine analoge Spannung.
Du brauchst:
* Vorverstärker
* ADC
---
## Digitales MEMS (INMP441)
Hat:
* ADC bereits integriert
* direkt digitale Daten
Vorteile:
* weniger Rauschen
* unempfindlicher gegen Leitungsstörungen
* einfach mit ESP32/RP2040/STM32
---
# Typische Nutzung mit ESP32
Der ESP32 besitzt Hardware-I²S.
Typische Verbindung:
| INMP441 | ESP32 |
| ------- | ----- |
| SCK | BCLK |
| WS | LRCLK |
| SD | DIN |
| VDD | 3V3 |
| GND | GND |
Dann liest der ESP32 einfach PCM-Samples aus dem I²S-Peripheral.
---
# Wichtig zu wissen
Der INMP441 ist:
* kein SPI-Slave
* kein I²C-Gerät
* kein PDM-Mikrofon
sondern ein:
* echtes I²S-Audio-Mikrofon.
---
# PDM vs I²S
Viele MEMS-Mikros liefern stattdessen PDM:
101101011111000...
Das ist ein stark überabtasteter 1-Bit-Stream.
Der INMP441 dagegen liefert bereits dekodierte PCM-Werte über I²S — deutlich einfacher zu verwenden.
---
# Praktisch bedeutet das
Du bekommst am Ende:
* kontinuierliche digitale Audio-Samples
* typischerweise:
* 16-Bit oder 24-Bit
* 16–48 kHz
* PCM
Damit kannst du:
* aufnehmen
* FFT machen
* Sprache erkennen
* Richtung bestimmen
* Audio streamen
* Wake-Word Detection bauen
Um die digitalen Daten eines INMP441 wieder als analoges Audiosignal auszugeben, brauchst du einen **DAC** (Digital-Analog-Converter).
Der Signalweg sieht dann so aus:
Schall → MEMS → ADC → I²S-Daten → DAC → analoges Audio
```
Der INMP441 liefert bereits PCM-Daten über I²S.
Ein DAC macht daraus wieder eine Spannungskurve.
---
# Gibt es dabei Klangverluste?
Theoretisch:
* ja, jede Digitalisierung ist begrenzt.
Praktisch:
* mit modernen Audio-DACs praktisch nicht hörbar.
Wenn:
* Samplefrequenz ausreichend hoch ist
* genügend Bit-Tiefe vorhanden ist
* gute Filter verwendet werden
dann ist das rekonstruierte Signal extrem nah am Original.
---
# Was genau rekonstruiert der DAC?
Der DAC erhält z. B.:
..., 1200, 1300, 1250, 1100 ...
Diese Zahlen sind diskrete Abtastwerte der Schallwelle.
Der DAC erzeugt daraus zunächst eine Treppenspannung:
__----___--____
Danach entfernt ein Tiefpassfilter die hohen Treppenanteile.
Am Ende entsteht wieder eine glatte Wellenform.
---
# Warum funktioniert das überhaupt?
Das basiert auf dem:
Nyquist-Shannon Sampling Theorem
Wenn:
* die Samplingrate größer als doppelte höchste Frequenz ist, kann das analoge Signal theoretisch vollständig rekonstruiert werden.
Beispiel:
* 48 kHz Sampling
* → bis knapp 24 kHz rekonstruierbar
Das deckt menschliches Hören vollständig ab.
---
# Was bestimmt die Klangqualität?
## 1. Sample Rate
Typisch:
* 44.1 kHz
* 48 kHz
* 96 kHz
Mehr = höhere maximal darstellbare Frequenz.
---
## 2. Bit-Tiefe
Typisch:
* 16 Bit → CD
* 24 Bit → Studio
Mehr Bits:
* weniger Quantisierungsrauschen
* größerer Dynamikbereich
Faustregel:
~6 dB Dynamik pro Bit
Also:
* 16 Bit ≈ 96 dB
* 24 Bit ≈ 144 dB
---
## 3. Jitter
Ungenauer Takt erzeugt Verzerrungen.
Deshalb haben gute DACs:
* sehr stabile Clock
* PLLs
* Reclocking
---
## 4. Analogfilter
Nach dem DAC sitzt fast immer:
* ein Tiefpass
* oft aktiv mit OpAmp
Der entfernt:
* Samplingreste
* HF-Anteile
---
# Wie macht man das praktisch?
## Möglichkeit 1: I²S-DAC
Sehr üblich mit Mikrocontrollern.
Beispiele:
* PCM5102A
* MAX98357A
* ES9023
Der DAC empfängt:
* BCLK
* LRCLK
* DATA
und erzeugt:
* Line-Out
* Kopfhörersignal
---
# Beispielkette
INMP441 → ESP32 → PCM5102A → Verstärker → Lautsprecher
```
Der ESP32 kann:
* Audio puffern
* filtern
* streamen
* direkt durchreichen
---
# Kann man “verlustfrei” zurückwandeln?
Wichtiger Punkt:
## Wenn die Digitalisierung sauber war:
Dann kann der DAC das Signal nahezu perfekt rekonstruieren.
## Aber:
Information oberhalb der Nyquistfrequenz ist weg.
Beispiel:
* 48 kHz Sampling
* alles über ~24 kHz existiert nicht mehr.
Für Menschen praktisch irrelevant.
Die Fehler liegen oft:
* weit unter Hörschwelle
* kleiner als Lautsprecherverzerrungen
* kleiner als Raumakustikprobleme.
---
# Interessanter Spezialfall
Einige DACs rekonstruieren nicht direkt Spannungen, sondern nutzen:
* Sigma-Delta-Modulation
* 1-Bit-Streams
* Oversampling
ähnlich wie MEMS-Mikrofone intern arbeiten — nur rückwärts.
---
# Kurz gesagt
Der INMP441 liefert:
* digitale PCM-Samples über I²S.
Ein DAC:
* wandelt diese Samples zurück in eine analoge Spannung.
Mit:
* genügend Samplefrequenz,
* ausreichender Bit-Tiefe,
* gutem DAC und Filter
ist die Rekonstruktion praktisch transparent und klanglich nahezu verlustfrei.
Der ESP32 ist für Audio erstaunlich leistungsfähig, weil er:
* Hardware-I²S besitzt,
* DMA unterstützt,
* relativ schnell ist,
* und mehrere MEMS-Mikrofone gleichzeitig verarbeiten kann.
Damit lassen sich:
* Audioaufnahme,
* FFT,
* Sprachaktivierung,
* Richtungsbestimmung,
* und sogar einfaches Beamforming
realisieren.
---
# 1. Audioverarbeitung auf dem ESP32
Mit einem digitalen MEMS wie dem INMP441 bekommt der ESP32 direkt PCM-Audiodaten über I²S.
Typischer Aufbau:
INMP441 → I²S → ESP32 → DSP → DAC / WLAN / Speicherung
---
# 2. Warum I²S + DMA wichtig sind
Audio erzeugt kontinuierlich Daten.
Beispiel:
48.000 Samples/s × 24 Bi
Das muss ohne Unterbrechung gelesen werden.
Der ESP32 nutzt dafür:
* I²S-Hardware
* DMA-Buffer
DMA bedeutet:
Der Speicher wird automatisch gefüllt, ohne dass die CPU jedes Bit lesen muss.
Die CPU verarbeitet dann nur ganze Blöcke:
[1024 Samples]
Das ist entscheidend für DSP.
---
# 3. Typische Audioverarbeitung
## Lautstärke bestimmen
Sehr einfach:
RMS = sqrt(mean(x²))
Damit erkennt man:
* Sprache
* Klatschen
* Geräusche
---
# 4. FFT (Frequenzanalyse)
Die:
Fast Fourier Transform
zerlegt Audio in Frequenzen.
Beispiel:
* 200 Hz
* 1 kHz
* 5 kHz
Der ESP32 kann damit:
* Spektrumanalyse
* Equalizer
* Tonerkennung
* Beat Detection
machen.
---
# Beispiel
Ein Sampleblock:
1024 Samples @ 48 kHz
enthält etwa:
21 ms Audio
FFT daraus leicht machbar:
Aufspalten in: Bass | Mitten | Höhen
---
# 5. Echtzeit-Audio auf ESP32
Der ESP32 schafft:
* einfache FFTs
* Noise Gate
* Filter
* Voice Detection
gut in Echtzeit.
Für:
* große neuronale Netze
* komplexes Beamforming
* KI-Audio
wird es aber knapp.
Dann nutzt man oft:
* ESP32-S3
* Raspberry Pi
* STM32H7
---
# 6. Beamforming — die spannende Sache
Beamforming bedeutet:
> Mehrere Mikrofone werden kombiniert, um bevorzugt aus einer Richtung zu hören.
Im Prinzip: künstliches Richtmikrofon.
---
# Grundidee
Schall braucht Zeit.
Wenn ein Geräusch von links kommt:
Mikro A hört zuerst
Mikro B leicht später
Diese winzige Zeitdifferenz enthält die Richtungsinformation.
---
# Beispiel mit 2 Mikrofonen
[Mikro A] ---- 5 cm ---- [Mikro B]
Schallgeschwindigkeit:
~343 m/s
Zeitdifferenz maximal:
~145 µs
Sehr klein — deshalb braucht man:
* präzises synchrones Sampling
* stabile Clock
I²S ist dafür ideal.
---
# Wie erkennt man die Richtung?
Man berechnet die:
## Kreuzkorrelation
Man verschiebt Signal B gegen Signal A:
Der Versatz ergibt:
* Laufzeitdifferenz
* daraus Winkel
---
# Vereinfacht
Delay = 20 Samples
→ Schall kam eher von links.
---
# Beamforming selbst
Nun verzögert man absichtlich Signale:
Mic A + Delay
Mic B + anderer Delay
Dann addiert man sie.
Schall aus gewünschter Richtung:
* addiert sich konstruktiv.
Andere Richtungen:
* löschen sich teilweise aus.
---
# Ergebnis
Man bekommt:
* Richtwirkung
* weniger Hintergrundgeräusche
* bessere Sprachverständlichkeit
Das ist:
* in Smart Speakern,
* Konferenzsystemen,
* Alexa,
* Siri,
* Mikrofonarrays
enthalten.
---
# Typische ESP32-Projekte
## 1. Sound Direction Finder
Mehrere MEMS:
* Richtung erkennen
* LEDs anzeigen
---
## 2. Voice Activation
Nur reagieren wenn:
* Sprache erkannt wird.
---
## 3. WLAN-Audio
ESP32 streamt:
* PCM
* Opus
* WAV
über WLAN.
---
## 4. FFT-Visualizer
Musik → Frequenzbalken.
---
# Grenzen des ESP32
## RAM
Audio braucht viel Buffer.
---
## Floating Point
Der klassische ESP32 hat keine starke FPU.
Deshalb:
* fixed point
* Integer DSP
oft schneller.
---
## Mehrkanal-I²S
Beamforming braucht:
* mehrere synchronisierte Mikrofone.
Das kann tricky werden.
---
# Beliebte MEMS für Beamforming
* INMP441
* ICS-43434
* SPH0645LM4H
---
# Interessant: Warum MEMS perfekt für Beamforming sind
Weil sie:
* identische Eigenschaften haben,
* digital synchron laufen,
* wenig Rauschen besitzen,
* klein sind.
Analoge Mikrofone wären:
* schwer exakt abzugleichen.
---
# Ein typisches Mini-Array
Mic1 Mic2
Mic3 Mic4
```
Damit kann man:
* horizontal
* vertikal
Richtungen bestimmen.
---
# Schwierigkeit in der Praxis
Beamforming klingt einfach, aber:
* Raumreflexionen
* Echo
* unterschiedliche Frequenzen
* Wind
* Samplingfehler
machen es mathematisch anspruchsvoll. Deshalb steckt darin viel DSP Power und für einen ESP32 nicht ausreichend Leistbar.
Soweit ein kurzer KI Überblick. Bin gespannt was man(n) mit diesen kleinen Teil alles realisieren kann......


