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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
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ürgen 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ürgen 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ürgen 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ürgen 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.