Pub

vendredi 17 juin 2022

Algorithme de calcul du fading (version 2) dans RXperiment


But :

Cet algorithme d'évaluation du fading (version 2) a pour but de faire calculer par une machine (en l'occurrence un microcontrôleur connecté à un récepteur radio) la notion de "trouble de la propagation", ou "propagation disturbance" en anglais, représentant le paramètre P du code SINPO défini par l'ITU (International Telecommunication Union). Le code SINPO est utilisé pour l'évaluation de la qualité de réception d'une émission radio, il est très utilisé, notamment par les amateurs de réception radio sur ondes courtes pour leurs rapports d'écoute. Normalement, c'est l'auditeur lui-même qui évalue le SINPO.
L'algorithme décrit ci-après essaie de remplacer l'évaluation humaine du fading par un mode de calcul intégré au projet RXperiment. 


Description de l'algorithme: 

I) Dans une boucle de mesure du niveau du signal présent sur l'entrée analogique du microcontrôleur, 30 mesures seront effectuées sur une période de 30 secondes, une mesure par seconde.


II) Uniquement lors du premier passage dans la boucle de lecture, on met à zéro la variable SIGF servant de base au calcul du fading, ainsi que la variable CVSS qui recueillera le cumul des niveaux de réception :

    SIGF = 0
    CVSS = 0


III) On procède à la lecture de la tension présente sur l'entrée analogique :
 
    Lire l'entrée analogique et mettre la valeur mesurée dans RXVAL


Le niveau RXVAL est mesuré de 0 à 4095 sur l'entrée analogique du microcontrôleur (DAC 12 bits). Il est ramené à une valeur VSS de 0 à 5 :

    si  (RXVAL = 0)                         alors VSS = 0
    si ((RXVAL > 0)    et (RXVAL <= 819))   alors VSS = 1
    si ((RXVAL > 819)  et (RXVAL <= 1638))  alors VSS = 2
    si ((RXVAL > 1638) et (RXVAL <= 2457))  alors VSS = 3
    si ((RXVAL > 2457) et (RXVAL <= 3276))  alors VSS = 4
    si  (RXVAL > 3276)                      alors VSS = 5

Et on cumule la valeur de VSS dans CVSS :

    CVSS = CVSS + VSS

On calcule la valeur SIGF : c'est le cumul de sa valeur précédente avec la valeur absolue de la différence entre AVSS (la valeur précédente de VSS) et la valeur actuelle de VSS. On cumule ainsi dans SIGF la fluctuation du signal, quelque soit son sens de variation, augmentant ou diminuant :

    SIGF = SIGF + abs(AVSS - VSS)

On doit aussi faire en sorte qu'une valeur mesurée à zéro se répétant se doit d'impacter la valeur de SIGF, ce que ne fait pas l'équation précédente qui ne prend en compte que les fluctuations. Il faut donc rajouter une condition avec un calcul spécifique pour ce cas où le signal ne fluctue pas mais où il est simplement absent :

    si ((AVSS = 0) et (VSS = 0)) alors SIGF = SIGF + 4

Remarque : La valeur 4 rajoutée à SIGF a été déterminée empiriquement lors des essais d'ajustement de l'algorithme.

On mémorise la valeur courante VSS en l'attribuant à AVSS (ancien VSS) pour l'utiliser lors des passages suivants dans la boucle :

    AVSS = VSS

V) Une fois la boucle des 30 mesures terminée, on évalue la fluctuation du signal P par un nombre 0 à 5, où 5 est la meilleure note pour la qualité du signal : aucune fluctuation, 4 : fluctuation légère, 3 : fluctuation modérée, 2 : fluctuation sévère et 1 étant la plus mauvaise note : fluctuation extrême.
A noter que la valeur 0 ne reflète pas un critère de valeur du fading mais cela signifie simplement qu'on ne peut pas évaluer le fading car aucun signal n'a été détecter lors la période de mesure, les 30 valeurs mesurées étaient à zéro.

Détermination finale de P :

  P = 5
  si (SIGF > 0)   alors P = 4 
  si (SIGF > 28)  alors P = 3 
  si (SIGF > 56)  alors P = 2 
  si (SIGF > 84)  alors P = 1 
  si (CVSS = 0)   alors P = 0


Les paliers de 28 unités pour passer d'un fading de 4 à 3, de 3 à 2 et de 2 à 1 ont été déterminés empiriquement afin de correspondre le mieux possible à ce que l'on peut humainement apprécier lors de l'écoute de stations radio sur le récepteur. 

Bien que cette version 2 me paraisse coller assez bien à la réalité, l'algorithme peut certainement être amélioré. N'hésitez à mettre en commentaire vos remarques ou suggestions.

L'évaluation du fading est visible dans les feeds rxpinfo1 à rxpinfo5 et bien sûr à partir des tableaux de bord les affichant.
Vous verrez aussi dans ces feeds les 30 valeurs de VSS qui servent de base au calcul de P, par groupes de cinq chiffres.


Cordiales 73, Guy - F8ABX.

La page d'accueil du projet RXperiment est ici : https://bit.ly/RXperiment