Forum: Mikrocontroller und Digitale Elektronik Equalizer mit HP/TP auf STM32F4?


von Hendrik (Gast)


Lesenswert?

Hello,

ich bräuchte als Ersatz für einen Analogen Equalizer/Filter (welcher 
ziemlich rauscht und leider wenige Konfigurationsmöglichkeiten 
bietet...) ein neues Board. Diesmal dachte ich an eine digitale 
Umsetzung des Ganzen.

Anforderungen:
- Signal wird via 3,5mm Klinke eingespeist (Mono)
- Signal soll dann:
1. Je nach Stellung von drei Potis (Bässe/Mitten/Höhen) verändert werden
2. über zwei Filter laufen: linker Kanal am Ausgang soll über einen 
Hochpass laufen, der rechte Kanal soll über einen Tiefpass laufen.
- Ausgabe auf einem 3,5mm Klinke stecker oder Cinch

Ich bin derzeit mit dem STM32F4 am basteln, würde sich das dafür eignen?

Was wären Anlaufpunkte? Eine erste Suche ergab einen Equalizer Builder:
https://www.mathworks.com/examples/embedded-coder/4506-parametric-audio-equalizer-for-stm32f4-discovery-board

oder wie könnte man das regeln?

Ausgabe auf einem kleinen Display etc. Hätte ich soweit schon fertig.. 
jetzt fehlt nur noch die Musikverarbeitung.

Danke & Grüße

von Soundfreund (Gast)


Lesenswert?

Required MathWorks™ products:

◾MATLAB
◾Signal Processing Toolbox™
◾DSP System Toolbox™
◾Simulink
◾MATLAB Coder™
◾Simulink Coder™
◾Fixed-Point Designer™
◾Embedded Coder™
◾Embedded Coder Support Package for STMicroelectronics STM32F4-Discovery 
Board
◾DSP System Toolbox Support Package for ARM Cortex-M Processors

Lizenzen ohne Ende - Na viel Spass! :-)

von Tobi (Gast)


Lesenswert?

Für deine Aufgabe sind iir filter geeignet. Die filter lassen sich in 
wenigen Zeilen code umsetzen und erfordern nicht viel Rechenzeit. Mit 
octave(open source alternative zu matlab) können die Koeffizienten 
berechnet und der resultierende filter simuliert werden. Ein stm32f4 
bietet ausreichend Rechenleistung um dein  Vorhaben auch mit höheren 
sampelraten umzusetzen.
Hier ein link zur Berechnung der Koeffizienten:
http://de.mathworks.com/help/signal/ug/iir-filter-design.html

von Tobi (Gast)


Lesenswert?

Hier noch ein link zur Umsetzung der filter in c.
http://www.fh-schmalkalden.de/schmalkaldenmedia/Realisierung_Digitaler_Filter_in_C-p-419.pdf
Auf Seite 14 befindet sich eine Realisierung eines iir filters in c.

von J. S. (engineer) Benutzerseite


Lesenswert?

Tobi schrieb:
> Hier noch ein link zur Umsetzung der filter
das sind aber FIR-Filter. Die sind für 3 Kanäle nicht so zweckmässig, 
weil man keinen nach unten / oben offenen Verlauf generieren kann.

Für den vorliegenden Fall würde ich 2 IIR-Filter empfehlen:

Bässe = LowCut1 (Input) mit Grenzfrequenz 1

Mitten = LowCut2 (Input-Bässe) mit Grenzfrequenz 2

Höhen = (Input - Bässe - Mitten)

Damit erhält man:

Bässe von 0 Hz - von 0Hz bis Grenzfrequenz 1
Höhen von Grenzfrequenz 1 bis unendlich

Damit lässt sich der Originalklang bei Verstärkung 0 exakt 
rekonstruieren.


Der einfachste Filter mit einem musiktauglichen flachem Verlauf 
funktioniert nach der Methode:

Neuer Wert = Input * k  + Alter Wert * (1-k)

von Tobi (Gast)


Lesenswert?

Die ersten seiten beschäftigen sich mit fir filtern. Die Seiten 14 und 
15 beschäftigen sich mit iir filtern

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
Noch kein Account? Hier anmelden.