1-bit Sampling Bibliothek

Hallo Audiophile,

ich erinnere mich vage an meine Uni-Zeit und an ein Praktikum, in dem es um die Abtastung von Zeitsignalen ging. Mir geht es dabei nicht um die SamplingRate sondern vielmehr um die Anzahl von Bits, die fuer jedes einzelne Sample verwendet werden.

Soweit ich mich erinnern kann, sind die verbreitesten Varianten dabei zu jener Zeit 8-bit, 16-bit, 24-bit und 1-bit.

Ich moechte nun eine mir vorliegende Zeitreihe, die bereits aus abgetasteten Werten besteht, in eine 1-bit-Form bringen, d.h. bei jedem Schritt wird nur entschieden, ob es nach oben oder unten geht (mit entsprechendem Oversampling).

Da ich das nicht so gerne selber programmieren moechte (ist nur ein klitzkleiner Teil des Ganzen), haette ich dafuer gerne eine fertige Bibliothek. Anforderungen: Linux, OpenSource.

Wenn das nicht moeglich ist, tut’s auch eine gute Beschreibung des Verfahrens (dann muss ichs halt doch selber schreiben…)

Danke!
kampi

HI Kampi!

Also 1 Bit kannste total vergessen, das ist null Quali (nicht verwechseln mit den 1-Bit Wandlern, das ist was anderes).

Das Verfahren:
Etweder Dithering, ist ein Spezialthema für sich, oder, besser in diesem Fall, wie ich denke, Truncation!
Das geht so:

Du schneidest alle Bits einfach ab, außer dem MSB! Beispiel:

0 1 1 0 1 0 1 0 1 1 1 0 0 1 0 0
MSB LSB

und nun aus 16 mache 1:

0 1 1 0 1 0 1 0 1 1 1 0 0 1 0 0

das geht, ist aber sehr Brutal! Wenn du von zB 20 auf 16 gehst, wirst Du mit Dithering besser fahren…

Also bis denne

Florian

PS Wenns um Libarys geht, poste am besten bei der betreffenden Prog-Sprache, weiter unten :wink:

Adaptive Delta-Modulation
Hallo Kampi,

damals vor vielen Jahren gab es dieses Verfahren. Wurde z.B. von Elrad für ein Echo-Gerät genutzt. Einfach Idee, man tastet mit hoher Frequenz ab und sagt einfach nur

1 = ist mehr
0 = ist weniger als bei der Messung zuvor

nach einer Reihe von gleichbleibenden Messergebnissen geht man in der Bedeutung der Schrittweite höher.

Also z.B.

Am Anfang der Abtastung Schrittweite = wie 1 LSB bei 16 Bit
Nach 8 mal hintereinander 0 oder 1 Schrittweite = 2. LSB von 16 Bit usw.

Angeblich hat Sony vor 3-4 Jahren auf dieser Technik Tonstudiogeräte und einen Datenträger vorgestellt.

Stefan

Hallo Kampi,

Schon klar, aber ich war mir nicht sicher, ob hier die Delta-Modulation (APT benutzt ja ein ähnliches Verfahren beim APT-X100 Codec, welcher im DTS-Kinoton verwendung findet) überhaupt gefragt ist…

Grüßle
Florian

HI Kampi!

Also 1 Bit kannste total vergessen, das ist null Quali (nicht
verwechseln mit den 1-Bit Wandlern, das ist was anderes).

Hmm, meinte ich vielleicht das?

Das Verfahren:
Etweder Dithering, ist ein Spezialthema für sich,

kannst du das in 2 Saetzen beschreiben? Oder mich auf eine reise ins netz schicken?

oder, besser
in diesem Fall, wie ich denke, Truncation!
Das geht so:

Du schneidest alle Bits einfach ab, außer dem MSB! Beispiel:

naja, wenn ich es schon als Bitstring repraesentiert haette. Mir liegt eine Zeitreihe von ints vor. Ich koennte natuerlich bereits deren interne Darstellung verwenden, aber das moechte ich eigentlich nicht.

0 1 1 0 1 0 1 0 1 1 1 0 0 1 0 0
MSB LSB

und nun aus 16 mache 1:

0 1 1 0 1 0 1 0 1 1 1 0 0 1 0
0

das geht, ist aber sehr Brutal!

Aber holla! :smile:

Wenn du von zB 20 auf 16
gehst, wirst Du mit Dithering besser fahren…

wie gesagt: ich habe eine Reihe von ints und moechte daraus einen ganz ganz langen bitstring bekommen…

PS Wenns um Libarys geht, poste am besten bei der betreffenden
Prog-Sprache, weiter unten :wink:

Tja, wenn ich doch nur wuesste, in welcher Sprache ich das machen werde *grin* C/C++, oder den Prototypen doch in Perl, vielleicht auch Ruby, um es mal zu testen, oder doch lieber einen lisp-Dialekt? achichweissesnochnicht

Hallo Kampi,

damals vor vielen Jahren gab es dieses Verfahren. Wurde z.B.
von Elrad für ein Echo-Gerät genutzt. Einfach Idee, man tastet
mit hoher Frequenz ab und sagt einfach nur

1 = ist mehr
0 = ist weniger als bei der Messung zuvor

nach einer Reihe von gleichbleibenden Messergebnissen geht man
in der Bedeutung der Schrittweite höher.

das klingt ziemlich gut. Hast du da noch Literatur- oder Webseiten-Hinweise fuer mich?

kampi (aka Stefan)

HI Kampi!

Hmm, meinte ich vielleicht das?

Das wäre dann Delta-Kompression oder, wie unten erwähnt, Alpha Modulation!

kannst du das in 2 Saetzen beschreiben? Oder mich auf eine
reise ins netz schicken?

Puuh, Es wird dem Digitalsignal ein Rauschen hinzugefügt, um die Treppchenbildung (wenn das Signal Wertediskret gemacht wird) etwas zu „entschärfen“.

PS Wenns um Libarys geht, poste am besten bei der betreffenden
Prog-Sprache, weiter unten :wink:

Tja, wenn ich doch nur wuesste, in welcher Sprache ich das
machen werde *grin* C/C++, oder den Prototypen doch in Perl,
vielleicht auch Ruby, um es mal zu testen, oder doch lieber
einen lisp-Dialekt? achichweissesnochnicht

Das poste bie Proggen Allgemein!

Liebes Grüßle
Florian