Etalonnage

Les clés USB SDR bon marché ne sont pas précise lors du réglage de la fréquence demandée. Pour la reception TNT qui est leur vocation initiale, cette opération n'est pas nécessaire mais pour écouter une fréquence très précise, c'est loin d'être parfait. Elles ont besoin d'être etalonnées afin de donner le meilleur de leur capacité. Cette opération peut s'effectuer de plusieurs manières et permet d'obtenir le facteur de correction de fréquence (nommé PPM = Parts Per Million en anglais) injectable ensuite dans les différents programmes.

Pour mieux réaliser l'impact de l'offset, prenons l'exemple de l'écoute de la fréquence de 446 MHz utilisée par les walkies-talkies de type PMR446 : le canal 1 est à 446.00625 MHz. Un offset de 40 (valeur habituelle) provoquera une dérive de $446.00625 *0.0000405 = 0.01784025\ MHz$. Avec un offset est positif, la fréquence réellement écoutée est alors de 446.02409 MHz, soit entre le canal 2 (446.01875 MHz) et 3 (446.03125 MHz).

Le bon coté de cette dérive est que :

  • elle est linéaire sur toute les fréquences;
  • elle ne varie plus une fois le dongle à température;
  • elle est plutôt constante au cours de la vie de la clé.

Il existe 2 manières d'étalonner la clé :

  • avec rtl_test qui utilise une mécanise interne à la clé pour connaitre sa dérive
  • en utilisant kal qui requiert un émetteur externe stable pour se caler dessus et mesurer plus précisement la dérive.

La commande à lancer est simple :

rtl_test -p
Found 1 device(s):
  0:  Realtek, RTL2838UHIDIR, SN: 00000001
 
Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6 
[R82XX] PLL not locked!
Sampling at 2048000 S/s.
Reporting PPM error measurement every 10 seconds...
Press ^C after a few minutes.
Reading samples in async mode...
real sample rate: 2048084 current PPM: 41 cumulative PPM: 31
real sample rate: 2048023 current PPM: 11 cumulative PPM: 31
...

L'étalonage doit se faire sur plusieurs dizaines de minutes le temps que la clé atteigne sa température de fonctionnement, sinon les fluctuations sont importantes comme ci dessous :

rtl_test -p
Found 1 device(s):
  0:  Realtek, RTL2838UHIDIR, SN: 00000001
 
Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6 
[R82XX] PLL not locked!
Sampling at 2048000 S/s.
Reporting PPM error measurement every 10 seconds...
Press ^C after a few minutes.
Reading samples in async mode...
real sample rate: 2047765 current PPM: -115 cumulative PPM: -115
real sample rate: 2048033 current PPM: 16 cumulative PPM: -46
real sample rate: 2048095 current PPM: 47 cumulative PPM: -14
real sample rate: 2048006 current PPM: 3 cumulative PPM: -10
real sample rate: 2048099 current PPM: 49 cumulative PPM: 2
real sample rate: 2048001 current PPM: 1 cumulative PPM: 2
real sample rate: 2048103 current PPM: 51 cumulative PPM: 9
real sample rate: 2048026 current PPM: 13 cumulative PPM: 10
real sample rate: 2048080 current PPM: 39 cumulative PPM: 13

Après 1 heure, la valeur est très stable :

real sample rate: 2048035 current PPM: 17 cumulative PPM: 31
real sample rate: 2048108 current PPM: 53 cumulative PPM: 31
real sample rate: 2048084 current PPM: 41 cumulative PPM: 31
real sample rate: 2048023 current PPM: 11 cumulative PPM: 31
real sample rate: 2048093 current PPM: 46 cumulative PPM: 31
real sample rate: 2047977 current PPM: -11 cumulative PPM: 31

Cette première opération donne une valeur de 31. Pour utiliser cette valeur avec rtl_fm, ajouter le paramètre -p :

rtl_fm -f 100.9M -M wbfm -s 200000 -r 48000 -p 31 | aplay -r 48000 -f S16_LE