Wav-Format

Hallo,

ich habe mir überlegt, Daten per Soundkarte zu übertragen. Aus dem Zweck hab ich mir ein kleines Tool geschrieben, das ein Signal generiert, in dem es die Bits in ein Trägersignal modelliert. 1 war volle Lautstärke, 0 halbe und Ton aus war 'neues' Bit. Dann hab ich den Empfänger programmiert, jedoch habe ich es bloß bis 1 byte/s gebracht. Dannach kam die Pegelmessung nicht mehr hinterher.

Dennoch hab ich nicht aufgegeben und es nun so gelöst, dass ein gesetztes bit auf der linken Tonspur zu finden ist und eine 0 auf der Rechten, gepart mit einer Trägerfrequenz von 10000Hz, kann ich es bequem bis auf 25 Bytes/s treiben. - Zumindest so, dass das Signal noch klar im Audacity zu entziffern ist (wenn man nah genug ranscrollt).

Nun folgendes, ich möchte den Pegel mit einer festen Abtastrate aus der Wav-datei auslesen ohne diese Dabei ab zu spielen. Beim Auslesen hatte ich ich es bisher so gelöst, dass ich den Pegel an einer Aufnahmequelle prüfe. Das ist jedoch zu langsam.
Kann mir dabei jemand weiter helfen?

Danke.

Hier mal eine Encodierte Werbeemail mit ca 25 Byte/s... Im Audacity kann man ganz gut sehen was ich vorhabe.

http://www.bunnxchat.de/25b.wav

So sieht die Stereoübertragung aus:
9e7c65db2c10c10516e7c1952a72a39e.jpg
 
Zuletzt bearbeitet:
Ich denke ich habe es hinbekommmen, als Erklärung:

Die ersten 45 Bytes der Wave bilden den Header, folgend die data Sektion. Je nachdem ob man 16Bit/8Bit, mono/stereo hat muss man jene auslesen. Bei 16 Bit bilden jeweils 2 Byte ein Sample, bei 8 eins. Mono und stereo wechseln sich passend dazu ab also imme LLRRLLRRLLRR oder MMMMMM oder LRLRLRLR.

Ich habe nur das 2. Byte verwendet da es sich konkruent zur Lautstärke verhält und für meinen Zweck ausreicht. Somit musst ich nur noch jedes 2. Byte prüfen ob > 100 = 1, > 50 = 0 oder < 10 = 'neues Bit' (Ich bin doch wieder auf mono umgestiegen)... Somit ist die Verabeitung ziehmlich fix und ich denke das hat schon potential.

In Verbindung mit mono werd ich mal versuchen eine Datenverbindung übers festnetz herzustellen, softwareemuliert! :D

Ich werde demnächst mal schreiben wie schnell ichs hinbekommen habe, Bits durch Audiokabel zu jagen.

LG
 
Nachdem ich die Nacht durchgemacht habe, ist da jetzt mächtig Feuer dahinter. Die Frequenzmodulation bleibt jetzt aus und jede Amplitude ist jetzt ein Bit, die Nachinterpretation der Wav ist sehr effektiv. Wie schnell man das machen kann habe ich noch gar nicht probiert.
Bin also bei 400 Byte/s stehen geblieben und das scheint noch nicht die technische Grenze zu sein.

Mal sehen wie weit ich das treibe, ist eine lustige Vorstellung statt mit USB Sticks, etc mit einem Klinkenstecker Daten zu tauschen. (Gibts das eigentlich schon?)
Anbei mal ein Video, wenn Interesse besteht gebe ich es nach Vollendung frei.

https://www.youtube.com/watch?v=L0ZWAwq02YI

Edit: Wieder von Youtube aufnehmen und decodieren klappt nicht :( muss die Kalibrierung besser machen. Später...
 
Zuletzt bearbeitet:
Hallo,

Das ist doch mehr oder weniger das Gleiche wie es damals beim Akustikkoppler war.

vom Prinzip schon bloß anders und per Software.

Der Grafiktaschenrechner wird aber kein Audiosignal senden und ich meinte mehr für den Computer von Soundkarte zu Soundkarte.
Ich hab die Geschwindigkeit jetzt stabil auf 2,2Kbit bekommen und lasse damit jetzt Dateien schreiben. So kann man nun mit der Geschwindigkeit Dateien übertragen.
Es gibt noch kleine Bugs wenn das Signal nicht gut ist (50hz Störfrequenz finde ich oft per Kabel oder negativiertes Signal, etc...) dementsprechend werde ich an der Kalibrierungssequenz noch arbeiten und euch dann hier das Projekt anbieten.

LG
 
Zurück
Oben