Quelles sont les options pour récupérer la phase d'un signal BPSK dans le logiciel? Les seules ressources que je peux trouver en ligne contiennent des schémas de circuits - il semble que personne ne veuille l'expliquer à des personnes peu familiarisées avec les circuits analogiques.
J'aimerais avoir des explications sur le fonctionnement de la récupération de l'opérateur en théorie, et j'aimerais aussi des exemples de pseudocode ou de code.
Réponses:
Pour démoduler un signal codé à déphasage, dont le BPSK est le plus simple, vous devez récupérer la fréquence porteuse, la phase et la synchronisation des symboles.
Signaux éclatants Certains signaux sont en rafale et fournissent une séquence de données connue appelée préambule ou mi-ambre (selon qu'elle apparaît au début ou au milieu de la rafale). Les démodulateurs peuvent utiliser un filtre adapté qui "recherche" la séquence de données connue et l'utiliser pour déterminer la fréquence, la phase et la synchronisation des symboles de la rafale. Ils le font pour chaque rafale et n'ont pas besoin de se soucier de la "dérive" (la distance progressive qui s'accumule entre le démodulateur et le signal reçu à mesure que de petites erreurs s'accumulent) car les rafales sont généralement assez courtes pour que la dérive ne soit pas un problème.
Signaux continus Ensuite, il y a des signaux continus. Ils sont à bien des égards plus difficiles à récupérer que les signaux en rafale, car vous n'avez normalement pas de séquence de données connue pour vous aider à verrouiller le signal, et vous devez vous soucier de la dérive même après avoir verrouillé le signal. J'essaierai de décrire à un niveau élevé les principales étapes généralement utilisées pour récupérer des signaux continus.
Récupération de l'opérateur
Habituellement, vous savez à quelle fréquence le signal que vous recherchez sera, ou du moins à quel ensemble de fréquences il pourrait être. Même avec cette connaissance, cependant, vous devez généralement être en mesure de corriger le décalage de fréquence car aucun émetteur ne transmet à la même fréquence. Il y a toujours une erreur. La méthode habituelle consiste alors à mélanger la fréquence à laquelle vous pensez que le signal sera, puis à corriger l'erreur de fréquence résiduelle. Cela peut être fait avec un boucle Costas, ou en prenant la quatrième puissance des données du signal en bande de base et en recherchant un pic de fréquence. Il devrait y avoir un pic de fréquence au décalage de la porteuse * 4 (par exemple, si vous prenez une FFT des données à la 4e puissance et voyez un pic de fréquence à 8300 Hz, cela signifie que le décalage de la porteuse est de 8300/4 = 2075 Hz). C'est un moyen très efficace d'obtenir un verrouillage initial sur le décalage de fréquence. Vous pouvez également l'utiliser pour compenser la dérive si vous la répétez de temps en temps. Il existe un autre moyen de compenser la dérive que j'aborderai plus tard.
Phase porteuse
À ce stade, si vous avez tracé vos données complexes dans le plan complexe (l'axe x est réel, l'axe y est imaginaire), cela devrait ressembler à ce qui suit -
Une fois les données corrigées en phase, vous pouvez supprimer la partie imaginaire des données car elle n'ajoute aucune information.
Synchronisation des symboles
Vous devez normalement connaître, a priori, la période de symbole du signal que vous essayez de démoduler. Si vous devez cependant déterminer la période / fréquence du symbole, vous pouvez le faire de la même manière que le décalage de la porteuse a été détecté. Vous pouvez quadriller les données, ce qui provoquera un pic de fréquence à deux fois la fréquence du symbole.
Comme avec le porteur, vous devrez obtenir la bonne phase (timing), puis compenser la dérive. La méthode habituelle pour ces deux problèmes est de rechercher les passages par zéro. Sauf si le bruit est assez mauvais, il ne doit traverser le point zéro au milieu d'une transition de symbole de -1 à 1 ou de 1 à -1. Même si le bruit fait que cela se produit au milieu d'un symbole, cela n'arrivera pas très souvent.
L'image ci-dessus est généralement appelée «diagramme des yeux» ou «motif des yeux». Il est large de deux périodes de symboles et comporte de nombreux symboles "empilés" les uns sur les autres. Je ne sais pas si vous connaissez ou non les oscilloscopes, mais vous pouvez obtenir un oscilloscope pour afficher une image comme celle-ci. Quoi qu'il en soit, les deux «X» sont des transitions de symboles. Les lignes hautes à basses dans les X sont lorsque le symbole passe de 1 à -1, et les lignes basses à hautes dans les X sont lorsque le symbole passe de -1 à 1. Le point entre les deux, où le la ligne rose est, est l'endroit optimal pour échantillonner les données pour voir si le symbole est un 1 ou -1.
Cette même technique peut être utilisée pour gérer la dérive de synchronisation des symboles. Prendre une moyenne mobile de la distance entre le passage à zéro précédent et le passage à zéro suivant. Si les deux moyennes sont à peu près les mêmes, tout va bien. Si l'un est plus grand que l'autre, vous devez vous déplacer là où vous récupérez votre échantillon.
Une fois que vous avez échantillonné les symboles aux bons points, vos points de données devraient obtenir quelque chose qui ressemble aux points de constellation BPSK classiques.
J'espère que ça aide.
la source