Forum: Digitale Signalverarbeitung / DSP / Machine Learning Möglichst steilen digitalen Filter bauen


von Nathan der Weise (Gast)


Lesenswert?

Welche Form digitialer Filter ist zu verwenden, wenn die Aufgabe darin 
besteht, einen möglichst steilen Filter zu erhalten, weil der Abstand 
der gewünschten höchsten Welle zur Samlefreuqenz sehr gering ist?

Also konkret sollen Frequenzen bis 1.2 MHz mit einer Abtasrate von z.B. 
nur 3MHz gefiltert werden. Benötigt wird ein Bandpass von z.B. 500kHz 
und 1.5MHz

Einen steilen Filter bei FIR bekomme ich nach meinem Wissen durch eine 
ausreichend große Anzahl von Samples, die betrachtet werden. Allerdings 
ergibt das ein ausgeprägtes "pre ringing", wie ich mir habe sagen 
lassen.

Rechenleistung wäre vorhanden und muss nicht sonderlich berücksichtigt 
werden.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Nathan der Weise schrieb:
> Also konkret sollen Frequenzen bis 1.2 MHz mit einer Abtasrate von z.B.
> nur 3MHz gefiltert werden. Benötigt wird ein Bandpass von z.B. 500kHz
> und 1.5MHz
Das liest sich jetzt fuer mich so, als braeuchtest du einen Hochpass, 
der von 500kHz...Fsample/2 alles durchlaesst und z.b. 499kHz schon 
tuechtig daempft oder doch was anderes?

Nathan der Weise schrieb:
> Allerdings
> ergibt das ein ausgeprägtes "pre ringing",
Und? Kratzt dich das? Klar; wenn man steilflankige Filter haben will, 
dann macht die Impulsantwort halt ein paar Faxen... Wenn du 
unsymmetrische FIRs oder IIRs ohne Gruppenlaufzeitkorrektur hernimmst, 
kannste pre ringing gegen post ringing eintauschen, wuerd' das was 
helfen?

Gruss
WK

von Udo S. (urschmitt)


Lesenswert?

Nathan der Weise schrieb:
> weil der Abstand
> der gewünschten höchsten Welle zur Samlefreuqenz sehr gering ist?

Klingt irgendwie nach einem Anti Aliasing Filter.
Aber der muss vor den A/D und analog.

von Wühlhase (Gast)


Lesenswert?

Nathan der Weise schrieb:
> Rechenleistung wäre vorhanden und muss nicht sonderlich berücksichtigt
> werden.

FFT, die gewünschten Frequenzen mit 0 multiplizieren und dann wieder in 
den Zeitbereich zurücktransformieren.

Ich denke, steilflankiger geht es nicht.

von HAM (Gast)


Lesenswert?

Cauer geht am steilsten ;-)

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Wühlhase schrieb:
> Ich denke, steilflankiger geht es nicht.

Ich denke, umstaendlicher geht es nicht.

Gruss
WK

von HAM (Gast)


Lesenswert?

Das ist ein in der Praxis übliches Verfahren und nennt sich "Fast 
ConVolution".

Es hat sogar den Vorteil, das es weniger Rundungsfehler gibt als beim 
FIR

von Dergute W. (derguteweka)


Lesenswert?

Moin,
HAM schrieb:
> Das ist ein in der Praxis übliches Verfahren und nennt sich "Fast
> ConVolution".
Ja, das hoer' ich nicht zum ersten mal.

> Es hat sogar den Vorteil, das es weniger Rundungsfehler gibt als beim
> FIR
Soso. Und dass man schoen alles komplex rechnen darf. Also statt einmal 
reell multiplizieren,lieber 4 Multiplikationen und 2 Additionen.
Wer's halt mag.

Gruss
WK

von HAM (Gast)


Lesenswert?

Im Basisband sind die Filterkoeffizienten eh komplex.

von J. S. (engineer) Benutzerseite


Lesenswert?

Dergute W. schrieb:
>> Es hat sogar den Vorteil, das es weniger Rundungsfehler gibt als beim
>> FIR
> Soso.
Das sehe ich auch nicht ein: Der FIR berechnet sich genau so mit 
Multiplikationen aus Sample und Koeffizient, wie das in der FFT 
passiert. Nur die Implementierung ist eine andere. Das zu vergleichen 
erfordert einen genaueren Blick auf die interne Auflösung. 
Grundsätztlich kann ich jeden FIR so hochauflösend bauen, wie ich es 
brauche (und die FFT auch).

von Dergute W. (derguteweka)


Lesenswert?

Moin,

HAM schrieb:
> Im Basisband sind die Filterkoeffizienten eh komplex.

Und nachts ist's kaelter als draussen. Oder was soll das bedeuten?

Gruss
WK

von J. S. (engineer) Benutzerseite


Lesenswert?

Nathan der Weise schrieb:
> Welche Form digitialer Filter ist zu verwenden, wenn die Aufgabe darin
> besteht, einen möglichst steilen Filter zu erhalten, weil der Abstand
> der gewünschten höchsten Welle zur Samlefreuqenz sehr gering ist?

Das hängt von der Art des Frequenzverlaufs ab. Ein BiQuad kann da 
durchaus reichen, bei komplizierten Verläufen, eher ein FIR mit 
ausreichenden Auflösung (läuft auf die Lösung mit iFFT hinaus).

Über ein Fenster wird man sich auch noch Gedanken machen dürfen.

von Bernadette (Gast)


Lesenswert?

Es geht doch auch mit Hardware, 74LS123 o.ä. (nachtriggerbarer Monoflop)

1. '123 Eingangssignal an B1 liefert Q1=1 und Q1 bleibt 1 wenn f>500kHz
2. '123 Eingangssignal an B2 liefert Q2=1 und Q2 bleibt 1 wenn f>1500kHz

Mit Q1 ein Flop-Flop setzen und mit Q2 einen Reset ausführen.

Der Ausgang des Flip-Flops "und" das Eingangssignal auf ein "und"-Gatter 
ergibt an dessen Ausgang das Bandpass-Signal von 500kHz bis 1500kHz.


B.

von J. S. (engineer) Benutzerseite


Lesenswert?

Was willst du denn damit filtern?

Beitrag #7116113 wurde von einem Moderator gelöscht.
von W.S. (Gast)


Lesenswert?

Nathan der Weise schrieb:
> Allerdings
> ergibt das ein ausgeprägtes "pre ringing", wie ich mir habe sagen
> lassen.

Und wer hat dir das gesagt?
Ein FIR Filter hat eine "Erinnerung", die nur so lang ist wie es Taps 
hat. Da gibt es kein pre- oder post-Ringing. Sowas hat man nur im 
Analogen und bei IIR-Filtern. O du Weiser.

Nathan der Weise schrieb:
> Welche Form digitialer Filter ist zu verwenden, wenn die Aufgabe darin
> besteht,...

Das klingt mir aber gefährlich nach BWL-Schlauheit. Frage dich lieber, 
was du tatsächlich vorhast. Daraus ergeben sich erstmal die 
eigentlichen Eckwerte, wie z.B. wieviele Rechentakte du zwischen zwei 
Samples hast und welche Selektivität du tatsächlich benötigst. Woraus 
dann die Erkenntnis "machbar" oder "nicht machbar" folgt und dann an 
irgend einer Stelle die Ziele korrigiert werden müssen.

W.S.

von chris_ (Gast)


Lesenswert?

>Einen steilen Filter bei FIR bekomme ich nach meinem Wissen durch eine
>ausreichend große Anzahl von Samples, die betrachtet werden. Allerdings
>ergibt das ein ausgeprägtes "pre ringing", wie ich mir habe sagen
>lassen.

Das grundlegende Problem bei dieser Art von Aufgabe ist, dass die Leute 
den Widerspruch zwischen der Zeit- und Frequenzauflösung nicht 
verstehen.
Man kann keinen beliebig steilflankigen Filter bauen, ohne im 
Zeitbereich lange Artefakte bei z.B. einem rechteckförmigen Sprung zu 
bekommen.
Beim FIR-Filter könnte man vielleicht von einem "pre-ringing" sprechen 
(wenn man die inhärente Zeitverschiebung des FIR-Filters nicht 
beachtet).
Bei einem steilflankigen IIR-Filter hat man auf jeden Fall ein starkes 
"after-ringing".

von W.S. (Gast)


Angehängte Dateien:

Lesenswert?

So, mal zur Klarheit:
Hier mal eine Simulation so eines Filters. Ein Tiefpaß bis fast zur 
Fsample/2 Grenze. Man sieht beim Filterkernel, daß der selbst bei einem 
kurzen Impuls kein Klingeln zeigt, sondern lediglich den Impuls 
verformt. Eben das typische Verhalten eines FIR Filters.

W.S.

von Audiomann (Gast)


Lesenswert?

W.S. schrieb:
> daß der selbst bei einem
> kurzen Impuls kein Klingeln zeigt,
Das würde man aber nur im Zeitbereich sehen. DAS Diagramm musst du 
plotten.

von J. S. (engineer) Benutzerseite


Lesenswert?

chris_ schrieb:
> Man kann keinen beliebig steilflankigen Filter bauen, ohne im
> Zeitbereich lange Artefakte bei z.B. einem rechteckförmigen Sprung zu
> bekommen.

Eventuell hilft das weiter:
https://cravedsp.com/blog/linear-phase-eq-explained

Generell kann man das durch mehr TAPs bekämpfen, bei relativer 
Abflachung des Filters - auch weil die Fensterfunktion eine größere 
Überdeckung hat.

chris_ schrieb:
> Bei einem steilflankigen IIR-Filter hat man auf jeden Fall ein starkes
> "after-ringing".
... was unangenehmer sein kann.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Jürgen S. schrieb:
>> Bei einem steilflankigen IIR-Filter hat man auf jeden Fall ein starkes
>> "after-ringing".
> ... was unangenehmer sein kann.

Ja, das kenn ich - wenn man z.b. beim Mexianer was scharfes gegessen 
hat.

scnr,
WK

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.