Spaß machender Crashkurs in der Programmierung von Filtern/EQs?

F
Finn Anklam
Registrierter Benutzer
Zuletzt hier
10.04.26
Registriert
05.04.26
Beiträge
7
Kekse
178
Das möchte ich schon lange mal angehen, nur gibt es soviel Anderes zu tun. Aber vielleicht geht das ja auch relativ simpel mit für wenige Wochen täglich eine halbe Stunde oder so?

Samplerates, Bitresolutionen, Gain (etc.) habe ich alles schon in C wirklich gründlich "durchgekaut". Und ich kann sogar in Bits und Bytes denken :gruebel: ... aber auch :m_dblbass::m_sing::m_git2::m_drummer:

Immer wenn ich was Konkreteres über Filter-Algorithmen lese, merke ich, dass mir da noch irgendein Schlüssel fehlt, um Zugang dazu zu bekommen. Falls ich überhaupt etwas davon verstanden habe, geht es wohl darum, eine Anzahl von Samples des Originalsignals verzögert und mit Gain und ggf. Phasenumkehr (neg. Gain) wieder zum Originalsignal hinzuzuaddieren. Okay, das könnte ich auch selbst heraustüfteln, aber dafür gibt's bestimmt auch schon Standardalgorithmen, oder?

Ich muss wohl "nur" umsetzen können:
- digital delay lines
- FIR digital filter
- die Anzahl der Taps
- pre-/post-ringing
- die Parameter (ich vermute: welches Originalsample wann mit welchem Gain dazuaddieren?)
- einfache Filtertypen (Hochpass und Tiefpass erster und ggf. zweiter Ordnung würden schon reichen, falls 6dB/12dB bei digitalen Filtern überhaupt wichtig wären und nicht nur eine Nachbildung der analogen Vorlagen)
- und das Ganze idealerweise im Rahmen einer Echtzeit-Anwendung (konkret: gibt es Probleme beim Wechsel des aktuell zu berechnenden Puffers in Zusammenhang mit der Anzahl der Taps und falls ja, wie löst man das am Geschicktesten?)

Ich glaube zu verstehen, dass digitale Filter ein riesiges Thema sind, das nicht mal eben so zu machen ist. Aber ich brauche wahrscheinlich nur das, was in der analogen Welt Widerstand, Kondensator und Spule wären. Na, okay, vielleicht noch eine Röhre dazu. Sozusagen Woodworking 1.01 - Brett, Hammer, Nagel, Säge und los. Intarsien können dann später ja noch kommen. Und der mathematische, theoretische Hintergrund ist hoffentlich erstmal eher unwichtig ...

Kennt ihr da was? So wir programmieren unseren ersten Filter for Dummies mit schrittweiser Verfeinerung durch jede weitere Lektion? Muss auch nicht C sein, ich kann auch andere Sprachen lesen (Assembler wäre aber zu anstrengend). Zur Not kann ich auch ein Buch kaufen, aber Vieles gibt's ja schon als kostenloses PDF im Netz.

Das wär' echt nett. Vielen Dank im Voraus.
 
Zuletzt bearbeitet:
Na ja, ob das so einfach nebenbei geht, weiß ich nicht. Da steckt schon etwas Theorie bzgl. Signalverarbeitung etc. dahinter.

Meine ganz klare Empfehlung ist das Fach-Buch:
Audioprogrammierung von Steppat und Schmidt

Schön übersichtlich und strukturiert aufgebaut mit jeweiligen kurzen Programmierbeispielen.
In meinen Augen hätte es zwar für Laien, die diese Thematik nicht studieren, ruhig etwas ausführlicher sein können, so muss man sich etwas einabeiten in die Thematik.
Aber die Grundlagen werden halt kurz aber gut und treffend auf den Punkt gebracht.
 
Zuletzt bearbeitet:
dass mir da noch irgendein Schlüssel fehlt, um Zugang dazu zu bekommen

Falls ich überhaupt etwas davon verstanden habe, geht es wohl darum, eine Anzahl von Samples des Originalsignals verzögert und mit Gain und ggf. Phasenumkehr (neg. Gain) wieder zum Originalsignal hinzuzuaddieren.
Das ist richtig und falsch zugleich. Versuchen wir einen Perspektivwechsel.

"Filter" sind seit der analogen Nachrichtentechnik bekannt. Transformiert man ihre zeitliche Änderung in den Frequenzbereich mittels der Fourier-Transformation (FT, später Fast FT=FFT) im Komplexen, so werden viele Dinge leichter zu sehen, zu manipulieren, zu verstehen, vorherzusehen usw.

Noch handlicher wird's, wenn man mittels der verwandten Laplace-Transformation vollständig auf die komplexe Größe s übergeht. Damit lassen sich lineare analoge Netzwerke mathematisch beschreiben, und anhand von Polen und Nullstellen Resonanzfrequenzen, Dämpfungen und Aufschaukeln berechnen. Anwendung vom RC-Glied bis hin zur ausgekanutschten analogen HF-(Kleinsignal-) Regelung.

Sicheres Verständnis und Hantieren damit sollte, aus meiner Sicht, die Grundlage sein, um auf die digitale Welt überzugehen. Denn auch nach fröhlichen Versuchen kommt früher oder später die Frage "Warum" ?

Denn was hat man gemacht, als Signale nicht mehr analog-kontinuierlich sondern nur digital-zeit-und-amplituden-diskret vorlagen? Man hat o.g. Konzepte übertragen, auch mit der Absicht, dort Vertrautes wiederzufinden (Pole und Nullstellen beispielsweise, oder Stabilitätsbetrachtungen). D.h. mathematisch wurden:
  • aus kontinuierlichen Signalen diskrete (Zeit und Amplitude)
  • aus Integralen Summen
  • usw.
z-Transormation wäre eine der Mathematiken, die Du Dir dabei zumindest in den Grundlagen aneignen solltest. Und ja, die ist nicht mehr unbedingt elegant.

Neben den o.g. bekannten Effekten bei analogen Filtern weisen digitale gefilterte Signale eine Reihe von Besonderheiten/Artefakten auf, die aus ihrer diskreten und damit mehrdeutigen Eigenschaft resultieren, etwa das Abtasttheorem (damit verbunden Samplingraten), Kammfiltereffekte usw.

Die Deutung der z-Gleichung eines digitalen Filters für deren Umsetzung führt dann auf das, was Du eingangs (mikroskopisch geschaut) nanntest:
  • Verzögerungsglieder mit ICs
  • entsprechende C- oder Assembler-Konstrukte für Mikroprozessoren
  • usw.
  • Phasenlage ist dann immer so wie mit Henne und Ei im Angesicht einer Verzögerung...

Neben ihren "Dreck"-Effekten ermöglichten digitale Filter anderseits auch erst interessante praktische Anwendungen, wie etwa:
  • Hardwareunabhängigkeit (Preis ist dann eben der nachrichtentechnische "Dreck")
  • Kalman -Filter (Raktensuchkopf etc.)
  • Korrelationstechniken (im tiefen Rauschen verborgene GPS-Signale klar herausholen)
  • und wenn man so will, weit jenseits der z-Transformation, das, was GPT-Bots heute mit ihrer Künstlichen Inkompetenz tun (Rekursive Neuronale Netze RNN)

Soweit die Vogelperspektive.

Kennt ihr da was? So wir programmieren unseren ersten Filter for Dummies mit schrittweiser Verfeinerung durch jede weitere Lektion?
Die Frage ist ja, wonach Du schon geguckt hast und welchen Stand Du (als nächstes) erreichen möchtest.

Schon leichte Suchen nach o.g. Stichworten (z-Transformation, DFT usw.) führt, ggf. mit Zusatzangabe, locker auf zahlreiche Hochschulskripte im .pdf Format. Muss man halt schauen.

Deren Literaturverweise oder geforderte Literaturkenntnisse führen zu zeitgemäßer Standardliteratur auf diesem Gebiet.

Und auch der Buchhandel oder die lokale Technische Universität wird da Einiges im Bestand haben.

Und Filter-Bibliotheken gibt es in nahezu jeder Programmier- und Skriptsprache in allen Geschmacksrichtungen, mit und ohne GUI ... ist ja alles nicht mehr so ganz neu :)

Vielleicht wäre ein Kontakt zu einer Volkshochschule oder Uni sinnvoll? Weniger wegen der Kurse, sondern mehr um sich mehr Klarheit zu verschaffen, was Du wirklich brauchst oder möchtest.

Ich sehe, dass Du einige Vorkenntnisse hast, so dass ein "für Dummie" Ansatz oder Videoclips immer nur zum meist oberflächlichen Wiederholen des bereits Bekannten führen. Insofern ... ein passender Kontakt in Deiner Nähe ist Gold wert.

Ich muss wohl "nur" umsetzen können:
- digital delay lines
- FIR digital filter
- die Anzahl der Taps
- pre-/post-ringing
- die Parameter (ich vermute: welches Originalsample wann mit welchem Gain dazuaddieren?)
- einfache Filtertypen (Hochpass und Tiefpass erster und ggf. zweiter Ordnung würden schon reichen, falls 6dB/12dB bei digitalen Filtern überhaupt wichtig wären und nicht nur eine Nachbildung der analogen Vorlagen)
- und das Ganze idealerweise im Rahmen einer Echtzeit-Anwendung (konkret: gibt es Probleme beim Wechsel des aktuell zu berechnenden Puffers in Zusammenhang mit der Anzahl der Taps und falls ja, wie löst man das am Geschicktesten?)
Tja, das hier ist ein Mix aus notwendigen theoretischen Kenntnissen (s.o.), realisierungsabhängigen erwünschten wie unerwünschten Effekten uvm.

Bei heutiger Technologie kannst Du im Audiobereich von Echtzeitanwendung ausgehen: Du filterst ja nicht jenseits der 10 GHz oder so ... :D

Und so nebenbei sind auch manche digitalen Mixed-Signal-Implementierungen on-Chip "froh" über so manches interne oder externe RC-Glied, etwa um Artefakte im Frequenzbereich zu begrenzen 🤓
 

Ähnliche Themen

Martman
Antworten
40
Aufrufe
19K
Martman
Martman
XaserIII
Antworten
0
Aufrufe
13K
XaserIII
XaserIII
Mfk0815
Antworten
12
Aufrufe
17K
nicknick
nicknick
G
Antworten
17
Aufrufe
8K
Tonsortierer
T

Unser weiteres Online-Angebot:
Bassic.de · Deejayforum.de · Sequencer.de · Clavio.de · Guitarworld.de · Recording.de

Musiker-Board Logo
Zurück
Oben