Forum: HF, Funk und Felder Sprachübertragung


von RichieRich (Gast)


Lesenswert?

Hallo,

ich würde gerne ein Sprachsignal von einem ATMega32 zum anderen 
Übertragen und von diesem aus per RS232 zum PC und sich dieses dort 
anhören.
Die Sprachqualität soll gut bis mäßig sein.

Nun habe folgende Möglichkeit wie man es angehen könnte:
An ATMega einen Mikrophon anschließen, die analogen Signale dann mittels 
AD-Umsetzer in digitale umwandeln und diese anschließend an den anderen 
ATMega mit RFM12 übertragen.

Jedoch kann ich mir vorstellen, das es einen riesen Aufwand darstellt, 
oder irre ich mich?
Kann ich dies mit dem ATMega32 und RFM12 realisieren oder sind diese 
dafür ungeeignet?

Gibt es eine weitere einfachere Möglichkeit das Sprachsignal zu 
übertragen, vielleicht gibt es bereits fertige Funkmodule, die schon das 
Signal ins digitale umwandeln oder ähnliches?

Danke

von Tom (Gast)


Lesenswert?

Vorverstärker zwischen Mikrofon und ATMega muss sein.

von mr.chip (Gast)


Lesenswert?

Mega8 nach Mega8 ist kein Problem. Eng wird es eher bei der Übertragung 
auf den PC. Normalerweise kriegt man max. 115000 Baud, bei 
8-Bit-Auflösung sind das also noch gut 10 kHz Samplingrate und somit 
noch rund 5 kHz echte Bandbreite. Sprache kann man damit verständlich 
übermitteln, aber 'gute' Qualität ist das nicht mehr.

von Sven P. (Gast)


Angehängte Dateien:

Lesenswert?

Ich hab mal so ne Messreihe angelegt. Ab circa 4kHz Sampling wirds 
verständlich, bisserl dumpf (klar, fehlt ja Bandbreite), aber man kanns 
verstehen (siehe...ähhm..höre Anhang, das ist ein Text mit 5kHz).

Dann wärn da natürlich noch allerhand Codecs, die deine Audiodaten 
schrumpfen lassen:
* PCM
* MELP
* Speex
..und wie sie alle heißen.

Speex funktioniert angeblich schon ab 600 Bytes/sec mit recht guter 
Sprachqualität, der AVR dürfte dafür aber etwas knapp sein.

von 6645 (Gast)


Lesenswert?

Hat Atmel nicht eine Appnote zu uLaw & ALaw ?

von Benedikt K. (benedikt)


Lesenswert?

uLaw und ALow sind von der Kompression her aber bescheiden (2:1), ebenso 
ADPCM (bei mehr als 2:1 wird die Qualität sehr schlecht).
Alles was besser als etwa 3:1 komprimiert läuft entweder nicht auf einem 
AVR, oder die Qualität ist unbrauchbar.
Ich hatte auch schon mit dem Gedaknken gespielt, Audio über RFM12 zu 
übertragen, aber es mangels passender Komprimierung dann doch sein 
lassen.
Das einzige was ich gefunden hatte, das ohne größeren Aufwand möglich 
wäre ist ein Speex Codec für einen dsPIC. Der braucht aber >20MIPs und 
eine Menge RAM usw.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Hallo,

es gibt auch resourcensparende Modulationsverfahren, die z.B. mit einem 
Bit relativ gut verständliche Übertragungen hinbekommen. Suche mal im 
Web unter dem Stichwort "Delta-Modulation". Dabei wird ein Kurvenverlauf 
in der 1. Ableitung (steigt, bleibt, fällt) abgebildet ...

Frank

von Der Chef (Gast)


Lesenswert?

Am einfachsten geht das mit DCPM/ADPCM. Die nutze ich auch für 
Funkübertragung.

Ein paar Links dazu:
http://www.silabs.com/public/documents/tpub_doc/anote/Microcontrollers/Small_Form_Factor/en/an147.pdf
ww1.microchip.com/downloads/en/AppNotes/00643b.pdf
http://www.atmel.com/dyn/resources/prod_documents/doc2572.pdf

von Hans (Gast)


Lesenswert?

Könnte man evtl. zwei günstig ersteigerte DECT Telefone mit dem ATMega 
steuern? Die Sprachübertragung würden dann die Telefone übernehmen.

von Benedikt K. (benedikt)


Lesenswert?

Hans wrote:
> Könnte man evtl. zwei günstig ersteigerte DECT Telefone mit dem ATMega
> steuern?

Die Idee hatte ich auch schon, das kann man vergessen (außer man nutzt 
das Telefon komplett und gibt das Audiosignal analog rein). Die 
verbauten ICs stammen fast immer von Siemens/Infineon und sind alles 
proprietärer Mist, zu denen man keine Datenblätter bekommt. Das einzige 
was ich bisher rausgefunden habe ist, dass die PLLs ein paar hundert mal 
pro Sekunde neu programmiert werden, also alleine schon für die 
Datenübertragung der Steuerdaten ein ziemlicher Aufwand notwendig ist.

von Benedikt K. (benedikt)


Lesenswert?

Frank Esselbach wrote:
> Hallo,
>
> es gibt auch resourcensparende Modulationsverfahren, die z.B. mit einem
> Bit relativ gut verständliche Übertragungen hinbekommen. Suche mal im
> Web unter dem Stichwort "Delta-Modulation". Dabei wird ein Kurvenverlauf
> in der 1. Ableitung (steigt, bleibt, fällt) abgebildet ...

Allerdings verschwendet die noch mehr Bandbreite, die Samplerate muss 
nämlich sehr viel höher sein, als bei den mit 8 oder 16bit 
digitalisierten Rohdaten. Beispiel: 8bit Wert -> 1bit, bei gleicher 
Bitrate kann die Samplerate also 8x höher liegen. In den 8bit kann man 
aber gerade mal einen Wertebereich von +/-8, also 3bit überwinden.

"Bleibt" gibt es übrigends meistens nicht, sondern man verwendet nur 
steigt/fällt, was ein zusätzliches Rauschen erzeugt.

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Sinnvoll ist es auch die Bandbreite nach unten hin zu begrenzen, dann 
wird der gesprochene Text noch verständlicher. (Zu tiefe töne stören 
nur)

von Sonnenschein (Gast)


Lesenswert?

Es gibt zu ADPCM auch was für den AVR. Ich glaube, ein Cornell Projekt 
und eine AN zum Dekodieren. Man findet im Netz auch Samples, Audacity 
kann einige Kompressionsarten beim Export.

http://www.mikrocontroller.net/search?query=adpcm

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Tom wrote:

> Vorverstärker zwischen Mikrofon und ATMega muss sein.

Sehr glorreicher Beitrag, der 1.) nicht in dieses Forum passt (weil's
hier eher um die übertragungstechnischen Aspekte geht) und 2.) nicht
stimmt.  Der ATmega32 hat einen internen Verstärker am ADC, der die
Sache (für ein gängiges Elektretmikro) durchaus erledigen kann.

Beitrag "Re: uC gesucht; Funktionsumfang; Anfängerfrage"

von Der Chef (Gast)


Lesenswert?

@Sonnenschein:
>und eine AN zum Dekodieren


Die hatte ich oben verlinkt...

von Fasti (Gast)


Lesenswert?

Hi!

Wie wärs mit einem externen Codec für den AVR? Ein VS1053 kann En- und 
Decodieren und das sogar im OggVorbis Format. Damit sollte man dann auch 
eine brauchbare Qualität hinbekommen.32kB/s für ein Monosignal bringen 
schon eine recht gute Qualität in OggVorbis. Ist halt nicht ganz billig.

Grüße

Fasti

von Ulf K. (Gast)


Lesenswert?

Hallo,

wie wäre es mit einem extra Sprachcodec (sowas wie für GSM, Baudraten 
bis 4,8kbps). Zu aufwändig?
Schau mal hier: http://www.dvsinc.com/manuals/AMBE-2000_manual.pdf

Gruß

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Ja das ist das D-Star-Modem, das von ICOM im Amateurfunk propagiert 
wird, leider ist auf dem Verfahren ein Copyright des Herstellers, sodaß 
man keine Softwarelösung, z.B. mit Soundkarte veröffentlichen darf.
http://de.wikipedia.org/wiki/D-STAR
Digitale Sprachübertragung mit 3600 bits/s (3.6 kbps) inkl. 
Fehlerkorrektur

Im BOS-Funkbereich (Polizei, Hilfsdienste) ist ein anderer Standard 
üblich, der zuverlässiger sein soll
http://de.wikipedia.org/wiki/Bos_funk#Digitaler_BOS-Funk

von RichieRich (Gast)


Lesenswert?

Wow soviele Infos, ich hatte mir die Sprachübertragung weniger aufwändig 
vorgestellt. Aber das klingt nach einer MENGE Arbeit!
Jetzt kenne ich aber zumindest den konkretten Wegweiser.

Danke nochmals an alle für die Infos!

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

RichieRich wrote:

> Wow soviele Infos, ich hatte mir die Sprachübertragung weniger aufwändig
> vorgestellt.

Sie wird weniger aufwändig, wenn du mehr Kanalbandbreite zur Verfügung
hast.  Dann musst du keine irgendwie gearteten Kompressionsalgorithmen
mehr anwenden, und wenn der Kanal zuverlässig ist, dann brauchst du
auch keine Fehlerkorrektur.

Selbst ISDN benutzt aber halt schon µ-law-,,Kompression'', um mit nur
8 bit pro Sample auszukommen, zusammen mit 8 kHz Abtastrate macht das
dann die ISDN-typischen 64 kbit/s.  Zum Vergleich, für CD-Qualität
braucht man 1411200 kbit/s (2 Kanäle je 16 bit, keine Kompression,
44,1 kHz Abtastrate).

von Katherine J. (katherine)


Lesenswert?

Jörg Wunsch wrote:
> Zum Vergleich, für CD-Qualität
> braucht man 1411200 kbit/s (2 Kanäle je 16 bit, keine Kompression,
> 44,1 kHz Abtastrate).
1411200 bit/s, Faktor 1000 kleiner aber immer noch eine ganz dicker 
Datenstrom.
Gruß Katherine

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Katherine J. wrote:

> 1411200 bit/s, Faktor 1000 kleiner

Hand-vor-den-Kopf-klatsch klar, danke!

von Günter (Gast)


Lesenswert?

Hallo,
vielleicht hilft das hier weiter
http://www.romanblack.com/picsound.htm

Gruß
Günter

von Disco Stu (Gast)


Lesenswert?

Der Thread ist zwar schon alt, aber anstatt mit Kanonen auf Spatzen zu 
schießen könnte man auch einfach einen sehr einfachen Codec mit Delta 
Modulation verwenden, der sich locker in einem AVR unterbringen lässt 
und schon ab 16 kBit/s brauchbare Ergebnisse liefert (passende analoge 
Filterung des Eingangs und Ausgangssignal wird vorausgesetzt).
Ein AVR mit Harware Multiplizierer ist optimal, ohne geht es aber auch 
(es sind nur 2 (16 Bit) Multiplikationen pro Abtastwert nötig), dazu 
zwei Vergleiche (8 Bit), 1 (ggf. 2) Additionen/Subtraktionen und eine 
Schiebeoperation.
Encoder und Decoder sind identisch, mit dem Unterschied dass der Decoder 
einen Vergleich weniger durchführen muss.
Der Codec ist fehlertolerant, da die Information eines (fehlerhaften) 
Bits über einige ms "abklingt". Wenn man es sich anhört, erhöht sich 
(ähnlich wie bei einer analogen Funkverbindung) das Rauschen im 
Hintergrund.

Weblinks:
http://en.wikipedia.org/wiki/Continuously_variable_slope_delta_modulation
http://www.gamearchive.com/General/Data_Sheets/cvsd_speech_info/an1544_cvsd.pdf

von Pascal O. (raven761)


Lesenswert?

> wie wäre es mit einem extra Sprachcodec (sowas wie für GSM, Baudraten
> bis 4,8kbps).


GSM "schätzt" nur was jemand sagt, ansich schickt GSM keine 
Sprachinformationen, sondern nur einen Index. Dieser Index ist für eine 
Liste gedacht, in der die menschliche Sprache in 20ms Laute unterteilt 
ist. Der Empfänger sucht sich dann mittels Index diesen Sprachton aus 
seiner Datenbank wieder raus. Damit spart man viel Übertragungsaufwand!

von Disco Stu (Gast)


Lesenswert?

>Damit spart man viel Übertragungsaufwand!
...und tauscht das gegen nur "minimalen" Aufwand für den GSM Codec ein.
Mal im Ernst: Ein AVR ist der falsche Prozessor für hochkomprimierende 
(Sprach)Codecs.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.