Hallo, angenommen, ich habe alle 10µs einen Eingangswert von 0..10 und möchte die Auflösung durch Oversampling auf 0.. 1000000 (1M) erhöhen. Dann würde ich im ersten Schritt ein Filter mit 100k *1µs, also 1s dahinter schalten. Nachteil, das Filter ist sehr langsam. Folgender Gedanke: Jetzt habe ich für mehrere Sekunden einen Eingangswert von 2 gehabt, und als Folge einen gefilterten Ausgangswert von 200000. Nun springt der Eingangswert von 2 auf 5. Dann könnte ich das Filter doch schnell nachziehen, damit es grob mal Richtung 500000 läuft. Gibt es so ein Filter? Meine Anwendung ist die schnelle Messung einer Frequenz, die nicht rauscht, die aber Sprünge machen kann, und die ich nur grob erfassen kann. Frequenz liegt zum Beispiel bei 100kHz .. 900kHz, und wenn ich mit 1MHz Basis die Periodenzeit messe, dann hätte ich Werte wie im Beispiel. Ich brauche also beides: sowohl eine hohe Auflösung für stabile Frequenzen, als auch ein schnelles (dann aber gröberes) Reagieren bei größeren Änderunge.
Äh, moment, du möchtest durch Oversampling 5 Größenordnungen Auflösung gewinnen? Ich glaube das wird eher nichts. Zumindest brauchst du 10^10 Messwerte pro Samplepunkt dafür, und dann geht es auch nur wenn statistisch alles stimmt.
:
Bearbeitet durch User
J.Newsom schrieb: > Meine Anwendung ist die schnelle Messung einer Frequenz, > die nicht rauscht, die aber Sprünge machen kann, und die > ich nur grob erfassen kann. Frequenz liegt zum Beispiel > bei 100kHz .. 900kHz, und wenn ich mit 1MHz Basis die > Periodenzeit messe, dann hätte ich Werte wie im Beispiel. Nun ja... man kann sich natürlich die Arbeit beliebig schwer machen, aber man ist ja nicht dazu verfplichtet. Ich würde versuchen, irgend eine interpolierende Methode zu verwenden. Falls die "Frequenz" ein Sinussignal ist: Mit mehr als 2fmax abtasten und FFT. Falls die "Frequenz" ein Rechteck ist: Hochwertigen Sinus mit f < 1/2 * f_min erzeugen (DDS), von Eingangssignal getriggert abtasten, FFT, passend umrechnen. Man kann sich sicher auch Freistil-Methoden ausdenken, z.B. auf der Basis von Polynomen.
Moin, Wasch' mir den Pelz, aber mach' mich nicht nass... Wird schwierig. Du brauchst ja einen Tiefpass, der eine Sperrdaempfung erreicht, die so hoch ist, dass du auf deine gewuenschte Genauigkeit kommst. Andererseits sollte der dann eine moeglichst kleine Gruppenlaufzeit haben, damit du schnell an dein Ergebnis kommst. Wahrscheinlich wirst du mit einem Cauertiefpass als IIR sowas noch am ehesten erreichen. Kriegst halt dann die Riesenbeule in der Gruppenlaufzeit kurz vorm Sperrberich - das darf dich halt nicht stoeren... Gruss WK
Dergute W. schrieb: > Wasch' mir den Pelz, aber mach' mich nicht nass... Man spricht hier auch von einem so genannten Zielkonflikt .
Wieviel könnte man denn idealerweise durch oversampling gewinnen? Sicher nicht den linearen Faktor der Überabtastung, oder? Also bei seinen 100kHz (10us) z.B. 10MHz abtasten und Faktor 100 gewinnen? Eher Faktor Wurzel(100) oder? Und woher kommt die gewonnene Auflösung? Durch das Rauschen, das den AD-Wert glättet, ist es hier wohl nicht. Wenn das Rauschen weg soll, muss man mitteln und Sprünge mit diskreter Betrachtung umsetzen, meine ich.
Wurzel der Sample-Zahl im Fall normalverteilten Rauschens, ja. Und doch, es ist das Rauschen, was dir diesen Auflösungsgewinn ermöglicht -- es gibt sogar ein Wort dafür, "Dithering". Im Extremfall kann es hilfreich sein, Rauschen künstlich hinzuzufügen.
Das hängt aber davon ab, welche Amplitude das Rauschen im Verhältnis zu dem Signal hat. Je geringer diese Dynamik, desto mehr bringt zusätzliches Rauschen und Dithering, wobei man da unterscheiden muss, was davon im Zeit- und was im Frequenzbereich stattfindet. Zudem tut der Wandler da schon sein Möglichstes, um LSBs zu gewinnen. Wenn also der Messwert rauscht, funktioniert nur eine Filterung und die wiederum braucht nicht unbedingt oversampling. Die intelligenten Sprünge, die in solchen Fällen erwartet werden, lassen sich nur durch ein diskretes Filter managen, das seine Charakteristik anpasst, z.B. auch durch ein AKF.
Du kannst Folgendes versuchen (wir nehmen ein offset-behaftet Signal an): 0. Lass als Zeitreferenz einen Timer mit hoher Taktung laufen. 1. Wenn Du bis zu 900kHz über AD-Konversion sicher erkennen willst, solltest Du schon mit deutlich mehr als 1,8MHz sampeln - eher 3-9MHz. 2. Berechne das TP-gefilterterte Signal mit fg=10kHz (wenn 100kHz Deine niedrigste Frequenz ist 3. Subtrahiere den TP-Ausgang vom Rohsignal. 4. Nach jeder Subtraktion kontrolliere, ob Du den positiven/negativen Nulldurchgang durchschritten hast und lies den Timer (siehe Pkt 0) aus. Subtrahiere den aktuellen Timer-Wert vom letzten Wert und Du hast Deine Periodendauer. Bzgl. Deiner Frage mit dem Sprung von 2 auf 5: Ist das ein Offset oder die Signalamplitude? Wenn es ein Offset ist und dein Signal deutlich kleiner als dieser Sprung, kannst Du ja den LPF resetten, ansonsten aber geht das nicht - das könnte man nur retrospektiv bewerten.
Hast Du den Verschlag simuliert oder ist das Theorie? Wer auf diese Weise Nulldurchgänge bestimmt, dürfte ziemlich chaotische Werte bekommen, da in dem TP-Signal allesmögliche an Dreck drin steckt, dass den Offset verschiebt. Das ist höchstens eine PI x Daumen Information für die Nulllinie.
Sven B. schrieb: > Äh, moment, du möchtest durch Oversampling 5 Größenordnungen Auflösung > gewinnen? Ich glaube das wird eher nichts. Oooch, wenn man sowas simuliert, wird das sicherlich funktionieren. Aber da Auflösung ungleich Genauigkeit ist, macht das praktisch keinen Sinn.
Harald W. schrieb: > Sven B. schrieb: > >> Äh, moment, du möchtest durch Oversampling 5 Größenordnungen Auflösung >> gewinnen? Ich glaube das wird eher nichts. > > Oooch, wenn man sowas simuliert, wird das sicherlich funktionieren. > Aber da Auflösung ungleich Genauigkeit ist, macht das praktisch > keinen Sinn. Ne, das funktioniert auch in der Simulation nicht. Dazu brauchst du 10^10 mal so viele Samples, also 10 Milliarden Samples pro Messpunkt der rausfallen soll.
Sven B. schrieb: > Ne, das funktioniert auch in der Simulation nicht. Dazu brauchst du > 10^10 mal so viele Samples, also 10 Milliarden Samples pro Messpunkt der > rausfallen soll. Gibts da in der Simu zu wenig Stellen hinter dem Komma bei der Berechnung?
Harald W. schrieb: > Sven B. schrieb: > >> Ne, das funktioniert auch in der Simulation nicht. Dazu brauchst du >> 10^10 mal so viele Samples, also 10 Milliarden Samples pro Messpunkt der >> rausfallen soll. > > Gibts da in der Simu zu wenig Stellen hinter dem Komma > bei der Berechnung? Seufz. Nein. Aber schon das Ergebnis, was in der Simulation rauskommt, ist realitätsfern, sprich, wenn man sich überlegt was das Ergebnis bedeutet, bemerkt man dass man das so nicht umsetzen kann. Das ist ja ein Unterschied zu einer unrealistisch angelegten Simulation, bei der herauskommt, dass etwas eigentlich funktionieren könnte. Irgendwie habe ich in diesem Forum oft das Gefühl, man wird absichtlich missverstanden, nur damit sich jemand als schlau darstellen kann.
:
Bearbeitet durch User
Sven B. schrieb: > Irgendwie habe ich in diesem Forum oft das Gefühl, man wird absichtlich > missverstanden, nur damit sich jemand als schlau darstellen kann. +1 Dergute W. schrieb: > Du brauchst ja einen Tiefpass, der eine Sperrdaempfung > erreicht, die so hoch ist, dass du auf deine gewuenschte Genauigkeit > kommst. Andererseits sollte der dann eine moeglichst kleine > Gruppenlaufzeit haben, damit du schnell an dein Ergebnis kommst. Wie würde man den bauen?
Moin, Signalverarbeiter schrieb: > Wie würde man den bauen? Naja, wohl nicht wirklich. Aber spasshalber z.B. als Cauer in Octave/Matlab vielleicht so: x=irgendeine dir genehme Filterordnung [b,a]=ellip(x, 8.6e-6, 120,1e-6); Gruss WK
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.