Puh..... nach 3 Jahren das Projekt immer noch nicht fertig! Das hatte etwas in meinen persönlichen Umfeld zu tun und dadurch Zeitmangel...... und auch keine Lust mehr.
Da ich wieder in die HiRes Tonaufnahmen tiefer einsteigen möchte, habe ich heute das Thema noch einmal aufgenommen und fange nochmal neu an. In der Zwischenzeit hat sich auch bei den Prozessoren etwas getan. Ich habe nun ein Modell ausgesucht, einem Cortex M4 getaktet mit 120 MHz und Gleitkommaunterstützung. Dieser eignet sich mit seinen DSP und 8 x 12-Bit Analogeingänge besonders für dieses 100 kHz Audioprojekt, würde sogar noch höhere Frequenzen verarbeiten. Er besitzt außerdem eine einfache Anbindung an einem 3,5 Zoll Display mit umfangreichen Bibliotheken, was die Sache für mich erst überhaupt machbar erscheint. So gibt es dann nur noch ein Rechenknecht für Audioanalyse und Darstellung auf dem Bildschirm. Gut für die mobile Anwendung in Betrachtung des Stromverbrauches. Ich habe einen normalen 20,- EUR Bildschirm ausgesucht, OLED wäre mir viel lieber, ist aber in der Größe nicht bezahlbar. Vielleicht später, falls ich das zum Laufen bringen kann. Die für den Code erforderlichen Berechnungen habe ich der KI überlassen, sie wies auch nochmal darauf hin, dass das Mikrofon bei 100 kHz beschnitten werden muss, sonst gibt es in der Darstellung der Balkendiagramme auf dem Display Frequenzen die gar nicht vorhanden sind. Um den 100 kHz Mikrofonverstärker kümmere ich mich zuletzt. Für erste Tests ob das Skript läuft, setze ich einen Funktionsgenerator ein, das dürfte reichen um die Grundfunktionen zu Testen.
Der Prozessor ist bestellt, liegt um die 30 Euro, ist aber zur Zeit nicht so leicht in DE zu bekommen. Eine Makerbude hatte noch 2 auf Lager, also wieder warten auf Teile.
Die KI meint zu diesem Projekt:
Relevante technische Eckdaten des Feather M4:
CPU: ATSAMD51, Cortex‑M4 @ 120 MHz mit FPU und DSP‑Instruktionen.
RAM / Flash: 192 KB SRAM, 512 KB Flash; zusätzlich 2 MB SPI‑Flash auf dem Board.
ADC: Dual 12‑bit ADC mit bis zu 1 MSPS (je ADC).
Was das für einen 100 kHz Spektrumanalysator bedeutet:
Abtastrate: Für ein Nutzsignal bis 100 kHz brauchst du mindestens die Nyquist‑Rate ≥ 200 kS/s. Praktisch sind oft 250 kS/s – 1 MS/s sinnvoll.
≥ 200 kS/s.
ADC‑Leistung:
Die on‑board ADCs des ATSAMD51 (1 MSPS) reichen für 100 kHz‑Anwendungen aus, sofern die analoge Frontend‑Qualität (Anti‑Alias‑Filter, Verstärkung) passt.
FFT‑Rechenaufwand:
Eine FFT mit 𝑁 Punkten benötigt 𝑂(𝑁log 𝑁) Operationen; mit FPU und CMSIS‑DSP‑Bibliothek sind moderate FFT‑Größen (z. B. 1024–8192) auf einem 120 MHz M4 realisierbar, aber bei sehr kurzen FFT‑Intervallen oder sehr hoher Überlappung kann die CPU zum Engpass werden.
Praktische Implementationshinweise für den Feather M4:
ADC‑Acquisition: Nutze ADC + DMA, um kontinuierlich Samples in einen Ringpuffer zu schreiben; so vermeidest du CPU‑Blocking.
Windowing und FFT: Verwende optimierte DSP‑Bibliotheken (CMSIS‑DSP) und FPU‑Unterstützung für komplexe FFTs und Window‑Funktionen.
Puffergrößen:
Für 100 kHz und z. B. 1024‑Punkt‑FFT bei 250 kS/s entspricht ein FFT‑Frame 1024 / 250000 = 4.096 ms. Kleinere Frames erhöhen CPU‑Last und Overlap‑Kosten.
I/O und Visualisierung:
Nutze die Feather‑CPU für Datenerfassung und Vorverarbeitung; GUI/Logging per USB/SD oder seriell an einen PC auslagern, falls nötig.
Ich werde den Prozessor einfach mal testen, ich möchte ja keine ganz exakten Werte der Frequenzen beurteilen, sondern VOR der Aufnahme sehen, ob überhaupt hier Frequenzen oberhalb von 20 kHz vorhanden sind und sich diese Aufnahme dadurch in HiRes überhaupt "lohnt".