ruessel
Beiträge: 10553

DIY: digitales AudioMEMs INMP441

Beitrag von ruessel »

Bild

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......
Gruss vom Ruessel



Jörg
Beiträge: 11076

Re: DIY: digitales AudioMEMs INMP441

Beitrag von Jörg »

Bin gespannt was man(n) mit diesen kleinen Teil alles realisieren kann......
und ich erst ;-)



ruessel
Beiträge: 10553

Re: DIY: digitales AudioMEMs INMP441

Beitrag von ruessel »

Wie geschrieben, klanglich gibt es bessere MEMs. Der INMP441 enthält einen fest eingebauten Low‑Pass‑Filter, dessen Grenzfrequenz proportional zur Abtastrate ist.
Bei 48 kHz Sampling liegt die –6 dB‑Grenze bei 24 kHz, die Passbandgrenze bei ca. 20,3 kHz. Der Hersteller gibt eine flache Frequenzantwort von 60 Hz bis 15 kHz an. Alles darüber fällt stark ab und ist nicht mehr verwertbar, gerade noch HiFi ;-)


Anwendung eher hier:

Gruss vom Ruessel



ruessel
Beiträge: 10553

Re: DIY: digitales AudioMEMs INMP441

Beitrag von ruessel »

P1000057.JPG

Heute bin ich stolzer Besitzer 6 digitaler MEMs INMP441. Mal schauen was man(n) damit machen kann. Spontan fällt mir da was extremes ein, ein Kamera Ausrichtungssystem. 4 MEMs sind auf einem Brett mit 10x10cm Abstand zueinander, ein Prozessor lauscht und sobald ein Geräusch erscheint wird analysiert aus welcher Richtung das Geräusch kam und dreht mit Hilfe eines Servo die Kamera (kleine Actioncam) in diese Richtung.
Keine Ahnung ob das im DIY machbar ist, einfach mal probieren und viel lernen ;-)

MEMs Richtungszeiger hatten wir schon mal von einer (militärischen) Firma um Angreifer ausfindig zu machen:


Gruss vom Ruessel
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.



 Aktuelle Beiträge [alle Foren]
 
» EIZO CS3200X erklärt: Der aktuell beste Hybrid Monitor für Foto und Video?
von slashCAM - Sa 9:15
» Automatische Nummerierung von Clips per Subtitel
von AndySeeon - Sa 7:42
» Das Genie von Roger -FUCKING- Corman!
von iasi - Fr 18:22
» Musikvideo | Framerate-Frage in die Runde :)
von Bildlauf - Fr 14:33
» Neue SanDisk Extreme PRO CFexpress 4.0 Type B Karten bis 4 TB und doppelt so schnell
von slashCAM - Fr 10:15
» DJI Mic Mini 2 - Farbiges Upgrade, doch das bessere Mic Mini 2S kommt schon bald
von Dark Matters - Fr 10:12
» Was hörst Du gerade?
von Nigma1313 - Fr 10:09
» AJA: Bridge Live IP erklärt, IP25-R Update und ein Blick in die Zukunft ...
von slashCAM - Fr 7:33
» Claude-KI bedient als Kreativ-Assistent Blender, Ableton, Adobe CC und viele weitere
von XyZ-3D - Fr 0:13
» Hat die Filmbranche ANGST? ACHIM BORNHAK/AKIZ
von Nigma1313 - Do 19:34
» Apple Vision Pro - Bereits nachlassende Nachfrage in den USA?
von berlin123 - Do 19:22
» Obsbot Tail 2 & Tiny 3: Maximale KI-Power für PTRZ und Webcam
von slashCAM - Do 14:51
» Neuer ARRI cforce MAX Objektivmotor verdoppelt die Geschwindigkeit
von slashCAM - Do 12:24
» Laowa stellt variable 1-5x und 5-10x Ultra Makros vor - inkl Cine Versionen
von iasi - Mi 20:19
» Insta360 Mic Pro - Funkmikro mit farbigem E-Ink-Display und 32-Bit Audio Float
von ElSaso - Mi 14:44
» DaVinci Resolve 21 importiert Affinity-Dateien, das Animations-Tool Cavalry wird kostenlos
von cantsin - Mi 12:30
» Viltrox 35mm 1.8 APO EVO
von medienonkel - Mi 11:53
» DIY: DJI Mic2 in die Klinkenbuchse geschaut.
von Jörg - Mi 10:03
» Nanlite Evoke 5C: Das vielseitigste, kompakte LED Spotlight am Markt?
von rob - Mi 8:43
» Sennheiser HD 480 PRO - neuer geschlossener Referenzkopfhörer für Studio und Live
von BigT - Di 21:53
» Blackmagic PYXIS 12K – Kostenloser Workshop für professionelle Filmemacher
von slashCAM - Di 16:06
» Blackmagic DaVinci Resolve und Fusion 21 Beta 2 Update verbessert u.a. Fotoverarbeitung
von medienonkel - Di 15:14
» LaCie 8big Pro - 8-Bay-RAID mit Thunderbolt 5 und bis zu 256 TB
von slashCAM - Di 13:33
» Tilta Khronos Cine-Adapter soll PL-Objektive an das iPhone bringen
von Jott - Di 12:39
» Ich gerate in Bergnot, damit ihr es nicht müsst!
von freezer - Di 11:03
» Nacktheit in Filmen vortäuschen.
von ffm - Di 9:52
» Bosma Vega H2 - 6K-Kamera mit um 90° drehbarem Sensor und ToF-Fokus
von Darth Schneider - Mo 18:14
» Manfrotto ONE: Das vielseitigste Hybrid Stativsystem für Video + Foto seiner Klasse?
von rob - Mo 16:29
» After Effects LLM gesucht
von tom - Mo 14:42
» Wenn Schauspieler PRODUZENTEN werden. WILSON GONZALEZ OCHSENKNECHT
von Nigma1313 - Mo 12:56
» Adobe kündigt Firefly AI Assistant an - Agent steuert Creative Cloud Apps per Prompt
von j.t.jefferson - Mo 11:07
» GoPro MISSION 1 Pro - 8K-Actioncams mit 1-Zoll-Sensor und MFT-Mount
von medienonkel - Mo 8:48
» Nikon teasert erste Cine lens (mit AF)
von iasi - So 16:27
» !!BIETE!! iPhone 12 mini in weiß 64GB
von klusterdegenerierung - So 14:27
» DNG ist offizieller ISO-Standard – Meilenstein für ein offenes RAW-Format, das keiner will?
von dienstag_01 - So 11:21