Kérdés:
Hogyan lehet detektálni egy hangot egy FM frekvencián egy RTL SDR vevő segítségével?
Ash
2015-06-24 03:19:19 UTC
view on stackexchange narkive permalink

Egy egyszerű hangot továbbítok, amely 50 ms-ig tart FM-adó segítségével. Világosan látom, hogy ezt a hangot megkapta az RTL-SDR eszközöm, amikor ránézek egy spektrumgrafikonra (a GQRX használatával).

A hang fogadásakor azonnal be kell hívnom egy linuxos kernel függvényt, tehát Valós idejű megoldást akarok, amely feldolgozza a jelet. Arra gondolok, hogy a legjobb módszer az lenne, ha a kimeneti áramot a terminálon keresztül egy shell programomba vezetném, de szükségem lenne erre a folyamra, hogy egyszerűen a jel demodulált amplitúdója legyen. Akkor hívnám a függvényemet, amikor az amplitúdó elegendő tényezővel nőtt.

Van-e valamilyen módszer erre?

Egy válasz:
Kevin Reid AG6YO
2015-06-24 03:30:55 UTC
view on stackexchange narkive permalink

Ha a hang DTMF-hang, vagy számos más egyszerű hangkódprotokoll közül választhat, akkor a multimon-ng segítségével észlelheti. A multimon-ng az észlelt hangoknak megfelelő szöveget fog kiadni. Ez azt is jelenti, hogy nem kell beprogramoznia az amplitúdó kritériumot. Valami ilyesmi:

  rtl_fm -f <freq> -s 22050 -M wbfm | multimon-ng -a DTMF -t nyers - | <your program>  

ahol a „ <your program> ” olyan program, amely megvárja a stdin bizonyos bemenetét, és meghívja a szükséges funkciót. Az opciók magyarázata:

  • rtl_fm ... -s 22050 a multimon-ng számára megfelelő hangsebességet állít be, amelyhez 22050 Hz bemeneti mintavételi frekvencia szükséges.
  • rtl_fm ... -M wbfm azért van, mert azt mondod, hogy "FM-autórádiót" használsz az adáshoz, amely feltételezem, hogy a használatra szánt alacsony fogyasztású adókra gondolsz autórádióval. A Broadcast FM szélessávú FM, nem pedig az amatőr / kétirányú rádiók által használt keskeny sávú FM. Ha ezek egyikét használná, akkor ez -M fm lenne (vagy elhagyná ez az alapértelmezett).
  • multimon-ng ... -a DTMF megmondja a multimon-ng-nek, hogy csak a DTMF-et dekódolja, és semmi mást ne próbáljon meg.
  • multimon-ng ... -t raw - utasítja a multimon-ng-t, hogy az audio eszköz megnyitása helyett olvassa el a stdin-ről.

Használhatja a frekvenciát korrekciós PPM, gain, szűrés stb. opciók a rtl_fm -ra; ez egy teljesen más cikk lenne, ezért csak szeretném rámutatni, hogy léteznek.

A kimenet A multimon-ng értéke egy sor lesz észlelt kódonként a DTMF: előtaggal, így:

  DTMF: 1DTMF: 2DTMF: 3   elő>

Számos más kód is használható, amelyeket a multimon-ng támogat - javasoljuk, hogy tanulmányozza a multimon-ng readme-jében említett kódokat. Akár a MORSE_CW (Morze code) kódot is használhatja, amelynek nincs külön hangmagassága, de a hangok meghatározott időtartamúak (egy magányos 50 ms-os hang mindig „E” -nek dekódolódik).


Ésszerű lenne ezt a GNU Radio-ban is felépíteni, amely lehetővé tenné az összes jelfeldolgozás egyetlen programba történő integrálását és több választást az RF hardverekről. Azonban a beállításához lényegesen több kódra lenne szükség.

Ennek eléréséhez DTMF hangot kell előállítanom egy másik linuxos gépen. Van valami ötlet, hogyan lehet ezt csinálni? A hangot a hangkártyán keresztül továbbítom egy szokásos FM autórádió segítségével.
A DTMF csak két szinusz hullám összege - [A Wikipédiának minden frekvenciája megvan] (https://en.wikipedia.org/wiki/Dual-tone_multi-frequency_signaling). Egy jó hangszerkesztő vagy egy egyszerű program képes rá (ügyeljen arra, hogy ne klippeljen!)
@Ash Elkészült és tesztelt, részletekkel szerkesztve. Ezenkívül különbséget jelent, hogy szélessávú (sugárzott) FM adót használ (feltételezem, hogy az „autórádió” alapján készült), ezért kérjük, szerkessze ezeket az információkat a kérdésébe.
Tehát még mindig nem tudom működni. Először futtatom ezt a parancsot: `rtl_fm -f 88.6M -s 22050 -M wbfm | multimon-ng -a DTMF -t raw - Ezután egy online DTMF hanggenerátort [link] (http://onlinetonegenerator.com/dtmf.html) használok néhány különböző hang továbbítására az FM adón keresztül. Az adó beállítása 88,6MHz. Amikor előhozom a GQRX-t, könnyen látom a hang hatását ezen a frekvencián. De nem látok semmilyen kimenetet a multimon-ng-től, amikor továbbítom a hangokat. Egy furcsa dolog az, hogy az rtl_fm kimenete tartalmazza ezt a sort: ** 88853575 Hz-re hangolva. ** Melyik a rossz frekvencia ... Van ötlet?
[Saját adóm] (http://www.amazon.ca/gp/product/B00IRSYCY2?psc=1&redirect=true&ref_=oh_aui_detailpage_o00_s00)
@Ash Kérjük, szerkessze kérdésére az adójával kapcsolatos információkat. Ami a rossz frekvenciát illeti, ez normális - az rtl_fm DC eltolás esetén offset hangolást használ. Nincs nagyszerű hibaelhárítási ötlet, sajnálom.


Ezt a kérdést és választ automatikusan lefordították angol nyelvről.Az eredeti tartalom elérhető a stackexchange oldalon, amelyet köszönünk az cc by-sa 3.0 licencért, amely alatt terjesztik.
Loading...