www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Digitale Sprachübertragung


Autor: meisteralex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ?

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: meisteralex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ?

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: meisteralex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie kommst du von 1920 Byte/s auf 910 Hz ?

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1920 / 2 = äääääh.... 960 (!)

Sorry ;)

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>wie kommst du von 1920 Byte/s auf 960 Hz ?

Shannon-Theorem
http://de.wikipedia.org/wiki/Claude_Elwood_Shannon

Klingt dann wirklich wie "Eimer"...

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: meisteralex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei den AM - Sendern von Conrad steht bei, das sie eine Bandbreite von 
3khz haben ?
was sagt mir jetzt diese angabe ???
http://www1.conrad.de/scripts/wgate/zcop_b2c/~flNl...


und es gibt auch highspeed module von aurel bei conrad die datenraten 
von 5-50 kbits bringen, würden die mehr bringen ?

Autor: Beurteiler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eigentlich brauchts "nur" das gsm_encode.c und das gsm_decode.c.
Wäre ein Versuch wert, dass auf einen AVR zu portieren...

Autor: Beurteiler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder wäre es nicht einfacher mit ADPCM zu komprimieren? Das töt 
weinigstens brauchbar und braucht nicht so viel Rechenleistung.

Autor: meisteralex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie geh ich denn an die sache ran ? also erstmal nen a/d wandler und 
dann ???

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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ß.


Autor: Nachdenklicher ... (dms)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus Alex,
was ist denn das Ziel - die Nutzanwendung - welche Qualität wird 
gewünscht?

Ahoi D.

Autor: Marius S. (lupin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: meisteralex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ?

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.