Antialias Filter für 10Hz

Hallo,

Marte Schwarz <marte.schwarz@gmx.de> wrote:

Völlig übertriebener Aufwand mit mäßiger Genauigkeit.
Wenn man Widerstandsänderungen essen will, dann macht man das
zweckmäßigerweise durch ein Rampenverfahren mit einem Komparator. Es
Ist es nicht egal ob ich es AD-Wanlde oder einen Komperator benutze?
Entweder meine letzen Bit's vom AD-Wandler wackeln oder der Komperator
wackelt.
Ausserdem brauche ich dann noch einen rel. guten DA-Wandler den ich
nicht auf dem uC integriert habe.
Ich könnte es noch via geglätteten PWM versuchen. Aber das wird wohl
nicht unbedingt genauer.


Hinweis zur Fa acam. Die machen das ultraoptimiert auf ASIC oder FPGA, das
Prinzip geht aber genauso gut, vielleicht nicht ganz so stromsparend, im ľC.
Gut. Für große Stückzahlen sicherlich am Ende günstiger.

Wenn Du 0,x K absolut haben willst, willst Du aber sicher keinen NTC
verwenden... Da führt dann am Platinsensor nichts vorbei.
Sicher? Es gibt NTC's mit 1% Genauigkeit. Damit komme ich in einem
begrenzte Temperaturbereich auf ca. 1/4K. (Rein vom der Widerstands-
und B-Wert-Toleranz)

Viele Grüße
Martin L.
 
Hallo,

Rainer Ziegenbein <rainer.ziegenbein@e-technik.tu-chemnitz.de> wrote:

Aehh. Guck Dir doch die Schaltung einfach an. Fuer Gleichspannung
wird das ein reiner Spannungsfolger - weil Du ja hoffentlich
beachtet hast, dass die Verstaerkung V gleich Eins sein muss.
Keine Frage. Die Schaltung wird bei 0Hz eine Verstärkung von 1 haben.
Nur dachte ich halt *vorher* es ginge nicht.

Die Rueckkopplung geht ja auf den Plus-Eingang, ist also keine
Gegen-, sondern eine Mitkopplung. Da schlagen die Toleranzen zu,
und die Geschichte wird nicht mehr stabil. (Sagen meine Buecher.)
Wer sind deine Bücher?

Tschüss
Martin L.
 
Martin Laabs wrote:

was sind VCVS-Filter, switched capacitor Filter?

Nein. Es sind "voltage-controlled voltage-source" Filter.
Umpf. Kanonen? Spatzen?

Ein Tiefpaß mit V=1 läßt natürlich den DC-Wert unverändert,
insofern ist mir nicht klar, wo da Probleme auftreten sollten.
Ich hab hier noch eine kleine Musterlösung parat für eine
sogenannte Sallen-Key-Struktur:

Ich dachte das geht nicht. Aber ich habe mich auch noch nicht
intensiver mit Filterdesign beschäftigt. Nur wenn ich mir den
Pol-Nullstellenplan mit dem Tomatenstangen/Reißzwecken-Gummihaut-
modell vorstelle, ist es schon ein Glücksfall wenn bei jw=0 die
Verstärkung gerade 1 ist.
Aehh. Guck Dir doch die Schaltung einfach an. Fuer Gleichspannung
wird das ein reiner Spannungsfolger - weil Du ja hoffentlich
beachtet hast, dass die Verstaerkung V gleich Eins sein muss.

Wieso sollte die Verstaerkung dann nicht gleich Eins sein?

Für die Ordnung 5 hab ich auch noch sowas, nur wird die
Anforderung an die Bauteiletoleranz dann sehr hoch und die
Verstärkung 1 läßt sich dann nicht erreichen.

Ist das eine praktische oder eine theoretische Einschränkung?
Lt. Literatur eine praktische.
Die Rueckkopplung geht ja auf den Plus-Eingang, ist also keine
Gegen-, sondern eine Mitkopplung. Da schlagen die Toleranzen zu,
und die Geschichte wird nicht mehr stabil. (Sagen meine Buecher.)

Gilt bei Sallen/Key-Struktur allgemein fuer hoehere Filterordnungen,
nicht nur speziell fuer 5. Ordnung.

Grusz,
Rainer
 
Martin Laabs wrote:

Aehh. Guck Dir doch die Schaltung einfach an. Fuer Gleich-
spannung wird das ein reiner Spannungsfolger - weil Du ja
hoffentlich beachtet hast, dass die Verstaerkung V gleich
Eins sein muss.

Keine Frage. Die Schaltung wird bei 0Hz eine Verstärkung
von 1 haben. Nur dachte ich halt *vorher* es ginge nicht.
Ach so - auch wieder logisch.

Die Rueckkopplung geht ja auf den Plus-Eingang, ist also
keine Gegen-, sondern eine Mitkopplung. Da schlagen die
Toleranzen zu, und die Geschichte wird nicht mehr stabil.
(Sagen meine Buecher.)

Wer sind deine Bücher?
Tietze/Schenk ist so selbstverstaendlich, dass es fast unnoetig
zu erwaehnen ist ;-)

Bemerkenswerter ist dies: Hans-Juergen Kowalski, "Berechnung
und Aufbau aktiver RC-Filter", Militaerverlag der DDR, 1988.
ISBN 3-327-00552-4

Ist eine relativ duenne Broschuere. Sehr kompakte Darstellung
(liegt deutlich schwerer im Magen als Tietze/Schenk), viele
Formeln, viel Ingenieurmathematik, alles auf der Schiene "ange-
wandte Systemtheorie" - also wenig nachbaufertige Schaltungen,
andererseits auch keine abstrakt-mathematische Darstellung.

Vorm Studium fand ich's voellig unverstaendlich; im Moment bin ich
der Meinung, dass an Grundlagen alles ueber RC-Filter drinsteht,
was man wissen muss.
Ist bestimmt in irgendeiner der Dresdner Bibliotheken zu finden.

Grusz aus Freiberg,
Rainer
 
Martin Laabs schrieb:

Zuerst
betrachtete ich es als kein großes Problem und berechnete fix einen
aktiven VCVS-Filter. Doch dann merkte ich, dass alle diese Filter
den Gleichanteil verstärken oder abschwächen was in dieser Anwendung
natürlich inakzeptabel ist.
Wenn Du schnell zum Ziel kommen willst, dann schau Dir mal auf der
Texas-Instruments-Website an, was dort für den guten alten UAF42 zur
Verfügung steht. Den IC selbst gibt es kaum noch (hab vor 2 Jahren mal
probiert, welche zu bekommen, der Disti meldete sich dann nach Monaten,
weil er endlich welche hatte), läßt sich aber problemlos mit einem
TL084, ein paar 49.9k-Widerständen und 1000pF/2% Kondensatoren
nachbauen. Dazu gibts ein Progrämmchen, mit dem Du Filter div.
Konfiguration fix berechnen kannst. Zur Änderung der Grenzfrequenzen
müssen 2 (max. 4) Widerstände geändert werden, von denen 2 gleiche
Werte haben. Für höhere Ordnungen als 2 einfach noch eins 1. Ordnung
davorschalten, oder mehrere dieser Schaltungen in Serie. Ist zwar nicht
bauelementeoptimiert, führt aber schnell zur Lösung. Und hat
natürlich V=1.

Winfried Büchsenschütz
 
Rafael Deliano <Rafael_Deliano@t-online.de> wrote:

Moin!

Passendes simples Kammfilter: letztes Sample wird um eine Periode
verzögert und dann vom neuen Meßwert subtrahiert wodurch eben dieser DC
wegfällt.
Leider hier deshalb nicht verwendbar: haut auch DC des Signals raus.
Man muß also doch die andere Variante und 100Hz nehmen.
Danke. Hatte mich schon gewundert, wie Du einen DC-Fehler nachträglich
wegfiltern willst, der im Signal drin aber nicht als solcher erkennbar
ist. Trostpreis: Mit 100Hz/3, 100Hz/5, 100Hz/7... funktionierts
natürlich auch, also hauptsache es liegen immer (n + 0,5) Perioden des
Störsignals zwischen den Messungen.

Gruß,
Michael.
 
Hi Martin,

Ist es nicht egal ob ich es AD-Wanlde oder einen Komperator benutze?
Entweder meine letzen Bit's vom AD-Wandler wackeln oder der Komperator
wackelt.
Ausserdem brauche ich dann noch einen rel. guten DA-Wandler den ich
nicht auf dem uC integriert habe.
Ich könnte es noch via geglätteten PWM versuchen. Aber das wird wohl
nicht unbedingt genauer.
Wozu den DA-Wandler? Ich glaube, Du hast das Prinzip noch nicht verstanden.
Die Rampe lässt man mit einem RC Glied laufen, ganz analog. Wenn man daann
den Kondensator zum Laden und Entladen und ggfs auch zum Vergleich mit einem
Referenzwiderstand benutzt, dann rechnet sich die Kapazität als solche
wieder heraus. Ebenso die Schaltschwelle als solche. Du brauchs also
eigentlich noch nicht einmal einen Komparator im engeren Sinne, ein
Digitaleingang mit Schmittrigger reicht schon und den sollten gute ľCs doch
schon haben. Wenn man dann die Messzeit kurz genug halten kann, dann stört
auch das Netzbrummen nicht, weil quasi gleichzeitig gemessen wird.
Alternativ macht man die rampe sehr langsam (>> 20 ms) und mittelt damit die
Brummstörung aus, das der RC ja als solcher schon ein Tiefpass ist

Sicher? Es gibt NTC's mit 1% Genauigkeit. Damit komme ich in einem
begrenzte Temperaturbereich auf ca. 1/4K. (Rein vom der Widerstands-
und B-Wert-Toleranz)
Mir hat man seinerzeit gesagt, man sollte sich auf NTC lieber nicht
verlassen, schon allein wegen der Drift über die Jahre. Allerdings war bei
mir auch 0,1 K gefordert.
Im Bereich der Wohnungstemperatur würde ich aber wohl eher auf 1N4148 gehen.
Die 2mV/Kelvin lassen sich in einer Brücke recht einfach messen und seien
auch relativ reproduzierbar, wenn Du schon den AD-Wandler übrig hast. Wenn
Du ohne auskommen kannst (Billigerer ľC) dann schau Dir wirklich das
Slope-Verfahren an, das ist einfach und sehr robust. Viele Messgeräte
verwenden dieses Verfahren schon lange, weil einfach billig und sehr genau.

Marte
 
Hallo Martin,

was sind VCVS-Filter, switched capacitor Filter?


Nein. Es sind "voltage-controlled voltage-source" Filter.
aha, also parametrische Filter, aber als Anti-Alias-TP sowas Schweres?

Ein Tiefpaß mit V=1 läßt natürlich den DC-Wert unverändert, insofern ist
mir nicht klar, wo da Probleme auftreten sollten. Ich hab hier noch eine
kleine Musterlösung parat für eine sogenannte Sallen-Key-Struktur:


Ich dachte das geht nicht. Aber ich habe mich auch noch nicht
intensiver mit Filterdesign beschäftigt. Nur wenn ich mir den
Pol-Nullstellenplan mit dem Tomatenstangen/Reißzwecken-Gummihautmodell
vorstelle, ist es schon ein Glücksfall wenn bei jw=0 die Verstärkung
gerade 1 ist.
Der Pol- Nullstellenplan wird doch eigentlich nur für theoretische
Betrachtungen benötigt, die Polstellen müssen doch nur in der negativen
Halbebene liegen, Grenzfall Integrator.

Für die Ordnung 5 hab ich auch noch sowas, nur wird die Anforderung an
die Bauteiletoleranz dann sehr hoch und die Verstärkung 1 läßt sich dann
nicht erreichen.


Ist das eine praktische oder eine theoretische Einschränkung?
Für geringe Empfindlichkeit bezüglich Toleranzen gibt es bessere
Schaltungsstrukturen als Sallen-Key, da nimmt man besser die
State-Variablen-Synthese. Mir ging es um minimalen Schaltungsaufwand.
Mit 1 OP ein Filter 5. Ordnung zu synthetisieren hat offenbar
mathematische Grenzen. Die Verstärkung von 2.5 im Durchlaßbereich läßt
sich scheinbar nur wenig variieren, weil sonst keine Lösung mehr
gefunden wird, zumindest nicht von mir. Ich habe das einmal vor langer
Zeit erfolgreich in der Praxis eingesetzt, die Gleichungen hatte ich
letztens noch gefunden, den mörderischen Aufwand hätte ich sonst für ein
Programm nicht getrieben. Aber wenn es Dich interessiert, für Ordnung 5
sieht das so aus:


Tiefpass:
---------


----------------------o------------------------
| | |
| Omega=1 | |
___ ___ |
___ C7 ___ C3 |
| | |\ |
___ ___ | ___ ___ | ___ | \ |
Ue O----|__|---o---|__|---o---|__|---o---|__|---o---|__|---o---| V
---o--O Ua
R10 | R8 R6 | R4 R2 | | /
| | | |/
___ ___ ___
___ C9 ___ C5 ___ C1
| | |
| | |
___ ___ ___




Bessel:
R2= 1.4937822467063186E+03 Ohm
R4= 4.1595972226185413E+03 Ohm
R6= 2.8370774263891330E+04 Ohm
R8= 3.2660935874360280E+03 Ohm
R10= 1.5489810935132887E+03 Ohm
C1= 1.0000000000000000E-04 Farad
C3= 1.0000000000000000E-04 Farad
C5= 1.0000000000000000E-04 Farad
C7= 1.0000000000000000E-04 Farad
C9= 1.0000000000000000E-03 Farad

V= 2.5000000000000000E+00

Butterworth:
R2= 2.3937564529060733E+03 Ohm
R4= 7.7650023196820712E+03 Ohm
R6= 4.4652813279893722E+04 Ohm
R8= 6.1393585313339900E+03 Ohm
R10= 1.9624862637022197E+03 Ohm
C1= 1.0000000000000000E-04 Farad
C3= 1.0000000000000000E-04 Farad
C5= 1.0000000000000000E-04 Farad
C7= 1.0000000000000000E-04 Farad
C9= 1.0000000000000000E-03 Farad

V= 2.5000000000000000E+00

Gauss:
R2= 1.0120045001853365E+03 Ohm
R4= 2.1642223954992414E+03 Ohm
R6= 1.8771740156725838E+04 Ohm
R8= 1.6121951072019519E+03 Ohm
R10= 1.2863493959041132E+03 Ohm
C1= 1.0000000000000000E-04 Farad
C3= 1.0000000000000000E-04 Farad
C5= 1.0000000000000000E-04 Farad
C7= 1.0000000000000000E-04 Farad
C9= 1.0000000000000000E-03 Farad

V= 2.5000000000000000E+00



Hochpass:
---------


------------------o-----------------------
| | |
| | |
_ Omega=1 _ |
| | | | |
|_| R7 |_| R3 |
| | |\ |
| | | \ |
Ue O---||---o---||---o---||---o---||---o---||---o---| V >----o---O Ua
C10 | C8 C6 | C4 C2 | | /
| | | |/
_ _ _
| | | | | |
|_| R9 |_| R5 |_| R1
| | |
| | |
___ ___ ___



Bessel:
R1= 1.0000000000000000E+04 Ohm
R3= 1.0000000000000000E+04 Ohm
R5= 1.0000000000000000E+04 Ohm
R7= 1.0000000000000000E+04 Ohm
R9= 1.0000000000000000E+03 Ohm
C2= 6.6944161520524656E-04 Farad
C4= 2.4040789203395082E-04 Farad
C6= 3.5247539975415540E-05 Farad
C8= 3.0617616220392116E-04 Farad
C10= 6.4558567188955881E-04 Farad

V= 2.5000000000000000E+00

Butterworth:
R1= 1.0000000000000000E+04 Ohm
R3= 1.0000000000000000E+04 Ohm
R5= 1.0000000000000000E+04 Ohm
R7= 1.0000000000000000E+04 Ohm
R9= 1.0000000000000000E+03 Ohm
C2= 4.1775344303969514E-04 Farad
C4= 1.2878296217185724E-04 Farad
C6= 2.2395005522536253E-05 Farad
C8= 1.6288346655374679E-04 Farad
C10= 5.0955770671918252E-04 Farad

V= 2.5000000000000000E+00

Gauss:
R1= 1.0000000000000000E+04 Ohm
R3= 1.0000000000000000E+04 Ohm
R5= 1.0000000000000000E+04 Ohm
R7= 1.0000000000000000E+04 Ohm
R9= 1.0000000000000000E+03 Ohm
C2= 9.8813789841533501E-04 Farad
C4= 4.6205972273441920E-04 Farad
C6= 5.3271566282665811E-05 Farad
C8= 6.2027232034933522E-04 Farad
C10= 7.7739376500981529E-04 Farad

V= 2.5000000000000000E+00

Ich hoffe Dein Zeilenumbruch ist lang genug eingestellt. Die Bauteile
mußt Du hier schon genau ausmessen, die Cs dürfen auf keinen Fall
keramisch sein, sondern Polypropylen, Styroflex oder sowas, sonst wird's
instabil. Für Richtigkeit kann ich nicht garantieren, aber teste es mal
mit Spice.


als Buffer durch Transistoren in Kollektorschaltung ersetzen. Beim
Tiefpaß wäre es sicher besser gewesen, die Cs vorzugeben anstatt der Rs,
aber dazu müßte ich alles neu berechnen. Der Vorteil des Tiefpasses ist
die Sperrdämpfung bei hohen Frequenzen, die nicht mehr vom OP abhängt
wegen dem passiven R1-C1.


Ja, das gefällt mir. Aber Operationsverstärker haben doch von
Natur aus ein Tiefpassverhalten. Warum sinkt dann die Sperrdämfpung
bei einigen Schaltungen wieder bei hohen Frequenzen?
Dann nimm die OPs einfach mal heraus und überlege Dir was passiert.

Die Werte sehen irgendwie so aus als hättest du sie aus einem
Progamm entnommen. Ist das selber geschrieben oder irgendwo ver-
fügbar?
Die Programme habe ich selbst geschrieben, weil ich die Gleichungen noch
gefunden hatte und ich grade so in der Übung war. Falls Du Interesse
daran hast, kann ich sie Dir per PM zuschicken, eine Webseite oder sowas
habe ich leider nicht.

nicht sagen. Man könnte es durch eine Simulation vorher abschätzen. Ein
einfaches digitales Filter könnte jedoch IMHO die Einstellzeit stark
vergrößern, wenn es nicht gerade ein transformierter Bessel-TP ist, der
auf Deinem uC aber vielleicht nicht realisierbar ist.


Naja. Ich würde es mal probieren. Denn ich will es ja nicht besonders
einfach machen sondern auch was dabei lernen.
Ich muss ja auch nicht kontinuierliche messen sondern kann erst ein
paar Sampels in den Speicher schreiben und dann filtern.
Du kannst es sicher mit einem eigenen Programm simulieren. Da Du einen
Regelkreis hast, geht das Filter mit ein, deshalb ist ein sehr tief
liegender Pol in irgenwelchen Filtern für die Stabilität ungünstig,
genauso wieder laufzeitbehaftete Filterstrukturen wie FIR, falls Du es
digital machen möchtest.

Auf den analogen
TP würde ich keinesfalls verzichten, der Controller koppelt Dir jede
Menge HF ein denke ich mal.


Der AD-Wanlder ist im uC integriert. Wenn da etwas einkoppelt bekomme
ich es nicht mehr heraus.
Dafür ist der Antialias-TP ja auch da.

Ob sich Spikes etc. von der digialen Spannungsversorgung in die
analoge einkoppeln wird sich zeigen.
Das wird in Deinem Fall sicher nicht so kritisch sein, schließlich
arbeitest Du nicht mit 16 Bits. Ansonsten sind bei AD-Wandlern die Bits
11 sowieso immer gestört.
mfg. Winfried
 
Hallo Martin,

Martin Laabs wrote:

Hallo,

Marte Schwarz <marte.schwarz@gmx.de> wrote:


Völlig übertriebener Aufwand mit mäßiger Genauigkeit.
Wenn man Widerstandsänderungen essen will, dann macht man das
zweckmäßigerweise durch ein Rampenverfahren mit einem Komparator. Es


Ist es nicht egal ob ich es AD-Wanlde oder einen Komperator benutze?
Entweder meine letzen Bit's vom AD-Wandler wackeln oder der Komperator
wackelt.
mit Multislope-Verfahren kann man IMHO sehr hohe Genauigkeiten
erreichen, sowas ist glaube ich in den 6-stelligen Digitalmultimetern
drin. Ich hatte mal so eins geliehen und meine, das brauchte Minuten
Einschwingzeit auf 6 Stellen oder so, genau weiß ich es nicht mehr.

Ausserdem brauche ich dann noch einen rel. guten DA-Wandler den ich
nicht auf dem uC integriert habe.
Ich könnte es noch via geglätteten PWM versuchen. Aber das wird wohl
nicht unbedingt genauer.
Ich sehe da keinen Unterschied zu irgendeinem DA-Wandler, außer daß Du
den Rekonstruktions-TP etwas tiefer legen mußt.

Hinweis zur Fa acam. Die machen das ultraoptimiert auf ASIC oder FPGA, das
Prinzip geht aber genauso gut, vielleicht nicht ganz so stromsparend, im ľC.


Gut. Für große Stückzahlen sicherlich am Ende günstiger.


Wenn Du 0,x K absolut haben willst, willst Du aber sicher keinen NTC
verwenden... Da führt dann am Platinsensor nichts vorbei.


Sicher? Es gibt NTC's mit 1% Genauigkeit. Damit komme ich in einem
begrenzte Temperaturbereich auf ca. 1/4K. (Rein vom der Widerstands-
und B-Wert-Toleranz)
Ich meine, bei KTYxxx hab ich im Datenblatt eine Meßwertreihe gesehen,
aus der Du Dir eine genaue Gleichung ermitteln kannst, die supergenau
sein müßte, wenn diese Werte stimmen. Vorausgesetzt, ich verwechsle das
jetzt nicht.

mfg. Winfried
 
Hallo Marte,

Sicher? Es gibt NTC's mit 1% Genauigkeit. Damit komme ich in einem
begrenzte Temperaturbereich auf ca. 1/4K. (Rein vom der Widerstands-
und B-Wert-Toleranz)


Mir hat man seinerzeit gesagt, man sollte sich auf NTC lieber nicht
verlassen, schon allein wegen der Drift über die Jahre. Allerdings war bei
mir auch 0,1 K gefordert.
das ist schon extrem, ohne Linearisierung sicher nicht zu erreichen.
Halbleitersensoren sollten jedoch IMHO nicht driften, solange sie nicht
zu heiß werden.

Im Bereich der Wohnungstemperatur würde ich aber wohl eher auf 1N4148 gehen.
Die 2mV/Kelvin lassen sich in einer Brücke recht einfach messen und seien
auch relativ reproduzierbar, wenn Du schon den AD-Wandler übrig hast. Wenn
Ich hab vor ewigen Zeiten mal einen Temperatursensor mit als Diode
geschaltetem Transistor gebaut. Wenn Du Basis und Kollektor verbindest,
bekommst Du eine fast ideale Diode, die sich sehr genau an die
Gleichungen hält und Du kannst sie anhand der Stromverstärkung auch
recht genau reproduzieren. So eine Diode hab ich mal mit OP und
Brückenschaltung linearisiert, rechnerische Linearität ca. 1K über den
Bereich 0-100 Grad Celsius. Das war übrigens meine erste Schaltung, die
ich mit Rechnerhilfe optimiert habe, PC war damals ein ZX81 mit 2K Ram ;-).

Allerdings lag die Hauptschwierigkeit beim Temperaturabgleich. Eis hat
keineswegs 0 Grad und kochendes Wasser auch nicht 100 Grad Celsius. Das
hängt z.B. vom Luftdruck und der Zusammensetzung ab. Außerdem hatte ich
kein Thermogefäß, sodaß in dem blubbernden Wasser die Temperatur mit 0.1
K Genauigkeit gemessenem Referenzthermometer je nach Stelle um mehrere K
schwankte. Dabei mußte ich es dann belassen und für eine
Heizungsregelung sollte das aber ausreichen.

mfg. Winfried
 

Welcome to EDABoard.com

Sponsor

Back
Top