RC-Filter digital rueckgaengig

  • Thread starter Matthias Eckel-Binder
  • Start date
M

Matthias Eckel-Binder

Guest
Hallo,

ich habe in einer Exceltabelle Daten eines Analogsignals vom Oszilloskop mit
1 Sample/2 Nanosekunden. Das Analogsignal durchlief ein RC-Filter (Hochpass)
1.Ordnung mit 0.3Hz Grenzfrequenz. Ich möchte nun das Signal vor dem Filter
durch Berechnung in Excel (wäre mir am liebsten) oder in einem Mathetool
zurückgewinnen. Meine Fragen:

1. ist das analytisch Möglich mit genau einer Lösung?

2. Wer kann -bei positiver Antwort 1- Hinweise für die Realisierung in Excel
geben.


Danke schonmal
Matthias
 
"Matthias Eckel-Binder" <news@mebweb.biz> writes:

Hallo,

ich habe in einer Exceltabelle Daten eines Analogsignals vom Oszilloskop mit
1 Sample/2 Nanosekunden. Das Analogsignal durchlief ein RC-Filter (Hochpass)
500 MHz Samplerate.

1.Ordnung mit 0.3Hz Grenzfrequenz. Ich möchte nun das Signal vor dem Filter
0.3Hz Grenzfrequenz.

Wenn Du 10000 Samples hast (uebliche Oszi-Speichertiefe) sind das
5/10000 Sekunden, Frequenzen unter 2KHz fallen also aus deiner Messung
voellig raus. Das ist um einen Faktor 10000 oder 4 Dekaden von deiner
Grenzfrequenz weg.

durch Berechnung in Excel (wäre mir am liebsten) oder in einem Mathetool
zurückgewinnen. Meine Fragen:

1. ist das analytisch Möglich mit genau einer Lösung?
Sowieso schon mal gleich gar nicht weil der Gleichstromanteil
fehlt. Ansonsten unterscheidet sich im *gemessenen* Frequenzbereich
(s.O.) dein gemsssenes Signal (erst recht im Rhamen der
Osziaufloesung) nicht von dem vor dem Filter.

--
Dr. Juergen Hannappel http://lisa2.physik.uni-bonn.de/~hannappe
mailto:hannappel@physik.uni-bonn.de Phone: +49 228 73 2447 FAX ... 7869
Physikalisches Institut der Uni Bonn Nussallee 12, D-53115 Bonn, Germany
CERN: Phone: +412276 76461 Fax: ..77930 Bat. 892-R-A13 CH-1211 Geneve 23
 
ich habe in einer Exceltabelle Daten eines Analogsignals vom Oszilloskop
mit
1 Sample/2 Nanosekunden. Das Analogsignal durchlief ein RC-Filter
(Hochpass)

500 MHz Samplerate.
Sorry hab mich um den Faktor 1000 vertan, ich habe 1 Sample / 2
Microsekunden.

1.Ordnung mit 0.3Hz Grenzfrequenz. Ich möchte nun das Signal vor dem
Filter

0.3Hz Grenzfrequenz.

Wenn Du 10000 Samples hast (uebliche Oszi-Speichertiefe) sind das
5/10000 Sekunden, Frequenzen unter 2KHz fallen also aus deiner Messung
voellig raus. Das ist um einen Faktor 10000 oder 4 Dekaden von deiner
Grenzfrequenz weg.
Ich habe 55000 Samples


Sowieso schon mal gleich gar nicht weil der Gleichstromanteil
fehlt. Ansonsten unterscheidet sich im *gemessenen* Frequenzbereich
(s.O.) dein gemsssenes Signal (erst recht im Rhamen der
Osziaufloesung) nicht von dem vor dem Filter.

Wenn ich jetzt den Gleichstromanteil venachlässigen kann, weil der bekannt
ist, kann ich doch zumindest Sprünge im Gleichstromanteil während der
Messung zurückrechnen, da diese zunächst ja nur "langsam" gedämpft werden
(exponentiel wegen des Kondensators), oder hab ich da einen Denkfehler?
 
Hallo Matthias,

Selbst wenn man einen Hochpass darueber legt, bleibt trotzdem das
Problem, dass viele Oszilloskope nur mit 6 bis 8 bit Aufloesung
abtasten. Selbst bei repetitivem Sampling werden es nicht allzuviel
mehr. Dann geht das restaurierte Signal schon bei ein paar zig Hertz im
Rauschen unter.

Gruesse, Joerg

http://www.analogconsultants.com
 
Hallo Joerg,

| Selbst wenn man einen Hochpass darueber legt, bleibt trotzdem das
| Problem, dass viele Oszilloskope nur mit 6 bis 8 bit Aufloesung
| abtasten. Selbst bei repetitivem Sampling werden es nicht allzuviel
| mehr. Dann geht das restaurierte Signal schon bei ein paar zig Hertz
im
| Rauschen unter.
|

mit 55000 Samples scheints schon was besseres zu sein...
Mir scheint das aber eher ein Problem mit der Systemtheorie zu sein,
von der der Gute nicht viel versteht.

Das Stichwort für das effektive googeln, bzw Nachschlagen in
Lehrbüchern könnte dann doch "Sprungantwort" sein, oder wie siehst Du
das?

MArtin
 
Das Analogsignal durchlief ein RC-Filter (Hochpass) 1.Ordnung mit > 0.3Hz Grenzfrequenz. Ich möchte nun das Signal vor dem Filter
zurückgewinnen.
Wenns nur um ein Denkmodell geht sollte man den umgekehrten Fall
nehmen: man hat einen Temperaturfühler dessen Zeitkonstante genähert
1 pol Tiefpaßfilter mit Grenzfrequenz 0,3 Hz entspricht:

---R--+- x
C
|
GND

Um schnellere Reaktion bei Messung zu erhalten schaltet man dem einen
1pol RC-Hochpaß 0,3 Hz nach ( der allerdings DC-Anteil
erhalten muß ):

+-C1-+
| |
x -+-R1-+- y
|
R2
|
GND

Nachteil der Lösung ist das so ein Diffenzierer Rauschen verstärkt,
weil er ja die Bandbreite erhöht.

Da der Tiefpaß Frequenzanteile bei sehr hohen Frequenzen gegen Null
bzw. ins Rauschen reduziert hat, sind sie im Eingangssignal nichtmehr
vorhanden, können also auch nicht rückgewonnen werden.
Trotzdem kann man die ursprüngliche Grenzfrequenz des Temperatur-
fühlers etwas erhöhen.

Hardwareschaltung kann natürlich in Software nachgebildet
werden, vgl 1pol IIR Filter.

MfG JRD
 
mit 55000 Samples scheints schon was besseres zu sein...
Mir scheint das aber eher ein Problem mit der Systemtheorie zu sein,
von der der Gute nicht viel versteht.
Schön, dass ich jetzt schon in der dritten Person Antworten bekomme... Da
ich ja von Systemtheorie nicht so viel verstehe, dann sag mir halt einfach
aufgrund welchen Gesetztes oder Kriteriums es nicht möglich ist. Für das
gesamte Spektrum ist es selbstverständlich nicht rekonstruierbar. Aber wenn
mir eine Lösung auf ein bestimmtes Frequenzband beschränkt genügt, dann
sollte es doch gehen.

Das Stichwort für das effektive googeln, bzw Nachschlagen in
Lehrbüchern könnte dann doch "Sprungantwort" sein, oder wie siehst Du
das?
Was willst Du mir mit der Sprungantwort sagen? Die Sprungantwort eines RC
Hochpasses ist eine Abklingende e-Funktion....
 
"Matthias Eckel-Binder" <news@mebweb.biz> schrieb im Newsbeitrag
news:cbcea3$60r$1@online.de...
Hallo,

ich habe in einer Exceltabelle Daten eines Analogsignals vom Oszilloskop
mit
1 Sample/2 Nanosekunden. Das Analogsignal durchlief ein RC-Filter
(Hochpass)
1.Ordnung mit 0.3Hz Grenzfrequenz. Ich möchte nun das Signal vor dem
Filter
durch Berechnung in Excel (wäre mir am liebsten) oder in einem Mathetool
zurückgewinnen. Meine Fragen:

1. ist das analytisch Möglich mit genau einer Lösung?
Hallo Matthias,
im Prinzip ja, abgesehen von einem DC-Offset.

Dein Eingangsfilter hat die Übertragungsfunktion

H(f) = jwT/(1+jwT) mit T=1/(2pi*0.3Hz)=0.48s = R*C

Schalte ein Filter mit inverser Funktion dahinter mit

X(f)= (1+jwT)/jwT = 1/jwT + 1

Diese Funktion muß man in ein digitales Filter umformen und
dann das Signal(Abtastwerte) durch dieses Filter schieben.
1/wT ist ein Integrator(=Aufsummierer mit angepasster Verstärkung).
+1 bedeutet addieren des Eingangssignals.

Das ergibt dann die Gesamtübertragungsfunktion
Y(f) = H(f)*X(f) = jwT/(1+jwT) * (1+jwT)/jwT = 1
Das gilt nur für f > 0Hz, also nicht für DC.


Welche Signalform hast du?
Wie groß ist denn die kleinste Frequenz in deinem Signal?

Gruß
Helmut
 
Hallo Matthias,
im Prinzip ja, abgesehen von einem DC-Offset.
Hallo Helmut,
genau; da aber dieser bekannt ist, ist das kein weiteres Problem.


Dein Eingangsfilter hat die Übertragungsfunktion

H(f) = jwT/(1+jwT) mit T=1/(2pi*0.3Hz)=0.48s = R*C

Schalte ein Filter mit inverser Funktion dahinter mit

X(f)= (1+jwT)/jwT = 1/jwT + 1

Diese Funktion muß man in ein digitales Filter umformen und
dann das Signal(Abtastwerte) durch dieses Filter schieben.
1/wT ist ein Integrator(=Aufsummierer mit angepasster Verstärkung).
+1 bedeutet addieren des Eingangssignals.

Das ergibt dann die Gesamtübertragungsfunktion
Y(f) = H(f)*X(f) = jwT/(1+jwT) * (1+jwT)/jwT = 1
Das gilt nur für f > 0Hz, also nicht für DC.
Vielen Dank!!! Ich werds mal ausprobieren. Aber was verstehst Du unter
"angepasster" Verstärkung?

Welche Signalform hast du?
Wie groß ist denn die kleinste Frequenz in deinem Signal?
Die Signalform ist ein Sprung (zum Zeitpunkt t>0; etwa nach 25ms) mit einer
Anstiegszeit von etwa 20ms. Das ganze Signal ist (55000 Samples * 0,000002s
= 110ms lang). Danke nochmal für die Hilfe!

Gruß
Helmut
Gruß
Matthias
 
"Matthias Eckel-Binder" <news@mebweb.biz> schrieb im Newsbeitrag
news:cbct29$94u$1@online.de...
Hallo Matthias,
im Prinzip ja, abgesehen von einem DC-Offset.

Hallo Helmut,
genau; da aber dieser bekannt ist, ist das kein weiteres Problem.


Dein Eingangsfilter hat die Übertragungsfunktion

H(f) = jwT/(1+jwT) mit T=1/(2pi*0.3Hz)=0.48s = R*C
H(f) = jwT/(1+jwT) mit T=1/(2pi*0.3Hz)=0.53s = R*C

Schalte ein Filter mit inverser Funktion dahinter mit

X(f)= (1+jwT)/jwT = 1/jwT + 1

Diese Funktion muß man in ein digitales Filter umformen und
dann das Signal(Abtastwerte) durch dieses Filter schieben.
1/wT ist ein Integrator(=Aufsummierer mit angepasster Verstärkung).
+1 bedeutet addieren des Eingangssignals.

Das ergibt dann die Gesamtübertragungsfunktion
Y(f) = H(f)*X(f) = jwT/(1+jwT) * (1+jwT)/jwT = 1
Das gilt nur für f > 0Hz, also nicht für DC.

Vielen Dank!!! Ich werds mal ausprobieren. Aber was verstehst Du unter
"angepasster" Verstärkung?
Hallo Matthias,
der Integartor muß im Abtastintervall genau so viel ansteigen wie die
gedachte analoge Integratorschaltung.

Gain = Tabtast*2*pi*fg = 2e-6*2*pi*0.3 = 1.9e-6

Int(0)=0

1. Meßwert hat Index 0
Int(n+1)=Int(n)+Sig_in(n)*Gain Integrator

Sig_out(n+1)= Sig_in(n+1) + Int(n+1)


Probiere mal obige Rechenvorschrift. Sig_out ist das korrigierte
Ausgangssignal. Sig_in sind deine Eingangswerte.
Ich denke das sollte funktionieren.

Welche Signalform hast du?
Wie groß ist denn die kleinste Frequenz in deinem Signal?

Die Signalform ist ein Sprung (zum Zeitpunkt t>0; etwa nach 25ms) mit
einer
Anstiegszeit von etwa 20ms. Das ganze Signal ist (55000 Samples *
0,000002s
= 110ms lang). Danke nochmal für die Hilfe!
Viel Spaß beim Testen obiger Rechenvorschrift.

Gruß
Helmut
 
Helmut Sennewald wrote:

Int(0)=0

1. Meßwert hat Index 0
Int(n+1)=Int(n)+Sig_in(n)*Gain Integrator

Sig_out(n+1)= Sig_in(n+1) + Int(n+1)
So sahen meine ersten Gehversuche mit digitalen Integratoren auch aus.
Grau, lieber Helmut, ist alle Systemtheorie, wie Du bestätigen wirst.
Auch wenn Sig_in eigentlich keinen DC-Anteil haben soll, ein bißchen hat
der Verstärker bestimmt dringelassen, und Sig_out wird hoch- (oder
runter-) gehen wie eine Rakete. Rundungsfehler vom A/D-Wandler machen
die Sache auch nicht besser. Der 1polige 0,3-Hz-Hochpass sollte bei
0,003 Hz noch ein Hundertstel vom Nutzsignal durchlassen; ein bipolarer
8-Bit-Wandler zappelt da nur noch mit dem LSB, und das bei angenommener
Vollaussteuerung.

Mit anderen Worten: das meiste vom Originalsignal ist unwiederbringlich
weg. Dem Rückrechen-Versuch muß auf jeden Fall eine Wandlung in
Gleitkommazahlen, Berechnen und Abziehen des entstandenen Mittelwertes
sowie eine Beschränkung des digitalen Integrators auf eine zu
bestimmende untere Grenzfrequenz vorausgehen. Weiter sollte man beim
Addieren im Integrator versuchen, das Bitrauschen gleich zu eliminieren.
Darüber sind IIRC schon Doktorarbeiten geschrieben worden, aber leider
habe ich gerade keinen Link zur Hand.

Trotzdem viel Erfolg und viele Grüße
Steffen
 
Hallo Matthias,
| Schön, dass ich jetzt schon in der dritten Person Antworten
bekomme...

das ist ganz einfach, um die Übersicht nicht zu verlieren lass ich
gelesene Nachrichten ausblenden, und dann war ich einfach zu faul, die
gelesenen wieder einzublenden und den Orginalbeitrag zu suchen. Die
Mitteilung hat Dich gefunden. Helmut und Steffen haben Dir auch schon
geschrieben, wo die Wege hingehen.
Im Prinzip sehe ich es so, dass Du, um das Weglaufen der (in den
Messungen unbekannten) DC-Linie zu verhindern wieder einen Hochpass
einbauen mußt, nur eben mit einer Grenzfrequenz, die Dich nicht stört.
Und Du solltest Dir im Klaren sein, dass Informationen, die der Filter
weggefiltert hat zwar linearisiert werden können, aber nicht
wiederhergestellt werden. Plastisch gesprochen: Ein Frequenzanteil von
0,03 Hz wird von Deinem Filter auf ca 1/10 seiner Amplitude
zusammengestaucht. Der AD hat eine begrenzte Auflösung, es fehlen
(unwiederbringliche) 3 Bit der Auflösung (Rauschanteile unterschlagen
und alles nur näherungsweise). Diesen Frequentanteil nun wieder
rechnerisch um 10 zu vertärken ist schon machbar, Informationsgewinn
hast Du aber nie erreicht.

MArtin
 
"Steffen Buehler" <steffen.buehler@freenet.de> schrieb im Newsbeitrag
news:cbdulf$1ofd$1@news.space.net...
Helmut Sennewald wrote:

Int(0)=0

1. Meßwert hat Index 0
Int(n+1)=Int(n)+Sig_in(n)*Gain Integrator

Sig_out(n+1)= Sig_in(n+1) + Int(n+1)

So sahen meine ersten Gehversuche mit digitalen Integratoren auch aus.
Grau, lieber Helmut, ist alle Systemtheorie, wie Du bestätigen wirst.
Auch wenn Sig_in eigentlich keinen DC-Anteil haben soll, ein bißchen hat
der Verstärker bestimmt dringelassen, und Sig_out wird hoch- (oder
runter-) gehen wie eine Rakete.
Hallo Steffen,
ja das mit dem Offset hatte ich vergessen. Allerdings ganz so
schlimm ist das in obiger Anwendung nicht.

Annahme: 10% Offset-Fehler(=0.1V), Signal-Amplitude 1V

Integrator-Fehler nach 55000 Abtast-Werten:

V = 0.1*1.9e-6*55000 = 0.01

Das heißt die berechnete Ausgangsspannung hätte eine Dachschräge von 1%.

Matthias,
berichte doch mal über den Stand deiner Berechnungen.
Wir sind neugierig.

Gruß
Helmut
 
Matthias,
berichte doch mal über den Stand deiner Berechnungen.
Wir sind neugierig.

Gruß
Helmut
Hallo Helmut,

Danke erst mal an alle, die mir mit meinem Problem geholfen haben..... Ich
werde die Berechnungen jetzt mal in die Tat umsetzen. Leider kann ich das
erst wieder in zwei Wochen tun, da dieses Problem im Rahmen meiner
Werkstudenten-Tätigkeit entstanden ist, und ich aus "Prüfungs-lern-Gründen"
erst wieder in zwei Wochen im Unternehmen bin. Aber ich werd auf jeden Fall
von den Ergebnissen berichten....

Danke nochmal
Gruß
Matthias
 

Welcome to EDABoard.com

Sponsor

Back
Top