Hi Leute,
wollte mal fragen über welchen aufwand es möglich ist sprache digital
über funkmodule zu übertragen (die conrad-standarddinger von aurel).
Ist das leicht, also gibts dafür fertige ics oder ist das ein heiden
aufwand ?
meiner meinung nach bräuchte man ja nur nen a/d wandler und etwas was
den datenstrom in seriell änderd , oder ?
Wie hoch ist den die Übertragungsgeschwindigkeit der Module in
kBit/Sekunde? Wahrscheinlich scheitert das Ganze ausschliesslich an
einem zu geringen Datendurchsatz der Funkstrecke.
Gruß,
Magnetus
die Datendurchsatzrate liegbt bei 19200 b/s also ca 20 kbits = 2,5 KByte
Sprache benötigt eine Bandbreite von mind. 3000 hz, das heißt man könnte
eine abtastfrequenz von 6 mal die Sekunde ansteuert (hört sich das an
??)
was ist wenn man ne lauflängenkodierung zwischenschaltet ?, dafür müsste
es doch einfachste bausteine geben oder ?
meisteralex wrote:
> die Datendurchsatzrate liegbt bei 19200 b/s also ca 20 kbits = 2,5 KByte> Sprache benötigt eine Bandbreite von mind. 3000 hz, das heißt man könnte> eine abtastfrequenz von 6 mal die Sekunde ansteuert (hört sich das an> ??)
Definitiv falsch gerechnet.
19200 b/s = 19200 BITs pro Sekunde
Angenommen, du samplest das Audiosignal mit 8Bit und überträgst es der
Einfachheit halber wie mit einer RS232 (1 Startbit, 8 Datenbit, 1
Stopbit), dann benötigst du für 1 Sample bereits 10Bit.
Rechnung:
19200 Baud / 10 Bit = 1920 Byte/s
Das macht dann heoretisch eine maximal übertragbare Frequenz von
910Hz.
Klingt nicht gerade gut, oder?
Gruß,
Magnetus
Nun, wenn man die Audiodaten unkomprimiert überträgt, dann genügt die
Bandbreite nicht. Hat man aber auf beiden Seiten der Übertragungsstrecke
ausreichend Rechenleistung zur Verfügung stehen, kann man die Audiodaten
komprimieren und so die Bandbreite erheblich besser ausnutzen. Die von
GSM-Telephonen verwendete Kompression (GSM 6.10) kommt mit einer
Übertragungsrate von etwa 1 kByte/sec aus. Und wie gut die klingen kann,
ist jedem "Händie"-Nutzer wohlvertraut.
Weitere Informationen gibts hier
http://kbs.cs.tu-berlin.de/~jutta/toast.html - ob die dort angebotenen
Sourcen auf einen der üblichen µCs portierbar sind und ob dessen
Rechenleistung genügt, das muss jetzt jemand anderes herausfinden.
Viel Spaß dabei.
Ein ARM dürfte wegen der geforderten 32-Bit-Arithmetik wohl geeigneter
sein:
> Our implementation [is] destined to be compiled and used> on a Unix-like environment with at least 32-bit-integers,> but others have ported it to VMS and a MS-DOS 16-bit-environment.
Na schön, 16-Bit-CPUs gehen wohl auch, aber der AVR kann nunmal nur
reine 8-Bit-Arithmetik. Alles andere ist entsprechend aufwendig in
Software nachzubilden.
> GSM 06.10 is faster than code-book lookup algorithms such as> CELP, but by no means cheap; to use it for real-time> communication, you will need at least a medium-scale workstation.
Gut, eine "medium-scale workstation" von 1992 ist heute nicht mehr
ehrfurchtgebierend. Zu der Zeit waren 386er mit 33 MHz "top notch", und
da es wohl nicht auf FP-Arithmetik ankommt, sollte dessen Performance
mit einem aktuellen ARM7-µC (Atmel SAM7xx oder Philips/NXP LPC2xxx) zu
erreichen sein.
Viel Spaß.
Warum überträgst du das Signal nicht analog? Die module sind an sich für
analoge übertragungen ausgelegt (deshalb auch die Angabe der
Bandbreite).
Versuch doch einfach mal ein verstärktes Mikrofonsignal an den sender an
zu schließen und den empfängerausgang einfach mit line in deines PCs
verbinden.
Anwendungsfall ist einfach eine sichere Sprachübertragung zu
gewährleisten.
Die Module von Conrad können meiner meinung nach nicht direkt mit NF
moduliert werden, wie soll das funktionieren, wenn der Eingang digital
ist ?
Wenn es nur darum geht die Sprache halbwegs verstehen zu können, dann
sollte sich mit ~20 kbit/s schon etwas hinbekommen lassen, auch ohne
dass man schwere Geschütze wie GSM-Codecs auffahren muss. Nimm dir mal
Matlab oder Scilab her und probier verschiedene einfache
Komprimierungsverfahren durch. Vielleicht reicht es ja schon, einfach
nur mit 2 Bit pro Sample zu quantisieren. Ansonsten: DPCM,
logarithmische Quantisierung mit 2-4 Bit, ... auf einem AVR kein
Problem.
Ale Komprimierungsverfahren haben aber einen Nachteil: Bei einem
Übertragungsfehler werden je nach Verfahren mehr oder weniger viel
Samples zerstört. Vor allem wenn ein Datenblock auf dem vorhergehenden
aufbaut. Schön ist das z.B. bei einem mpeg oder DivX Film zu sehen: Ein
Fehler ist bis zur nächsten Keyframe sichtbar, und das kann schonmal für
>10s sein.
Wenn man etwas mit Übertragungstechnik experimentieren will, ohne eine
große Bandbreitenbeschränkung zu haben: Mit einem Videosender kann man
problemlos auch UART Daten bis >1MBit/s übertragen: Das Sendesignal über
einen 330Ohm Widerstand auf den Sender geben, und am Empfänger das
Signal über einen Komparator mit 0,5V Schwelle wieder auf 5V Pegel
bringen.
Damit kann man dann wunderbar Audio in CD Qualität (16bit, Stereo,
44kS/s) übertragen. Nur ab etwa 20m Entfernung fangen dann die Fehler
an. Irgendeine einfache Fehlerkorrektur oder Erkennung sollte man also
einbauen.