Question:
Comment lire les enregistrements de spectre réalisés avec rtl_sdr dans gqrx?
Paul
2014-09-05 16:59:58 UTC
view on stackexchange narkive permalink

J'ai un dongle DVB R820T et le logiciel rtl_sdr sur un ordinateur Linux.

Je peux écouter différentes fréquences en utilisant le logiciel gqrx qui utilise la bibliothèque rtl_sdr comme pilote de périphérique pour le dongle USB . Je reçois également (évidemment) la portée du spectre et l'affichage en cascade des canaux adjacents. Ainsi, le matériel et le logiciel sont fonctionnels à un certain niveau.

Maintenant, je remarque qu'il existe un programme distinct dans le bundle rtl_sdr également appelé "rtl_sdr" qui peut enregistrer une tranche de spectre sur le disque dur.

Voici un extrait du rappel d'utilisation généré en exécutant rtl_sdr sans paramètre:

  rtl_sdr, un enregistreur I / Q pour les récepteurs DVB-T basés sur RTL2832 Utilisation: -f frequency_to_tune_to [ Hz] [-s samplerate (par défaut: 2048000 Hz)] [-d device_index (default: 0)] [-g gain (par défaut: 0 pour auto)] [-p ppm_error (default: 0)] [-b output_block_size ( par défaut: 16 * 16384)] [-n nombre d'échantillons à lire (par défaut: 0, infini)] [-S force la sortie de synchronisation (par défaut: async)] nomfichier (un '-' vide les échantillons dans stdout)  

Pour un test, je voulais un signal vocal FM continu à bande étroite et fort, j'ai donc essayé d'enregistrer l'émetteur du service météorologique national local sur 162,55 Mhz avec

  rtl_sdr -f 162550000 -g35 -s 1000000 test1.dat  

Je note que cela enregistre également l'échantillon 1 Mhz autour de 162,55 Mhz. Les gros fichiers sont créés rapidement. Quelques minutes ont rapporté environ 300 Mo. J'ai remarqué que le R820T est capricieux et ne définit pas toujours de faibles fréquences d'échantillonnage, et encore une fois, c'est uniquement pour produire un fichier de test. Si je voulais le laisser fonctionner toute la nuit sur une autre plage de fréquences, j'envisagerais de trouver une fréquence d'échantillonnage plus petite.

Une fois enregistrés, quel programme lit ces fichiers? Bien que gqrx ait une option pour lire un fichier d'exemple I / Q, il ne semble pas lire les fichiers créés avec rtl_sdr. J'obtiens une cascade vide et aucun son lorsque j'essaye de lire le fichier dans gqrx.

Des idées?

en relation: http://stackoverflow.com/questions/25587959/bin-to-cfile-flowgraph-for-grc-3-7-2-1/25655984#comment41364278_25655984
Deux réponses:
#1
+2
jcoppens
2014-09-06 03:54:29 UTC
view on stackexchange narkive permalink

Je n'ai pas vraiment essayé cela, alors méfiez-vous!

Je pensais que la sortie, telle qu'elle était enregistrée dans le fichier, serait en fait les échantillons dans un certain format. J'ai donc essayé de le rechercher et j'ai trouvé cette page:

http://sdr.osmocom.org/trac/wiki/rtl-sdr#rtl_sdr

Au bas de la page se trouve un organigramme pour gnu-radio, qui prend le contenu de l'archive, et le désentrelace (l'entrelacement est l'astuce utilisée par l'enregistreur rtl_sdr pour enregistrer alternativement I et Q).

Apparemment, les échantillons sont stockés sous forme d'octets non signés dans le fichier d'origine, et cet organigramme envoie alternativement un octet à la chaîne supérieure ou à la chaîne inférieure. Ils sont d'abord convertis en float, puis -127 est ajouté pour les convertir en valeurs signées. Enfin, après une certaine mise à l'échelle, ils sont recombinés en un signal complexe, qui serait probablement le signal que vous recevriez du dongle en premier lieu.

Dans l'organigramme, ils enregistrent la sortie complexe au format * .cfile, mais je pense que vous pourriez en fait entrer le signal complexe dans le récepteur d'origine pour le décoder à nouveau.

enter image description here

Si votre idée originale était d'enregistrer l'audio, il serait probablement plus utile d'envoyer l'audio du récepteur à un récepteur wav_file. De cette façon, vous l'enregistrez simplement en audio.

Edit: La mise à l'échelle ('8m') multiplie les échantillons de -128 à +127, en valeurs flottantes normalisées, entre -1,0 et +1,0. 8m signifie 0,008, ce qui est (plus ou moins 1/128)

Merci de m'envoyer ça. Donc, le problème est que cet organigramme est un programme qui peut être écrit dans le compagnon radio gnu en une demi-heure environ. Le fichier capture.bin est le fichier d'entrée du diagramme de flux (créé par rtl_sdr) et le fichier capture.c qu'il recrache est le fichier de sortie. Ce fichier .c peut être envoyé à gqrx et cela fonctionne en quelque sorte. Et en quelque sorte pas. Le gqrx audio crache est rétrogradé en fréquence et très lent. Enregistrer cet audio gqrx dans un fichier .wav et faire en sorte qu'un lecteur audio le lise à 3x le taux normal semble à peu près correct.
Oui ... Bien que vous puissiez également utiliser gnuradio comme utilitaire de ligne de commande (et cela pourrait être plus rapide de cette façon), en tant qu'utilisateur occasionnel, il est certainement plus facile d'utiliser la voie graphique.
#2
+1
Paul
2014-10-14 10:02:25 UTC
view on stackexchange narkive permalink

L'enregistrement dans rtl_sdr peut être lu dans gqrx en suivant attentivement la procédure ci-dessous:

  1. Soit A ou B : (A) Créez un programme de radio gnu avec l'organigramme posté par @jcoppens ci-dessus. Une copie peut être trouvée sur le site rtl-sdr, mais comme mentionné sur Stack Overflow, le fichier rtl-sdr .grc utilise des modules obsolètes et doit être réécrit dans le nouveau compagnon radio gnu (30 min à 1 heure de travail) OU (B) Compilez et utilisez le programme Linux GCC que j'ai écrit pour la conversion rtlsdr-en-gqrx.
  2. Effectuez un enregistrement SDR avec rtl_sdr et prenez note de la fréquence d'échantillonnage réelle
  3. Exécutez la conversion mentionnée à l'étape 1. Remarque: le fichier .c de sortie aura plus de 4x la taille du fichier .raw d'entrée.
  4. Démarrez gqrx, accédez à la boîte de dialogue "Configurer les périphériques d'E / S"
  5. Définissez la "Chaîne de périphérique" pour lire le fichier .c généré à l'étape 3 et définissez le taux à partir de l'étape # 2
  6. IMPORTANT : définissez la case "Taux d'échantillonnage" juste en dessous de la chaîne de l'appareil sur le taux de l'étape 2. Cela semble redondant (le taux est également dans la chaîne de périphériques) mais ne l'est apparemment pas (en octobre 2014). Si elle est laissée vide, la fréquence d'échantillonnage sera réglée sur quelque chose que vous ne voudrez peut-être pas (je soupçonne 96k) et remplacera le paramètre de chaîne de périphérique même si la ligne apparaît vide . Laisser cette ligne vide peut entraîner un son lent.
  7. Cliquez sur le bouton "Marche / Arrêt" dans gqrx et la lecture commencera.


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...