Es geht um die Filterung von z.B. den 32 letzten, zurückliegenden Werten
mit einem FIR-Filter. Normal würde ich mit 32 Koeffizienten arbeiten und
32 TAPs. Nun gibt es Aussagen, daß man zu genaueren Werten gelangt, wenn
man zuerst hochsampelt und dann den Filter anwendet. Z.B. mit der
4-fachen Auflösung. Ist es grundsätzlich möglich, da was rauszuholen?
Ich meine doch nicht, oder?
Moin,
Was sollte es den "bringen"? Und wer sagt sowas aus? Da wuerd' ich
nachfragen...
Gruss
WK
Edit: Kommt mir so vor, wie bei dem Kraeuterlikoer: "Man sagt, er habe
magische Kraefte". Tja. Wer sagt das? Die Marketingabteilung. Achso. Und
was fuer Kraefte? Magische? Je mehr ich davon trinke, desto
schwindeliger wird mir? Sehr magisch...
Signalverarbeitendes Gewerbe schrieb:> Nun gibt es Aussagen, daß man zu genaueren Werten gelangt, wenn> man zuerst hochsampelt und dann den Filter anwendet. Z.B. mit der> 4-fachen Auflösung.
Hier werden meines Erachtens verschiedene Dinge durcheinander geworfen.
Upsampling ("hochsamplen") bezieht sich auf die Abtastrate, also
wieviele Samples pro Zeiteinheit man hat. Durch Interpolation kann man
diesen Wert erhöhen oder auch verringern (Downsampling).
Auflösung bezieht sich auf die Quantisierung des Signals.
Signalverarbeitendes Gewerbe schrieb:> Das genau ist die Frage. In welchen Fällen könnte das etwas bringen?
Da in dem primären Signal durch das Hochsampeln keine relevanten
Informationen hinzukommen (und wenn, dann Willkürliche) kann es für das
Signal selber nichts bringen. Notwendig ist das nur, wenn man das Signal
auf andere Abtastraten wandeln will oder aufwändig weiterprozessiert.
Beim Audio macht man das gerne mal, weil die Filter auf höheren Raten
feiner aufgelöst sind, was z.B. die Filtergüte angeht. Es kommen weniger
zusätzliche Effekte rein, weil heissen, das Signal wird durch das
genauer aufgelöste Prozessieren weniger stark weiterverschlechtert.
>Was sollte es den "bringen"? Und wer sagt sowas aus? Da wuerd' ich>nachfragen...
Ich denke, ein einfaches Beispiel kann die Sache verdeutlichen.
Nehmen wir z.B. einen den idealen Tiefpass angenäherten, zeitbegrenzten
FIR-SINC-Filter:
https://en.wikipedia.org/wiki/Sinc_filter
Wenn man das Signal vor dem Filter "upsampled" als Nullen zwischen den
Abtastwerten einfügt, erhält man nach dem Filter an den Stellen der
Nullen die interpolierten Abtastwerte. Diese können auch eine feinere
Quantisierung als die Abtastwerte haben, da der Filter das
Quantisierungsrauschen minimiert.
Insofern kann man auch sagen, dass die Werte nach dem Filter genauer
sind, weil das Quantisierungsrauschen gefiltert wurde.
Moin,
chris_ schrieb:> Diese können auch eine feinere> Quantisierung als die Abtastwerte haben, da der Filter das> Quantisierungsrauschen minimiert.
Hm... Wieso sollte das Filter das Quantisierungrauschen minimieren?
Klar, wenn ein Filter bestimmte Frequenzbereiche daempft, dann wird's
auch das Rauschen darin daempfen. Aber mehr nicht.
Eine feinere Quantisierung ist notwendig, wenn das Signal nicht (zu
sehr) durch's upsamplen verschlechtert werden soll.
Wenn ich so eine Folge [... 0 1 0 1 0 ...] um den Faktor 2 upsample,
dann sollte am Ausgang ja ungefaehr sowas rauskommen: [ ... 0 0.5 1
0.5 0 0.5 1...] Also schon mal 1 bit mehr Quantisierung. Aber
wirklich "besser" wird ein Signal durch so Gewurschtel eigentlich nicht.
Gruss
WK
>Wenn ich so eine Folge [... 0 1 0 1 0 ...] um den Faktor 2 upsample,>dann sollte am Ausgang ja ungefaehr sowas rauskommen: [ ... 0 0.5 1>0.5 0 0.5 1...] Also schon mal 1 bit mehr Quantisierung. Aber>wirklich "besser" wird ein Signal durch so Gewurschtel eigentlich nicht.
Vielleicht ein anderes Beispiel: Nulldurchgangsbestimmung
Versuche das Verfahren mal bei dieser Folge:
[... -1 1 -1 1 -1 ...]
Moin,
chris_ schrieb:>>Hm... Wieso sollte das Filter das Quantisierungrauschen> minimieren?>> http://www.embedded.com/design/real-time-and-perfo...
Ja, das ist ein alter Hut - ich schrub ja: Klar, wenn ein Filter
bestimmte Frequenzbereiche daempft, dann wird's auch das Rauschen darin
daempfen. Aber mehr nicht.
Dazu brauch ich das Signal ja schon ueberabgetastet; der Threadersteller
wollte ja sein "normal" abgetastetes Signal hochinterpolieren...
chris_ schrieb:> Versuche das Verfahren mal bei dieser Folge:> [... -1 1 -1 1 -1 ...]
Kann ich machen, hilft aber auch nix. Wie bei meinem Signalbeispiel:
Vorher brauch ich 1 bit/sample, hinterher 2 bit/sample (na, gut -
eigentlich nur 1.585 bit). Also hat sich die benoetigte Bitbreite/Sample
durch die Interpolation vergroessert - wenn ich das ignoriere, krieg ich
eher mehr Rauschen rein als weniger.
Gruss
WK
chris_ schrieb:> Wenn man das Signal vor dem Filter "upsampled" als(o) Nullen> zwischen den Abtastwerten einfügt, erhält man nach dem Filter an den> Stellen der Nullen die interpolierten Abtastwerte.
Das ist schon mal ein Denkfehler, weil das nur theorettisch ohne
negative Artefakte funktioniert. Je nachdem, wie der Filter konzipiert
ist, konkret, wie lange er ist, bekommt man damit alles andere, als
interpolierte Werte. Das Thema hatten wir an anderer Stelle kürzlich
schon einmal.
> Diese können auch eine feinere> Quantisierung als die Abtastwerte haben, da der Filter das> Quantisierungsrauschen minimiert.
Das ändert aber nichts daran, dass die Samples, die Ursprung des Signals
sind und die die gesamte Information tragen, nicht besser werden. Wenn
man das wieder runtersampelt bekommt man hingegen mitunter falsche Werte
infolge der ungewollten Filterfehler.
> Insofern kann man auch sagen, dass die Werte nach dem Filter genauer> sind, weil das Quantisierungsrauschen gefiltert wurde.
Das stimmt nur im Hinblick auf die spätere Rekonstruktion, wenn das
höherfrequente Signal wieder in ein Analoges verwandelt wird und auch
nur dann, wenn man ein reales Rekofilter veranschlagt. Theoretisch ist
es auch mit dem nicht hochgesampelten Datenstrom möglich, diesen im
Rahmen seiner Genauigkeit = Informationsgehaltes optimal zu
rekonstruieren.
Auf höheren Sampleraten ist es allerdings mitunter technisch einfacher.
Jürgen S. (engineer) Benutzerseite
>chris_ schrieb:>> Wenn man das Signal vor dem Filter "upsampled" als(o) Nullen>> zwischen den Abtastwerten einfügt, erhält man nach dem Filter an den>> Stellen der Nullen die interpolierten Abtastwerte.>Das ist schon mal ein Denkfehler, weil das nur theorettisch ohne>negative Artefakte funktioniert. Je nachdem, wie der Filter konzipiert>ist, konkret, wie lange er ist, bekommt man damit alles andere, als>interpolierte Werte.
Hmm, Denkfehler ... ich versuche jetzt mal Deine Aussage genauer zu
verstehen ..
Untersuchen wir dazu die Begriffsbeschreibung zur Interpolation aus der
Wikipedia ( https://de.wikipedia.org/wiki/Interpolation_(Mathematik) )
1
"Die Interpolation ist eine Art der Approximation: Die betrachtete Funktion wird durch die Interpolationsfunktion in den Stützstellen exakt wiedergegeben und in den restlichen Punkten immerhin näherungsweise. Die Approximationsgüte hängt vom Ansatz ab."
Du scheinst davon auszugehen, dass eine Interpolation immer die exakten
Werte zwischen denn Stützstellen ergibt. Nur so mach Dein Satz oben
Sinn.
Das ist falsch. Es gibt viele verschiedene Arten der Interpolation. In
der Meßtechnik werden diese zur Schätzung von Zwischenwerten verwendet.
Das Ergebnis der Schätzung hängt vom Verfahren ab und kann sich je
nachdem stark unterscheiden. Upsampling ist eine Form der Interpolation.
Am besten ist es, wenn Du Dir den Wikipedia Artikel zu Interpolation
genau durchliest. In diesem Dokument sind die Ergebnisse verschiedener
Interpolationsverfahren auf Seite 63 dargestellt:
https://tu-dresden.de/bu/umwelt/hydro/iak/ressourcen/dateien/systemanalyse/studium/folder-2009-01-29-lehre/systemanalyse/folder-2010-04-12-1173264546/wws-03.pdf?lang=en
Vielleicht kannst Du ja noch ein paar Übungen dazu im Netz finden, um
das Wissen etwas zu festigen.
In der Praxis wird eine Kombination der Interpolation mittels
"Upsampling" und linearer Interpolation zur hoch genauen Schätzung der
TOF in Sensoren verwendet.
chris_ schrieb:> Du scheinst davon auszugehen, dass eine Interpolation immer die exakten> Werte zwischen denn Stützstellen ergibt.
Nein, Ich meinte sinngemäß eher das Gegenteil, weil nur bei einem
idealen Filter eine solche Interpolation der Zwischenwerte korrekt
gelingt, den es aber nicht gibt.
Daher ist es ja - je nach angewendetem Verfahren - ein Unterschied, wie
man beim upsampeln die Zwischenwerte ersetzt. Das oftmals verwendete
Einfügen von Nullen ist zwar formal korrekt, führt aber zu anderen
Ergebnissen, als das Einfügen von Mittelwerten o.a., weil dies eine
andere Interpolation darstellt und jede anders funktioniert, wie Du
selber sagst.
Das ist aber nicht genau das Thema, das hier behandelt wird. Dem TE ging
es um die Frage, ob das alleinige upsamlen das Quantisierungsrauschen
vermindern kann und dies kann es insofern nicht, als dass die
Quantisierung bereits erfolgt ist und der damit erzielte Fehler im
Signal verbleibt, da sich an diesen Werten - genauer an der Qualität
ihrer Aussage - nichts ändert.
Es macht insofern natürlich einen Unterschied, als dass bei der
Wiedergabe / der Betrachtung im kontinuierliche Bereich dann eine
Verbesserung der Signalqualität zu erzielen wäre, wenn die neue hohe
Abtastrate im System auch beibehalten wird, weil dann eine genauere
Steuerung eines Rekonstruktionsfilters erfolgen kann. Das hat aber mehr
mit der weiteren Verarbeitung und Ausgabe zu tun.
In der digitalen Domäne bringt das zunächst keinen Vorteil und
impliziert im Gegenteil, dass er bei seinem Filter die Anzahl der
Filter-Taps verdoppeln müsste, um die gleiche Perdiodenlänge zu
überdecken. Der Umstieg auf höhere Raten zieht also Aufwand nach sich.
Es kommt letztlich darauf an, was man vergleichen will.
>In der Praxis wird eine Kombination der Interpolation mittels>"Upsampling" und linearer Interpolation zur hoch genauen Schätzung der>TOF in Sensoren verwendet.
Bei so ziemlich jeder Anwendung, bei der es um die Gewinnung von
interpolierten Zwischenergebnissen geht, muss man in irgendeiner Weise
hochsampeln, weil man ja die Zwischenzeitpunkte haben möchte. Ob dabei
im konkreten Fall eine lineare Interpolation der Weißheit letzter
Schluss ist, lasse Ich mal offen. Das wäre an anderer Stelle zu
erörtern.
Hierbei geht es ja um ein völlig anderes Ziel, nämlich um eine
Interpolation mit dem Ziel der Ermittlung von Nulldurchgängen.
Hier wird also nicht etwa Rauschen beseitigt, wie der TE es will und
dabei eine Interpolation als Mittel benutzt, sondern es wird gezielt
eine Interpolation angestrebt, um neue Ergebnisse zu gewinnen.
Diese Interpolation kann - das ist richtig - durch eine Filterung in
Echtzeit geschehen (abseits einer rein mathematischen Betrachtung, die
einen virtuellen Zwischenzeitpunkt anvisiert), aber auch in diesem Fall
wird kein Rauschen beseitigt.
> Am besten ist es, wenn Du Dir den Wikipedia Artikel zu Interpolation> genau durchliest.
Die Thematik habe Ich in meinem Beitrag zur DDS an beiden Stellen
beleuchtet:
Digitale Interpolation bei DA-WandlungBeitrag "Re: Universell programmierbarer DDS-Funktionsgenerator"
Zum einen finden wir dort die Methode der Interpolation der Tabelle
durch Mehrfachabtastung und späteren Filterung und zum anderen die
Reduktion des Quantisierungsrauschens durch Dithering, welche deshalb
funktioniert, weil zuvor genauere Zielwerte ermittelt wurden.
Ansonsten hier:
http://www.96khz.org/oldpages/limitsofdds.htmhttp://www.96khz.org/oldpages/soundsynthesiswithdds.htm
Eine Reduktion der Quantisierung des Signals im Sinne des TEs ist das
aber hier nicht wirklich, weil bezüglich der stattfindenden
Interpolation eine Annahme über deren Oberwellengehalt gemacht wird-
nämlich, dass es keine gibt! Dadurch - und nur dadurch - kann ein Filter
definiert werden, welcher die Ecken in der Tabelle reduziert, welche im
Falle krummer Frequenzen zu einem zusätzlichen Rauschen führen würden.
Für den allgemeinen Fall eines irgendwie zusammengesetzten Signals,
welches der TE einem Filter zuführen möchte, gelingt dies nicht!
Es lohnt also, etwas über die Texte in der Wikipedia hinaus zu denken
und genauer hinzuschauen, was da im Detail passiert.
Final bleibt zu bemerken, dass der Wiki-Text so auch nicht
uneingeschränkt stimmt, denn ein Filter, der so agiert, wie der FIR der
TE, wird nicht nur die Zwischenwerte bestimmen, sondern auch die
Stützstellen verändern, was allerdings nicht zwangsläufig nachteilig
ist.