【问题标题】:How to Calculate power spectral density using USRP data?如何使用 USRP 数据计算功率谱密度?
【发布时间】:2016-11-11 18:07:02
【问题描述】:

我想在平均功率谱密度(以 dbm 为单位)和频率(2.4 GHZ 到 2.5 GHZ)之间绘制图表。

我之前用于功率与频率图的基本过程是将“usrp_specteum_sense.py”生成的数据存储一段时间,然后取平均值。

我可以根据“usrp_spectrum_sense.py”中使用的功率计算 PSD 吗?
有什么方法可以直接从 usrp 数据计算 PSD?
是否有任何其他方法可用于使用 USRP 计算所需频率范围的 PSD??

PS:我最近发现了matplotlib中的psd(),可以用它来解决我的问题吗??

【问题讨论】:

    标签: python gnuradio usrp


    【解决方案1】:

    我不能 100% 确定是否将此问题标记为 Retrieve data from USRP N210 device 的重复项;但是,由于该问题的发布者非常困惑,他的问题也是如此,让我们以简洁的方式回答这个问题:

    像 USRP 这样的 SDR 设备所做的就是为您提供数字样本。这些只不过是 ADC(模数转换器)从它看到的电压中得到的。然后,这些数字受制于执行频移、抽取和适当滤波的 DSP 链。换言之,来自 USRP 的离散复信号的包络应该与 ADC 观察到的电压成比例。由于物理学,这意味着这些样本的幅度平方应与 ADC 看到的信号功率成正比。

    因此,您获得的值是“dBFS”(相对于满量程的 dB),这是相对于信号处理链可能产生的最大值的任意度量。

    现在,请注意两件事:

    • 在 ADC 看来很重要。在 ADC 之前有
      • 未知天线,具有 a) 未知效率和 b) 从未知方向照射的未知辐射方向图,
      • 连接到的电缆可能与天线阻抗完全匹配,也可能不完全匹配,也可能与 USRP 的射频前端阻抗完全匹配,也可能不完全匹配,
      • 可能是一组具有不同衰减的预选滤波器,
      • 低噪声前端放大器,取决于具有可调增益的设备/子板,在频率范围内具有不完全平坦的增益
      • 具有频率相关增益的混频器,
      • 基带和/或 IF 增益级和衰减器,可调节,
      • 基带滤波器,可能是可调的,
      • PCB、连接器、无源和有源元件、温度相关的增益和互调以及
      • ADC 非线性、频率相关行为。
    • proportional在这里很重要,因为采样后,会有
      • I/Q 不平衡校正,
      • DC/LO 泄漏消除,
      • 抗锯齿过滤之前
      • 抽取,
      • 以及位宽和数字类型更改操作。

    总而言之,USRP 是校准的测量设备。它们非常好,如果为您的特定应用选择了正确的,您可能只需要校准一次,使用已知的外部电源准确地为您的系统供电,从天线到最后出现的采样率,正好是你想要观察的频率。在知道“好的,当我输入 x dBm 的功率时,我看到 y dBFS,所以在 dBFS 之间存在这个因子 (x-y) dB”,您现在已经校准了您的设备,使其正好包含

    • 使用的硬件模型和单个单元,包括天线和电缆,
    • 中心频率,
    • 获得,
    • 过滤器设置,
    • 抽取/采样率

    请注意,进行此类校准(尤其是在 2.4 GHz ISM 频段)将需要一个“RF 静音”房间——如今很难找到没有 2.4 GHz 设备的办公室或实验室,以及这些频率的原因免费使用是微波炉干扰;还有一个事实是,这些频率往往会在建筑结构、PC 机箱、带有金属部件的家具上发生衍射和反射……换句话说:进入消声室、参考发射天线和发射电源,然后做整个天线系统校准舞蹈通常会产生方向图,但会生成“相对于发射功率的数字值”测量。该测量值是否真正代表您将如何在实验室环境中使用 USRP,这在很大程度上取决于您的考虑。

    这是任何微波设备的问题,不仅是 USRP——在复杂的环境中,射频传播不容易预测,接收系统的功率特性不是由单个组件决定的,而是由系统决定的作为一个整体,在其预期的操作环境中。因此,校准必须要求您准确了解您的天线、电缆、测量前端、数字化仪和 DSP,并且可以进行包括误差范围在内的数学计算,或者您必须对整个系统进行校准,然后尽可能少地进行更改。

    所以:不能。这个世界上没有任何 Matlab 函数可以为不在这些数字中的数字赋予意义——为了获得绝对功率,您需要根据参考进行校准。

    关于线性度的另一个词:USRP 的全增益模拟硬件非常敏感 - 非常敏感以至于操作例如同一个房间里的 WiFi 设备就像在它的耳朵里尖叫,屏蔽掉较弱的信号,并将模拟信号链驱动到非线性状态。在这种情况下,不仅 ADC 观察到的电压与插入天线端口的电压失去线性关系,而且通常情况下更糟糕的是,放大器变成混频器,因此不需要的互调会在频谱位置引入能量没有任何。因此,请确保您在可以充分利用信号动态范围而不会遇到非线性的地方操作设备。

    【讨论】:

    • 感谢马库斯。如果您不介意我问我还有一个问题:我将权力作为正值(以 db 为单位),但在我检查的每篇论文/论文中,它应该作为负值出现。我正在使用示例程序“usrp_spectrum_sence.py”。我什至尝试了 170-300 MHz。
    • 您将得到 相对 dB 值与数字值 1。例如,如果您采用恒定值 0.5+0j (| 0.5| = -6dB),你得到一个比 1 大得多的值,因此是一个正的 dB 值。同样,dB 只是相对于其他事物。 dB从来都不是绝对的。另一方面,dBm 是“相对于 1mW 的 dB”,但同样,您不是在处理 dBm,因此这些值的实际“偏移”根本不重要。