Forum: Analoge Elektronik und Schaltungstechnik Digital verstellbarer Analoger Filter


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 Markus H. (haniham) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Hallo Meine Lieben,

In meiner bestehenden Schaltung werden Sensordaten mit dem ADC 
gesampelt(genauer ein Shocksensor mit Ladungsverstärker).
Leider sind sehr viele niederfrequente Störungen auf dem Signal, welche 
ich gerne durch frequenzmäßiges herausfiltern vor der AD-Wandlung 
entfernen möchte.

Prinzipiell sollte es doch ICs geben, welche direkt einen digital 
verstellbaren analogen Filter abbilden.

Leider finde ich zu dem, Thema kaum etwas. Ich habe bloß bisher diese 
für den MHz bereich gefunden: 
http://www.analog.com/en/products/rf-microwave/tunable-filters.html

ideal für mich Wäre ein Banddpass IC welcher im Bereich von etwa 100Hz 
bis 100kHz verstellbar ist.

Hat hier jemand einen Tipp für mich?

Viele Grüße und schonmal besten Dank,
Markus

von THOR (Gast)


Bewertung
2 lesenswert
nicht lesenswert
Digitalfilter als FIR oder IIR lassen sich platzsparend implementieren 
und bieten den benötigten Funktionsumfang.

von pegel (Gast)


Bewertung
0 lesenswert
nicht lesenswert

von Michael B. (laberkopp)


Bewertung
0 lesenswert
nicht lesenswert

von Axel S. (a-za-z0-9)


Bewertung
0 lesenswert
nicht lesenswert
Markus H. schrieb:
> ideal für mich Wäre ein Banddpass IC welcher im Bereich von etwa 100Hz
> bis 100kHz verstellbar ist.

Mit der oberen Grenze wird es etwas aufwendiger, aber im Prinzip macht 
man das heutzutage komplett digital. Einfach hinreichend häufig abtasten 
und dann einen digitalen Filter draufwerfen. Für 100kHz wird es ein DSP 
sein müssen, darunter reicht ein potenter µC wie etwa ein Cortex-M4.

Alternativ kann man den Filter als switched capacitor (SC) Filter 
bauen. Oder ganz analog als state variable filter [1]. Letzteres läßt 
sich per multiplizierendem DAC auch digital in der Frequenz verstellen 
[2].


[1] https://en.wikipedia.org/wiki/State_variable_filter
[2] http://www.ti.com/lit/ug/tidu543/tidu543.pdf

von Rolf S. (audiorolf)


Bewertung
0 lesenswert
nicht lesenswert
Warum muss der Filter im Betrieb verstellbar sein? Wäre es nicht besser, 
die Daten parallel unter mehreren Annahmen zu filtern und bei Auftreten 
einer Störung den besten Pfad heraus zu nehmen?

von Possetitjel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Axel S. schrieb:

> Alternativ kann man den Filter als switched capacitor (SC)
> Filter bauen. Oder ganz analog als state variable filter [1].
> Letzteres läßt sich per multiplizierendem DAC auch digital
> in der Frequenz verstellen [2].

Wenn man mit gröberen Stufen zufrieden ist, lässt sich der
multiplizierende DAC sicher auch durch Analogschalter
ersetzen.

von Hp M. (nachtmix)


Bewertung
0 lesenswert
nicht lesenswert
Markus H. schrieb:
> Hat hier jemand einen Tipp für mich?

http://www.linear.com/parametric/filters

Das sind S/C-Filter. Bei "Clock tunable = yes" brauchst nur die 
Taktfrequenz zu verändern.

: Bearbeitet durch User
von Christian S. (roehrenvorheizer)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,


hier findet man einige Grundlagen:

https://www.elektronik-kompendium.de/public/schaerer/scf1.htm

Mit freundlichem Gruß

von A. S. (achs)


Bewertung
0 lesenswert
nicht lesenswert
Beschreibe doch mal, warum die obere Grenze variabel sein muss.
Das ist meist nur der Fall, wenn der ADC verschiedenen Abtastraten habt.

Beschreibe doch mal, warum die untere Grenze variable sein muss.
Das ist meist nur der Fall, wenn der ADC nicht digital verarbeitet wird.

von Bernhard R. (bernhard_r874)


Bewertung
0 lesenswert
nicht lesenswert
Von LT gibts da einiges, z.B. LTC1069-1
Die Frequenz des Tiefpass kann mit einem PWM-Signal eingestellt werden.
Funktioniert super.
Gibt es vielleicht auch als Hochpass

: Bearbeitet durch User
von Henrik V. (henrik_v)


Bewertung
0 lesenswert
nicht lesenswert
Wenn dig. Filtern nicht möglich ist, zB weil die Eingangsstufe 
übersteuert wird, sollte auch in der Eingangsstufe des LV am R_k 
'gedreht' werden.
Z.B. ein digitales Poti vom OP-Ausgang gen Masse an dessen Wiper der R_k 
hängt.
Eingangsstufe Übersteuert wg. LF passt aber irgendwie nicht zu Shock ...
Also ein kleiner IIR HP ist doch nicht soo wild.

(Für die, die nicht wissen, was ein Ladungsverstärker ist: Die 
Verstärkung wird über C_k eingestellt, das HP-Verhalten über den R_k)

von Alex W. (a20q90)


Bewertung
0 lesenswert
nicht lesenswert
THOR schrieb:
> FIR oder IIR

Lieber FIR als IIR denn IIR bringt grundsätzlich ein Grundrauschen mit! 
Das kann man nicht abstellen wegen dem "Infinite" (Ausgang ist mit 
Eingang verknüpft)!

von Der Andere (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Was ist die Abtastrate?
Muss der obere Wert wirklich verstellbar sein?
Man braucht eh einen Alti Aliasing Filter.
Und den Rest (untere Grenzfrequenz) kann man wie schon gesagt sehr 
wahrscheinlich in Software machen.

von Christoph db1uq K. (christoph_kessler)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Vor einiger Zeit habe ich genau so ein Filter aufgebaut, hier ein paar 
Bilder, eine Tabelle zu den einstellbaren Taktfrequenzen und drei 
Messungen mit "Visual Analyzer" von sillanumsoft mit der Soundkarte.
Das ist alles etwas alte Technik aus den 90ern, aber noch erhältlich. 
Die ICs hatte ich von RS Conponents.
Der I2C-Bus des Dallas-Oszillators war etwas seltsam, im Datenblatt 
fehlte die Info, dass nach Schreibvorgängen auf das interne Flash eine 
Totzeit entsteht. Eine Anfrage beim Techsupport von TI habe ich hier am 
Ende gepostet:
https://www.raspberrypi.org/forums/viewtopic.php?f=32&t=168873

von Markus H. (haniham) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Danke schon mal für den vielen Input. Gerade in Richtung Digitaler 
Filter sollte soetwas ja auch möglich sein. Jedoch erfordert dass dann 
einiges an Softwareändderungsarbeit, insbesondere in Richtung 
(logischerweise) Filterung und Signaltriggerung. Wenn ich halt einfach 
vorher den Filter hinsetze wäre das Problem auf die Schnelle weg.

Also ich glaube ich muss noch etwas weiter ausholen:
Aktuelle MCU ist ein STM32F411 mit maximal 100MHz CPU Takt und der ADC 
muss aufgrund von einer geforderten genauen Zeiterkennung bei aktuell 
mindestens 1 MHz Sampeln.
Das wären dann etwa 100 Takte/Sample

Die Störungen liegen im Bereich von 20-100Hz das Signal etwa bei wenigen 
kHz (17 kHz)

Aktuell gehen die Signalleitung vom Ladungsverstärker direkt in den ADC.

Nur zu Digitalen Filtern auf dem STM32 habe ich überhaupt keine Ahnung. 
Vermutlich muss ich dann bei jedem Sample einen Interrupt generieren 
darauf meinen Filter loslassen, die Grenzwerte kontrollieren und die 
Daten im Ram abspeichern.

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Bewertung
0 lesenswert
nicht lesenswert
Markus H. schrieb:
> Aktuelle MCU ist ein STM32F411 mit maximal 100MHz CPU Takt und der ADC
> muss aufgrund von einer geforderten genauen Zeiterkennung bei aktuell
> mindestens 1 MHz Sampeln.
>
> Die Störungen liegen im Bereich von 20-100Hz das Signal etwa bei wenigen
> kHz (17 kHz)

Wenn du keine Probleme mit Übersteuerung oder so hast, dann kannst du 
das mit einem relativ einfachen Filter digital herausrechnen.

> Nur zu Digitalen Filtern auf dem STM32 habe ich überhaupt keine Ahnung.

Dann wäre jetzt ein guter Zeitpunkt, dich darin einzulesen.

Aber auch ein analoger Filter ist bei dieser Konstellation einfach: du 
brauchst ja nur einen Hochpaß, der dein Signal durchläßt und alles 
darunter dämpft. Wenn dein Signal bei 17kHz liegt (wieso sind deine 
Angaben da immer so vage?) dann leg die Grenzfrequenz halt auf 10kHz. Da 
muß dann auch nichts einstellbar sein. Schon ein simpler Filter 1. 
Ordnung (RC-Glied) fällt im Sperrbereich mit 6dB pro Oktave. Deine 
Störung bei 100Hz wird dann schon um 40dB unterdrückt.

von Der Andere (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Markus H. schrieb:
> Die Störungen liegen im Bereich von 20-100Hz das Signal etwa bei wenigen
> kHz (17 kHz)

Wofür willst du dann einen Bandpass der über 3 Dekaden einstellbar ist. 
Da reicht wie Axel schon rschreibt

Axel S. schrieb:
> brauchst ja nur einen Hochpaß, der dein Signal durchläßt und alles
> darunter dämpft. ...


> dann leg die Grenzfrequenz halt auf 10kHz.

Wenn er bei 17kHz und vieleicht auch noch etwas darunter messen will. 
würde ich die Grenzfrequenz vieleicht etwas darunter legen so auf 1-2 
kHz und dann halt eher 2. Ordnung.

Markus H. schrieb:
> Aktuell gehen die Signalleitung vom Ladungsverstärker direkt in den ADC.

Ich hoffe doch du hast ein Ali Aliasing Filter oder kannst garantieren 
daß keine höhere Frequenzen als 500kHz in dem Signal enthalten sind.

von A. S. (achs)


Bewertung
0 lesenswert
nicht lesenswert
Markus H. schrieb:

> aufgrund von einer geforderten genauen Zeiterkennung bei aktuell
> mindestens 1 MHz Sampeln.

> das Signal etwa bei wenigen kHz (17 kHz)

Wieso beschleicht mich hier ein komisches Gefühl?

von Ich (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wenn deine Signalfrequenz unter 20 kHz bleibt, solltest du dir auch mal 
den TPIC8101 anschauen. Der ist für die Auswertung Klopfsensoren im KFZ 
gedacht, also auch für adungsemttierende Sensoren. Der hat 
Ladungsverstärker, Alising-Filter und Bandpass integriert.
Hier im Forum und im Wiki Gibt es auch viele Informationen zu dem. 
Nachteil ist nur, dass der IC im Einzelstück ziemlich teuer ist, 5-8€ 
pro Stück.

Bitte schön.

von Christoph db1uq K. (christoph_kessler)


Bewertung
0 lesenswert
nicht lesenswert
Ein Bandpass ist wahrscheinlich zu schmalbandig, das klingt eher nach 
einer Hintereinanderschaltung von Hoch- und Tiefpass. Muss das 
Nutzsignal nicht herunter bis DC erfasst werden?
Ein Hochpass ist digital immer problematisch, weil weiter oben die 
Taktfrequenzen und irgendwelche Aliasfrequenzen liegen.

von Markus H. (haniham) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Achim S. schrieb:
> Markus H. schrieb:
>
>> aufgrund von einer geforderten genauen Zeiterkennung bei aktuell
>> mindestens 1 MHz Sampeln.
>
>> das Signal etwa bei wenigen kHz (17 kHz)
>
> Wieso beschleicht mich hier ein komisches Gefühl?

Das weiß ich nicht - Lebensmittelvergiftung vielleicht ? (-;
Nein, was bereitet dir denn Sorgen.

Ich möchte für meine MA die Ausbreitungsgeschwindigkeit bzw. die Zeit 
von Erschütterungswellen in Materialien untersuchen. Und auf so etwa 1 
Meter wird sich das voraussichtlich im 3-Stelligen uS Bereich abspielen.

Da das alles halt recht Forschungslastig ist sollte es halt universell 
einstellbar und optimierbar sein. Deswegen auch der verstellbare Filter, 
falls sich eben mal die Sörung ändern sollten oder andere Objekte 
gemessen werden sollen.

Der Verstellbare Filter vor dem ADC Port wäre halt die Quick and Dirty 
Lösung gewesen

Anbei mal ein Bild wie es der STM Sampelt und dann heraus schreibt.

Ja Anti-Aliasing Filter vor dem Sampeln fehlt definitiv - und der kann 
ja nicht in SW realisiert werden, "da dann das Kind schon in den Brunnen 
gefallen ist"

Hat zufällig jemand eine Gute Ressource wie ich einen Filter 
entrsprechender Ordnung auf dem STM32 realisiere?

von Johnny B. (johnnyb)


Bewertung
0 lesenswert
nicht lesenswert
Markus H. schrieb:
> Ja Anti-Aliasing Filter vor dem Sampeln fehlt definitiv - und der kann
> ja nicht in SW realisiert werden

Da reicht aber oft schon ein RC-Glied, an dem sollte es also nicht 
scheitern.

von Possetitjel (Gast)


Bewertung
2 lesenswert
nicht lesenswert
Markus H. schrieb:

> Da das alles halt recht Forschungslastig ist sollte
> es halt universell einstellbar und optimierbar sein.
> Deswegen auch der verstellbare Filter, falls sich
> eben mal die Sörung ändern sollten oder andere Objekte
> gemessen werden sollen.

Naja.

In der Guten Alten Zeit (tm) hätte man da eine Pfosten-
steckerleiste hingebaut, auf der Eingang, Ausgang,
GND, +/- Ub anliegen. Dort kommt dann ein Tocherplatinchen
drauf, das entweder eine Brücke von IN zu OUT enthält
oder aber ein Filter 5. Ordnung, aufgebaut mit einem
Doppel-OPV.

Aber da das einfach, billig und analog ist, ist das
voll Achtziger und geht schonmal gar nicht...

von Lurchi (Gast)


Bewertung
0 lesenswert
nicht lesenswert
In dem Fall sollte ein festes Filter ausreichen, zwischen 100 Hz für die 
Störungen und 17 kHz für das Signal ist reichlich Raum. Steckbar zum 
ggf. analogen anpassen ist keine so schlechte Option. Einen kleinen Rest 
bei niedrigen Frequenzen kann man auch gut digital per Filter 
unterdrücken. Je nach Ausführung darf das auch eine IIR Version sein.

Der AA filter kann wahrscheinlich auch eher einfach sein. Der 
Ladungsverstärker dämpft von sich aus schon die wirklich hohen 
Frequenzen und zwischen den 17 kHz und 1 MHz Samplingrate ist auch viel 
Abstand.

Allerdings kann so ein Piezosensor auch recht hochfrequente Anteile 
auffangen. 17 kHz sind schon recht niedrig für Messungen mit 
Körperschall. An sich würde man der eher deutlich höhere Frequenzen (MHz 
Bereich) bevorzugen - da hat man dann eine saubere Trennung in Volumen 
und Oberflächen-moden (z.B. Reighly Wellen).

von Duennwandiger Troll (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Allenfalls ein LTC1564-8

von Christoph db1uq K. (christoph_kessler)


Bewertung
0 lesenswert
nicht lesenswert
Den finde ich nirgends. Ohne die -8 ist es jedenfalls auch nur ein 
Tiefpass.

von Markus H. (haniham) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Christoph K. schrieb:
> Den finde ich nirgends. Ohne die -8 ist es jedenfalls auch nur ein
> Tiefpass.

Genau - ich auch nicht

Es wird jetzt wohl so werden, dass ich einfach mit Steckbrücken die 
Grenzen einstellbar mache.

Den hochpass direkt als variabler Widerstand über dem Speicher C (da 
hätte mir die Hochohmigkeit mit automatischer Verstellbarkeit einiges an 
Problemen bereitet) und danach noch steckbar veränderlicher Tiefpass.

Wenn die Schaltpläne soweit sind teile ich Sie auch mal hier (-;

von Lurchi (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Für ein 17 kHz Nutzsignal und wenn man eine sehr hoch aufgelöste 
Zeitmessung haben will, ist ein switched capacitor filter nicht die 
passende Wahl. Da hat man eine Art Abtastung mit einer Art S&H im 50-100 
kHz Bereich - da dann schon lieber gleich ganz digital.

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.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

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