Ist ein Frequenzfilter-Programm realisierbar?
-
Hallo liebe Forengemeinde,
ich bin neu hier und möchte mich in Zukunft mehr mit dem Thema Programmierung auseinander setzen.
Dazu hab ich auch gleich ein kleines Projekt mitgebracht, was ich für meine kleine PA Anlage gebrauchen kann --> einen kleinen LOW Cut Filter.
Normalerweise wirds sowas mit OPV`s gemacht.
Meine Vorstellung:
-Ein ROM mit ein paar Eingängen
-1 bzw. 2 Eingänge werden mit einem normalen Audiosignal belegt (wie es aus dem Cinch-Kabel kommt)
-an die anderen Eingänge kommen Signale von nen Kippschalter, hier kann man die LOW-Cut Frequenz einstellen (35/40/45 HZ)
-am Ausgang liegt mein gefiltertes SignalSo, nun seid ihr gefragt.
Ist sowas machbar? Kann ein Programm alle Frequenzen unterhalb von z.B. 35Hz Killen?Danke für eure Antworten
-
Hi,
-Ein ROM mit ein paar Eingängen
Klar, ein ROM hat meist ein paar Eingänge, die Frage wäre nur: wozu brauchst du ein ROM?!
Ist sowas machbar? Kann ein Programm alle Frequenzen unterhalb von z.B. 35Hz Killen?
Ja, das geht.
Die Frage ist nur, wäre hier eine Frequenzweiche nicht deutlich sinnvoller?
-
man kann.
zwei möglichkeiten:
a) blockweise fft machen und in der frequenzwelt alles machen, was du magst, dann wieder zurückrechnen. vorteil: kannst die filter basteln, wie du magst und es ist voll eazy.
b) die filterhadware simulieren. vorteil: sehr perfomant. nachteil: kompliziert und praktisch nicht wartbar.
-
c) einen IIR-Filter
-
Erstmal Thx für die Antworten, freut mich, dass es schonmal möglich ist !!!
blub² schrieb:
wozu brauchst du ein ROM?!
Ein Programmierbaren Speicher halt
Ob es nun unbedingt sinnvoll ist oder nicht...
Habe mich in lezter zeit mit der ganzen Elektronik Problematik allgemein auseinandergesetzt bis hin zum Filter mit OPV.
Hab bisher nur passive Frequenzweichen gebaut und so allgemein vorhandene Schaltpläne nachgebaut.
Nun wirds Zeit für was neues, eben diese Projekt
Programmiergerät bekomm ich ran, sollte kein Problem sein.
So, wie fange ich nun an? Welche Software brauche ich? Wo gibts dafür Einsteigertipps usw.?
Mit a) b) und c) kann ich leider nix anfangen
-
Das liest sich als wüsstest du schon was für ein Controller das ist den du benutzen willst? Dann lies dich mal ein wie der arbeitet. Ansonsten solltest du dir natürlich noch eine Sprache aneignen. Denkbar wären z.B. Assembler, C und C++. Hast du Assembler bzw. Compiler für diese?
-
Nun ich hatte leztens den ATTiny2312 zur Hand, habe dort eine Schaltung fürn Taschenrechner nachgebaut und hier die Software überspielt.
Wenn ich aber so in das Programm hinein schaue, sehe ich = nichts
-
c) den Filter als digitales Filter programmieren, die Koeffizienten der Differenzengleichung aus der Frequenzganggleichung gewinnen (Übergang von Frequenzgang auf z-Transformierte). Funktioniert super, ist sehr performant programmierbar (z.B. mit MAC-Befehl) und auch gut wartbar.
-
volkard schrieb:
b) die filterhadware simulieren. vorteil: sehr perfomant. nachteil: kompliziert und praktisch nicht wartbar.
Was ist an IIR Filtern praktisch nicht wartbar?
Für einfache IIR Filter mit wenigen Taps gibt es AFAIK durchaus gute Formeln die sehr stabile Filter ausspucken.----
@Dorfler1000:
Wieso willst du es denn nicht mit ganz normalen analogen Filtern machen?Digital wird vermutlich mit deinem Kenntnisstand nicht drin sein. Dazu müsstest du einen DSP mit zwei Wandlern (1x AD und 1x DA) zusammenknoten, und natürlich noch den DSP programmieren. Beides weitaus komplizierter als ein paar OpAmps, Kondensatoren und Widerstände zusammenzuschalten.
Wenn du irgendwoher ein fertiges Board bekommst wäre es vielleicht denkbar. Aber nichtmal dann würde ich sowas digital machen, wenn es nur um einen einfachen Subsonic-Filter geht.
Mach einen Linkwitz-Riley Filter 4. Ordnung (24 dB/Okt), und lass gut sein.
-
edit: ich ziehe mich zur Konsultation zurück.
-
Marc++us schrieb:
c) den Filter als digitales Filter programmieren, die Koeffizienten der Differenzengleichung aus der Frequenzganggleichung gewinnen (Übergang von Frequenzgang auf z-Transformierte). Funktioniert super, ist sehr performant programmierbar (z.B. mit MAC-Befehl) und auch gut wartbar.
Meinst du einen straight-forward implementierten FIR Filter?
Bei kleinen Filter-Kernels ist das OK. Bei grösseren ist es deutlich performater die Kreuzkorrelation mittels FFT zu berechnen. Dadurch steigt zwar die Latenz, dafür sinkt die Komplexität von O(M * N) auf O(M * log N) (M=#samples, N=kernel-grösse).
Bei Filtern mit einigen tausend Taps kann das schon nen deutlichen Unterschied machen. Und gerade im Bassbereich hat man oft lange Filter...
-
@Marc++us @hustbaer: ist mir völlig neu, daß man dazu einen guten zugang hat. nett, zu wissen.
ich hatte mit meiner performance-aussage nur mini-filter im sinn. aber habe jetzt nichts mehr im sinn. nicht, bevor ich mich in die neue welt eingelesen habe.
-
hustbaer schrieb:
Marc++us schrieb:
c) den Filter als digitales Filter programmieren, die Koeffizienten der Differenzengleichung aus der Frequenzganggleichung gewinnen (Übergang von Frequenzgang auf z-Transformierte). Funktioniert super, ist sehr performant programmierbar (z.B. mit MAC-Befehl) und auch gut wartbar.
Meinst du einen straight-forward implementierten FIR Filter?
Nein, er meint einen straight-forward implementierten IIR-Filter.
-
volkard schrieb:
@Marc++us @hustbaer: ist mir völlig neu, daß man dazu einen guten zugang hat. nett, zu wissen.
Das ist eigentlich total alt. Design im "analogen", dann Diskretisierung mit z.B. der bilinearen Transformation.
-
Hi,
also ist das ganze doch nicht so einfach wie ich mir das vorstellte!!??
Mit analogen Werten kann son Programm/Speicherbaustein nichts anfangen??
Muss eine AD Umwandlung erfolgen?
-
Dorfler1000 schrieb:
Hi,
also ist das ganze doch nicht so einfach wie ich mir das vorstellte!!??
Mit analogen Werten kann son Programm/Speicherbaustein nichts anfangen??
Muss eine AD Umwandlung erfolgen?
OMG.
Wenn du nichtmal weisst was du nicht weisst, wie willst du dann eine Schaltung aufbauen???
-
Tim schrieb:
hustbaer schrieb:
Marc++us schrieb:
c) den Filter als digitales Filter programmieren, die Koeffizienten der Differenzengleichung aus der Frequenzganggleichung gewinnen (Übergang von Frequenzgang auf z-Transformierte). Funktioniert super, ist sehr performant programmierbar (z.B. mit MAC-Befehl) und auch gut wartbar.
Meinst du einen straight-forward implementierten FIR Filter?
Nein, er meint einen straight-forward implementierten IIR-Filter.
Hihi. OK. Immer diese Fachbegriffe
EDIT: Hier fehlt mir wohl gerade die nötige Mathematik
Aber... wenn ich es richtig verstehe muss man sich die Frequenzganggleichung schon "passend" aussuchen, um einen sinnvollen IIR Filter zu bekommen (d.h. einen der nicht zu gross wird). Korrekt?
-
hustbaer schrieb:
OMG.
Wenn du nichtmal weisst was du nicht weisst, wie willst du dann eine Schaltung aufbauen???Was soll das?
Ich absoluter Neuling hier im Gebiet, Schaltungen aufbauen kein Ding, aber von solch IIR Filter oder weiß der Geier hab ich keine Ahnung...
-
hustbaer schrieb:
Aber... wenn ich es richtig verstehe muss man sich die Frequenzganggleichung schon "passend" aussuchen, um einen sinnvollen IIR Filter zu bekommen (d.h. einen der nicht zu gross wird). Korrekt?
Ich verstehe ehrlich gesagt nicht so ganz was du meinst
-
Dorfler1000 schrieb:
hustbaer schrieb:
OMG.
Wenn du nichtmal weisst was du nicht weisst, wie willst du dann eine Schaltung aufbauen???Was soll das?
Ich absoluter Neuling hier im Gebiet, Schaltungen aufbauen kein Ding, aber von solch IIR Filter oder weiß der Geier hab ich keine Ahnung...Was hustbär dir klarmachen wollte ist, dass dir auf den relevanten Gebieten (Mikrocontroller, Programmierung, "digital") einfach die Substanz fehlt. Das musst du ändern, denn ansonsten heisst die Antwort auf die Frage "Ist ein Frequenzfilter-Programm realisierbar?": "Ja, aber nicht von dir". Klingt hart, ist aber so. Nicht böse gemeint.
-
Dorfler1000 schrieb:
Ich absoluter Neuling hier im Gebiet, Schaltungen aufbauen kein Ding, aber von solch IIR Filter oder weiß der Geier hab ich keine Ahnung...
Du mußt für eine digitale Verarbeitung natürlich aus den analogen Werten digitale Werte machen, und mit denen muß man ein wenig anders umgehen. Vielleicht wäre es eine gute Idee, sich vorher ein paar Gedanken zu machen, bevor du einfach blind drauflosbastelst.