2016-11-10 5 views
0

Je voulais tracer un graphique entre la densité spectrale de puissance moyenne (en dbm) et la fréquence (2,4 GHZ à 2,5 GHZ).Comment calculer la densité spectrale de puissance à l'aide de données USRP?

La procédure de base que j'ai utilisée précédemment pour le tracé de puissance vs fréquence était de stocker les données générées par "usrp_specteum_sense.py" pendant un certain temps, puis de prendre la moyenne. Puis-je calculer PSD à partir de la puissance utilisée dans "usrp_spectrum_sense.py"?
Existe-t-il un moyen de calculer PSD directement à partir des données usrp?
Existe-t-il un autre outil qui peut être utilisé pour calculer PSD en utilisant USRP pour la gamme souhaitée de fréquence? PS: J'ai récemment découvert à propos de psd() dans matplotlib, peut-il être utilisé pour résoudre mon problème?

Répondre

1

Je n'étais pas sûr à 100% si oui ou non pour marquer cette question un doublon de Retrieve data from USRP N210 device; Cependant, puisque l'affiche de cette question était très confuse et que sa question l'était aussi, répondons-y de façon concise:

Ce qu'un appareil SDR comme l'USRP fait vous donne des échantillons numériques. Ce qu'ils sont n'est rien de plus ou de moins que ce que l'ADC (convertisseur analogique-numérique) fait des tensions qu'il voit. Ensuite, ces nombres sont soumis à une chaîne DSP qui fait le décalage de fréquence, la décimation et le filtrage approprié. En d'autres termes, l'enveloppe du signal complexe discret provenant de l'USRP devrait être proportionnelle aux tensions observées par l'ADC. Grâce à la physique, cela signifie que le carré de la magnitude de ces échantillons devrait être proportionnel à la puissance du signal comme le voit l'ADC. Par conséquent, les valeurs obtenues sont "dBFS" (dB par rapport à Full Scale), ce qui est une mesure arbitraire par rapport à la valeur maximale que la chaîne de traitement du signal peut produire.

Maintenant, remarquez deux choses:

  • Comme on le voit par l'ADC est important. Avant l'ADC il y a
    • une antenne inconnue avec a) une efficacité inconnue et b) diagramme de rayonnement inconnu éclairé à partir d'une direction inconnue,
    • relié à un câble qui peut ou non correspondre parfaitement à l'impédance des antennes, et qui pourrait ou pourrait ne pas correspondre parfaitement à l'impédance du USRP de frontend RF,
    • potentiellement une banque de filtres de présélection avec différentes atténuations,
    • un amplificateur frontend faible bruit, en fonction du dispositif/daughterboard avec gain réglable, avec non gain parfaitement plat sur fréquence
    • un mélangeur avec un gain dépendant de la fréquence,
    • bande de base et/ou si des étages de gain et des atténuateurs réglables,
    • filtres en bande de base, peut être réglable,
    • variances composants dans des PCB, des connecteurs, des passifs et des composants actifs, de la température -pendant du gain et de l'intermodulation, ainsi que
    • ADC non-linéarité, comportement dépendant de la fréquence.
  • proportionnelle est ici important, puisque, après l'échantillonnage, il y aura
    • I/Q correction de déséquilibre,
    • DC/LO annulation de fuite,
    • anti-aliasing filtration avant
    • décimation,
    • et les opérations de changement de largeur de bits et de type numérique.

Dans l'ensemble, les USRPs sont pas appareils de mesure calibrés. Ils sont assez sympas, et si vous choisissez le bon pour votre application spécifique, vous devrez juste calibrer une fois avec une source d'alimentation externe connue alimentant exactement votre système de l'antenne à la fréquence d'échantillonnage sortant à la fin, exactement à la fréquence tu veux observer. Après avoir pris connaissance « ok, quand je nourris en x dBm de puissance, je vois y dBFS, donc il y a ce facteur (xy) dB entre dBFS », vous avez maintenant calibré votre appareil pour exactement une configuration composée de

  • matériel des modèles et des unités individuelles utilisées, y compris les antennes et les câbles,
  • fréquence centrale
  • ,
  • gain,
  • paramètres de filtre,
  • taux de décimation/d'échantillonnage

Notez que faire ces étalonnages, en particulier dans la bande ISM 2,4 GHz, nécessitera une pièce "RF silent" - il sera difficile de trouver un bureau ou un laboratoire sans appareils 2,4 GHz ces jours-ci, et la raison pour laquelle ces fréquences sont libre pour l'usage est que les fours à micro-ondes interfèrent; et puis il y a le fait que ces fréquences ont tendance à diffracter et réfléchir sur les structures de bâtiments, les boîtiers PC, les meubles avec des pièces métalliques ... En d'autres termes: avoir accès à une chambre anéchoïque, une antenne d'émission de référence et une danse d'étalonnage du système d'antenne entier qui donne normalement un diagramme de directivité, mais génère plutôt une mesure de "valeur numérique par rapport à la puissance d'émission". Que cette mesure soit vraiment représentative de la façon dont vous utiliserez votre USRP dans un environnement de laboratoire est très important pour votre considération. C'est un problème de tout équipement à micro-ondes, non seulement les USRPs - la propagation RF n'est pas facile à prédire dans des environnements complexes, et les caractéristiques de puissance d'un système de réception ne sont pas déterminées par un seul composant, mais par le système dans son ensemble dans son environnement opérationnel prévu. Ainsi, le calibrage doit vous obliger à connaître votre antenne, votre câble, votre frontend de mesure, votre numériseur et votre DSP, et faire le calcul, y compris les marges d'erreur, ou calibrer le système dans son ensemble et le modifier le moins possible. Donc, aucune fonction Matlab dans ce monde ne peut donner de sens à des nombres qui ne sont pas dans ces nombres - pour une puissance absolue, vous aurez besoin de calibrer par rapport à une référence.

Un autre mot sur la linéarité: un matériel analogique USRP à plein gain est assez sensible - tellement sensible que le fonctionnement par ex. un dispositif WiFi dans la même pièce serait comme crier dans son oreille, effaçant des signaux plus faibles, et conduisant la chaîne de signal analogique dans la non-linéarité.Dans ce cas, non seulement les tensions observées par l'ADC perdent leur relation linéaire avec les tensions insérées au port d'antenne, mais aussi, et c'est généralement pire, les amplificateurs deviennent des mélangeurs, donc l'intermodulation indésirable introduit de l'énergie dans les endroits spectraux où aucun. Assurez-vous donc de faire fonctionner votre appareil dans un endroit où vous profiterez au maximum de la plage dynamique de votre signal sans tomber dans des non-linéarités.

+0

merci marcus. Si vous ne me dérange pas de me poser j'ai une autre question: je reçois des puissances comme valeur positive (en db), mais dans chaque document/thèse que j'ai vérifié, il devrait avoir une valeur négative. J'utilise le programme d'exemple "usrp_spectrum_sence.py" .i même essayé pour 170-300 MHz. –

+0

vous obtenez des valeurs * relatives * dB à une valeur numérique de 1. Si vous prenez, par exemple, une DFT 1024 points non scalée d'une valeur constante 0.5 + 0j (| 0.5 | = -6dB), vous obtenez une valeur beaucoup supérieur à 1, donc une valeur dB positive. Encore une fois, dB est juste relatif à quelque chose d'autre. dB n'est jamais absolu. dBm, d'autre part, est "dB par rapport à 1mW", mais encore une fois, vous n'avez pas affaire à dBm, donc le "décalage" réel de ces valeurs n'a pas d'importance du tout. –