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
Digitalfilter als FIR oder IIR lassen sich platzsparend implementieren und bieten den benötigten Funktionsumfang.
Vielleicht so etwas wie auf Seite 2 ? http://www.analog.com/media/en/training-seminars/tutorials/MT-208.pdf
Markus H. schrieb: > Prinzipiell sollte es doch ICs geben, welche direkt einen digital > verstellbaren analogen Filter abbilden. https://www.maximintegrated.com/en/products/analog/analog-filters.html vor allem https://para.maximintegrated.com/search.mvp?fam=filt&273=Switched%20Cap http://cds.linear.com/docs/en/application-note/an40f.pdf
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
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?
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.
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
Hallo, hier findet man einige Grundlagen: https://www.elektronik-kompendium.de/public/schaerer/scf1.htm Mit freundlichem Gruß
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 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
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)
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)!
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.
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
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
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.
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.
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?
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.
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.
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?
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.
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...
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).
Den finde ich nirgends. Ohne die -8 ist es jedenfalls auch nur ein Tiefpass.
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 (-;
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.
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.