Hallo zusammen Ich versuchen ein digitales Hochpassfilter zu designen, welches ich sehr einfach und effizient implementieren kann. Für eine einfache Implementation ist folgendes entschedend: -Ordnung (also Länge des Filters) -Anzahl Koeffizienten, welchen nicht 0 sind -Auflösung, welche die einzelnen Koeffizienten benötigen. (z.B. 3 Bit) Gibt es ein Tool, mit welchem ich solche Filter designen kann? Das fdatool von Matlab kann zwar Filter designen, jedoch werden diese nicht mit den quantisierten Koeffizienten optimiert. Liebe Grüsse aus der Schweiz
Die Koeffizienten deines Filters hängen doch von der Applikation ab und nicht vom Tool zum Designen. Von daher versteh ich die Frage nicht wirklich....
Ja klar hängen die Koeffizienten schlussendlich von der Applikation ab. Doch um die geeignetsten Koeffizienten zu finden nutze ich jeweils ein Tool. Ich würde gerne beispielsweise einige Punkte im Amplitudengang vorgeben und das Tool gibt mir dann die einfachsten quantisierten Koeffizienten zurück. Die meisten Tool optimieren die Filter mit Fliesskommagenauigkeit und quantisieren danach. Ich denke es wäre besser, wenn die Quantisierung schon während der Optimierung betrachtet würde. Oder bin ich auf dem völlig falschen Weg und muss es mir einfach mit Try and Error zusammenbasteln und hoffen, dass die Quantisierung dann ok ist?
Bei der analogen Filterberechnung rechnet man auch erst mal mit idealen Bauteilen. Danach simuliert man das Filter mit realen Bauteilmodellen, vor allem die Induktivitäten mit sehr endlicher Güte. Dann kann man den Simulator noch ein bißchen optimieren lassen. Ich fürchte, das ist beim digitalen Filter das gleiche Probelm. Die Filtertheorie beschreibt erst mal nur ideale Bauteile. Was stört denn bei der Quantisierung, schwingt das Filter oder ist nur die Abweichung vom Idealwert zu groß? Ich habe mal von Berechnungsmethoden gelesen, wo die "Empfindlichkeit" der einzelnen Koeffizienten berechnet wird, wie stark Abweichungen in das gesamte Filter eingehen. Das war in ISBN 0201361302 zum Thema "multiplierless filters". Da werden möglichst nahe liegende einfache Binärbrüche als Koeffizienten gesucht, um die Multiplikation in kleinen FPGAs durch Schiebeoperationen zu ersetzen.
Eigentlich berechnen die Filter-Design-Programme die Kurven schon diskret, also inklusive Quantisierung und Sampling, Tapzahl. Schlussendlich kann man das aber auch leicht selbst verifizieren, wenn man sich die Wirkung des Filters ansieht und mit dem idealen vergleicht. Klar ist, dass jede Rundung da eine Einschränkung macht, da sich der Wert des Signals ändert und auch die Wirkung der Koeffizienten. Die müssen teilweise sehr genau sein, um nicht unakzeptable Verzerrungen zu generieren. Als Faustformel kann man davon ausgehen, dass die Summe der Fehler der Koeffizientenrundungen maximal in der Grössenordung der Eingangsgenauigkeit liegen darf. Ein 256 TAP Filter summiert da statistisch (1 Sigma-Grenze) das 8-fache des durchschnittlichen Rundungsfehlers. Also muss die Auflösung der Koeffizienten mal um 3 Bit besser sein, als die der eingehenden Werte. Wenn man eine Güte haben will, die nur von den Fehlern des Filters selber beeinflusst sein soll, bräuchte man da schon die 3-Sigma-Grenze = 7 von 8 Bit - bei 1024 Taps also 8-9 Bit besser. Ein Audiofilter, das bei 1024 TAPs oder mehr 24 Bit-Daten verarbeiten soll, muss daher schon mit 32-Bit breiten Koeffizienten gefüttert werden, wenn es Sinn machen soll. Im CPU-Bereich passt das so recht gut, problematisch wird es bei FPGAs: Beitrag "Re: Digitales Mischpult mit FPGA"
Christoph Kessler (db1uq) schrieb: > Bei der analogen Filterberechnung rechnet man auch erst mal mit idealen > > Bauteilen. Danach simuliert man das Filter mit realen Bauteilmodellen, ich rechne nie mit idealen Bauteilen und simulieren schon gar nicht, weil die Simulatin mit idealen Bauteilen meist mislingt oder damische Ergebnisse bringt.
Schau dir Winfilter an. Ist free und meiner Meinung nach viel besser wie fdatool. Als Quantisierung kannst du da zwar nur zwischen 8bit, 16bit und float umstellen, aber vlt. hilt dir das schon weiter.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.