Forum: HF, Funk und Felder Sprache mit dem RFM12 übertragen?


von Thron (Gast)


Lesenswert?

Hallo,

habe ein Projekt vor und benötige Hilfe bei der Umsetzung.
Ist es möglich mit einem RFM12 Sprache in annehmbarer Qualität (GSM) zu 
übertragen und was brauche ich noch dazu?

Momentan ist folgender Sachstand:

An einem Rekorder wird momentan ein Elektretmikrofon angeschlossen und 
aufgezeichnet. In dem Rekorder ist alles Verbaut was benötigt wird 
(Verstärker etc..). Die Steckverbindung zwichen Mikro und Recorder ist 
eine IP40.

Jetzt will ich statt dem Elektretmikrofon einen RFM12 Sender/Empfänger 
an den Rekorder anschliesen, welcher sein Signal von einem weiteren 
RFM12 erhält an dem wiederum ein Elektretmikrofon angeschlossen ist.

Die zu überbrückende Stecke ist max. 7 - 10 Meter.

Geht sowas bwz. hat jemand Ansätz oder ein ähnliches Projekt?

Vielen Dank im Voraus und Gruß an Alle....

von Bastler (Gast)


Lesenswert?

Thron schrieb:
> was brauche ich noch dazu?

Einen µC mit ADC und DAC und Software und noch ein paar Kleinigkeiten.

Einfacher:
Du baus ein Funkkopfhörersystem um.

von A. W. (uracolix)


Lesenswert?

Um Sprache digital mit GSM zu codieren/decodieren brauchst
du die Rechenleistung eines DSP, ein µC ist damit hoffnungslos
ueberfordert.

Warum nicht einfach ein Funkmikrofon einsetzen ?

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


Lesenswert?

Axel, er wollte das doch nicht mit GSM codieren, sondern nur in mit
GSM vergleichbarer (also recht miserabler ;-) Qualität übertragen.

Keine Ahnung, ob dafür ein RFM12 ausreicht, vermuten würde ich es
schon.

von P. M. (o-o)


Lesenswert?

Ja, reicht aus. Beim Windows Audio Recorder z.B. kann man 8 Bit / 8 kHz 
aufnehmen. Das reicht für Sprache problemlos. Soweit ich weiss, reichen 
auch 4 Bit noch aus und unter gewissen Umständen kann man bis auf 1 Bit 
runter gehen um trotzdem noch etwas zu verstehen.

Das sind 64 Kbit/s, die Funkmodule schaffen soweit ich weiss 115.2 
Kbis/s. Solche Aufnahmen sind noch dazu gut komprimierbar.

von nur Mut (Gast)


Lesenswert?

Schau da mal rein sieht interesant aus.

http://www.emo.org.tr/ekler/7beec5643d7199a_ek.pdf

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


Lesenswert?

P. M. schrieb:
> nter gewissen Umständen kann man bis auf 1 Bit
> runter gehen

Aber nicht mehr bei 8 kHz Abtastfrequenz. ;-)

ISDN hat auch 8 kHz und 8 Bit Auflösung, allerdings mit einer
Mapping-Tabelle names µ-law, sodass es effektiv 12 bit sind.  Aber
zwischen ISDN und GSM liegen in der Qualität ja schon Welten
dazwischen.

von martin (Gast)


Lesenswert?

hallo....

okay...alles recht interessant aber bis jetzt noch nichts handfestes!? 
Hat keiner eine Idee?

Und ja...will nur in "misserabler Qualität" (8 bit) aufzeichnen...*gg*

gruß..

von benwilliam (Gast)


Lesenswert?

die übetragung ist machbar sofern du es schaffst das Audiosignal mit dem 
µC zu codieren

von Mark B. (markbrandis)


Lesenswert?

martin schrieb:

> Und ja...will nur in "misserabler Qualität" (8 bit) aufzeichnen...*gg*

Dann ist das Problem nicht der RFM12 (die Datenrate ist ausreichend für 
einfache Sprachqualität), sondern wie Du das Signal vom Mikrofon 
bandbegrenzst, abtastest, quantisierst, codierst, und auf der 
Empfängerseite das gleiche entsprechend andersherum.

von Michael U. (amiga)


Lesenswert?

Hallo,

die 8 Bit sind erstmal garkein Problem, damit geht auch mehr als nur 
Sprache, alle die den Amiga noch kennen, werden mir das bestätigen.
Die 8kHz Samplerate sind für Sprache auch kein Problem, da ist es 
entscheidend, daß wirklich ein guter Tiefpass vor dem ADC hängt.
Es dürfen eben keine Signalanteile über 4kHz zum ADC gelangen.
Ein aktiver TP mit Grenzfrequenz 3,5kHz sollte es schon sein.

Das Problem sehe ich eher beim RFM12. Mit entsprechend höherer Datenrate 
in festen Paketgrößen übertragen und im Empfänger entsprechend puffern 
und dann ausgeben könnte gehen. Direkt kontinuierlich wird nicht gehen, 
woher sollte die Bytesyncronisation kommen?

Gruß aus Berlin
Michael

von Klaus (Gast)


Lesenswert?

Michael U. schrieb:
> die 8 Bit sind erstmal garkein Problem, damit geht auch mehr als nur
> Sprache, alle die den Amiga noch kennen, werden mir das bestätigen.
> Die 8kHz Samplerate sind für Sprache auch kein Problem, da ist es
> entscheidend, daß wirklich ein guter Tiefpass vor dem ADC hängt.
> Es dürfen eben keine Signalanteile über 4kHz zum ADC gelangen.
> Ein aktiver TP mit Grenzfrequenz 3,5kHz sollte es schon sein.

Für soetwas gibts fertige Codecs aus dem Telefonumfeld. Mache machen 
auch ADPCM zusätzlich zu PCM, da geht die Datenrate noch mal runter. 
Filter sind da häufig schon drin.

MfG Klaus

von mh (Gast)


Lesenswert?


von Verstehe ich nicht ganz (Gast)


Lesenswert?

Bitte mal eine Frage zum RFM12 (kenne das Teil fast nicht):

Ist es möglich, das Dingen ohne µC zum Dauersenden zu bringen?

Ich danke Euch
Jochen

von Verstehe ich nicht ganz (Gast)


Lesenswert?

Verstehe ich nicht ganz schrieb:
> Ist es möglich, das Dingen ohne µC zum Dauersenden zu bringen?

Also ich meinte nur den Träger ohne Modulation.

von Stryker (Gast)


Lesenswert?

Verstehe ich nicht ganz schrieb:
>> Ist es möglich, das Dingen ohne µC zum Dauersenden zu bringen?

Kurze Antwort: Nein (RFM12 muss mind. initialisiert werden)

von Verstehe ich nicht ganz (Gast)


Lesenswert?

Dankeschön, also braucht man in jedem Fall einen µC, ja?
Schade, habe dafür leider keinen Platz mehr in meiner Anwendung.

von Verstehe ich nicht ganz (Gast)


Lesenswert?

Oder liesse sich der RFM12 vielleicht nach dem Initialisieren solo ohne 
µC betreiben?

von A. W. (uracolix)


Lesenswert?

Also was mit einem ATMega noch zu schaffen ist (ausser einer AD-Wandlung 
A-Law-Lookup) ist CVSD, eine ganz einfache Deltamodulation.

http://en.wikipedia.org/wiki/Continuously_variable_slope_delta_modulation

Vorteil dabei ist, du kannst die 1-Bit-Sample-Daten auf der 
Empfaegerseite direkt ueber ein Pin als eine Art PWM-Signal ausgeben, 
etwas analoge Nachbereitung ist noch erforderlich, Gleichspannungsanteil 
filtern und ein RC-Tiefpass dahinter.

von Basti (Gast)


Lesenswert?

Gehen nicht auch kleine Fm modulatoren. NF signal über Mic auf 
Trägerwell modulieren und am Empfänger ein einefachen demodulator. Alles 
schön analog. wie beim guten alten Radio. So ein "testsende" hat doch 
ejder mal in der ausbildung gebastelt. Als empfänger macht es (je nach 
schwingkreisfrequenz) auch ein Radio. Das ist aber nicht so gern 
gesehen.

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


Lesenswert?

Basti schrieb:
> Das ist aber nicht so gern
> gesehen.

Oder genauer gesagt: in dieser Form nicht zulässig.  Der TE hatte
aber indirekt nach einer Variante gefragt, die im entsprechenden
Rahmen rechtlich zulässig ist.  Davon sollte man ihn nun nicht
unbedingt abzubringen versuchen.

von Basti (Gast)


Lesenswert?

Wie wäre es, das trägersignal in das "frei Band" zu legen. Ich meine 
mich zu erinnern das es bei 420MHz<f<480MHz liegt. oder liege ich 
daneben?

Wenn ja, empfänger anpassen geht eigendlich

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


Lesenswert?

Basti schrieb:
> Wie wäre es, das trägersignal in das "frei Band" zu legen.

Wie modulierst du es?

Dergleichen gab's früher als sogenannte LPD-Walkie-Talkies.  Wenn man
davon noch ein Paar bekommt, kann man diese natürlich gleich umbauen
für den Zweck.

von Basti (Gast)


Lesenswert?

Naja wenn es einfach sein soll, ein FM-Modulator. Die kleinen 
"Testsender" baupläne gibt es ja noch. Ich erinner mich da an eine 
kleine schaltung bestehen aus Transitor zum mischen und verstärken und 
LC schwingkreis. L waren 4 windungen Luftspule und C war eine 
Trim-kapazität. Mit 4 Windungen wra man im Radiosignal. Mit 3 oder 
weniger sollte man in höhere Frequenzen kommen. Man sollte jedoch vorher 
den LC-Kreis berechnen. Sowas habe ich sogar noch in meiner Grabblbox 
liegen. geht sogar noch mit 12V als Betriebsspannung. :-D

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


Lesenswert?

Basti schrieb:
> Ich erinner mich da an eine
> kleine schaltung bestehen aus Transitor zum mischen und verstärken und
> LC schwingkreis.

Vergiss es!  Damit wirst du die Forderungen der EN 300 220 nie im
Leben einhalten.  Allein 100 ppm maximaler Frequenzfehler (gegenüber
der Nennfrequenz) kannst du bei 434 MHz knicken mit einem einfachen
LC-Kreis (selbst dann, wenn du den Kreis auf einer niedrigeren
Frequenz aufbaust und dann vervielfachst), und um die maximal 250 nW
spurious emissions einzuhalten, wirst du wohl die ganze Apparatur
komplett in ein Weißblechgehäuse löten dürfen (mitsamt Antenne
natürlich ;-).

Begreif' doch mal, dass es Leute gibt, die nicht nur eine Bastellösung
haben wollen, sondern die die Vorschriften zumindest einzuhalten
versuchen.

von Basti (Gast)


Lesenswert?

Na dann brauch man auch nicht nach selbstbaulösungen suche. Ab zum 
Händelr und was vernüftiges kaufen. Sprachfunksystem gibt es ja zu 
kaufen. nicht ganz billig wenn es was gutes sein soll, aber dafür werden 
alle richtlinien eingehalten.

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


Lesenswert?

Basti schrieb:
> Na dann brauch man auch nicht nach selbstbaulösungen suche.

Doch, wie weiter oben schon geschrieben war, sollte man es mit
einem RFM12 in der Tat schaffen, ein standardkonformes Gerät
hinzubekommen, das Sprache überträgt.  Ich würde für meinen Teil
allerdings wohl eher ein Zigbit benutzen.

von Basti (Gast)


Lesenswert?

Ja gut, das geht. Bei beiden wird halt ein µC verwendet. Aber das muss 
der Threaterstellr entscheiden ob das gut so ist. Ich habe halt meine 
Ideen geschildert, weil die ohne µC auskommen. Ich gebe dir recht, dass 
man da auserhalb der Normen liegt, aber der Erfahrungsgewinn beim 
Senderbau ist doch gegeben.

Aber wie du schon sagtest, es geht um das einhalten der Werte und dann 
pflichte ich dir bei.

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


Lesenswert?

Basti schrieb:
> ..., aber der Erfahrungsgewinn beim
> Senderbau ist doch gegeben.

Ja, das ist allerdings eine völlig andere Aufgabenstellung dann.

von ChrisK (Gast)


Lesenswert?

Hallo,

das geht sogar relativ einfach mit einem RFM12, ohne das man da 
irgendwas großartig codieren müsste. Und das ganze auch kontinuierlich. 
Zum einen muss man aber den FIFO des RFM auch voll nutzen, zum anderen 
ggf. mit kurzen Aussetzern rechnen falls bei der Übertragung 
irgendwelche Störungen auftreten.

Auf der Senderseite wird ganz einfach über den µC internen ADC 
gesamplet, natürlich mit Tiefpassfilter vor dem Eingang sowie hinzufügen 
eines DC Offset (der ADC macht ja nur im Bereich 0V bis Vref, also muss 
die "Nullinie" auf Vref/2 liegen). Das lässt sich ganz simpel mit einem 
Zweifach OpAmp erledigen.

Man sampled das Signal kontinuierlich und schreibt es in einen 
Zwischenbuffer. Sobald genug Bytes vorhanden sind um den RFM FIFO zu 
füllen schickt man ihm die Daten. Natürlich samplet man dabei immer im 
Hintergrund weiter. Also zwei IRQ Routinen: Einen Timer-IRQ zum Samplen, 
einen SPI IRQ um die Datenpakete zu schicken.

Auf der Empfängerseite braucht man wiederum einen Buffer, zwei Timer, 
PWM und den SPI. Ganz am Anfang wartet man auf ein Paket. Ist eines 
angekommen, wird dies in den Buffer geschrieben und ein Timer gestartet. 
Nun wartet man auf das nächste Paket. Ist das angekommen, liest man den 
Timer aus um so herauszufinden wie der Intervall zwischen den Paketen 
ist. Jetzt wird der zweite Timer gestartet um die Daten per PWM 
auszugeben. Dieser zweite Timer wird benutzt um in festen Abständen den 
PWM mit einem neuen Wert zu aktualisieren, ich gehe hier davon aus das 
das PWM in hardware erzeugt wird.

Am PWM Ausgang natürlich auch wieder ein Tiefpassfilter. PWM Frequenz 
sollte mindestens das vierfache der Samplingfrequenz betragen um eine 
annehmbare Qualität zu erhalten.

Die Interval-Zeit des zweiten Timers ergibt sich aus der Intervalzeit 
der Datenpakete, die durch den ersten Timer ermittelt wird, geteilt 
durch die Anzahl der Bytes pro Paket. Natürlich muss der erste Timer 
auch weiterhin benutzt und ausgewertet werden, da ja die Sende- als auch 
die Empfangsseite geringe Schwankungen haben durch Temepraturdrift der 
Oszillatoren.

Man sollte auch überprüfen ob die Paket-Intervallzeit plausibel ist. 
Kommt in der erforderlichen Zeit kein neues Paket, einfach das zuletzt 
empfangene Byte weiter ausgeben, bis neue Daten da sind. In jedem Fall 
empfiehlt es sich eine Einfachst-Checksum mit zu senden, z.B. indem man 
ganz einfach alle Bytes zusammenaddiert, wobei das Ergebnis auch wieder 
ein Byte ist das dann ganz einfach "Überläuft". Z.B. check = check + 
databyte, wenn check 0xFE ist, und databyte ist 0x10, ist das Ergebnis 
dann eben 0x0E. Das passiert ja automatisch wenn man kontinuierlich auf 
ein Byte aufaddiert. Als Ausgangswert muss natürlich immer der gleiche 
Wert pro Paketstart genommen werden. Auf der Empfangsseite prüft man das 
dann, und wenn es nicht stimmt verwirft man das Paket. Dadurch würden 
dann die Anfangs erwähnten Aussetzer entstehen.

Die Datenrate des RFM12 ist ausreichend für diese Methode. Man kann ihn 
auch mittels externem Filter mit 256 kBit betreiben, soweit ich das noch 
in Erinnerung habe. Macht man das, so kann man im Falle einer Störung 
das letzte Paket erneut übertragen lassen. Das erreicht man indem der 
Empfänger jedes Paket positiv quittiert (ACK), oder halt einen fehler 
erkennt und negativ quittiert (NACK), woraufhin dann der Sender das 
Paket erneut schickt. Bei so kurzer Entfernung ist die 
Übertragungsqualität aber eigentlich in den meisten Fällen ausreichend.

Irgendwo habe ich auch passenden Code dafür rumfliegen, weil ich genau 
das vor ca. 2 1/2 Jahren mal gemacht habe, vielleicht finde ich den ja 
auf itgendeiner Backup-Platte wieder, dann stelle ich ihn hier rein.

Grüße,

Chris

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.