Einfachses Filter designen

#3094521
Lesenswert?

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
#3095832
Lesenswert?

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?
#3099685
Lesenswert?

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.
Persönliche Seite #3135253
Lesenswert?

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"

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren