我想绘制一个平均功率谱密度(以dbm为单位)和频率(2.4 GHZ到2.5 GHZ)之间的图。
我之前使用的功率与频率图的基本过程是将"usrp_specteum_sense.py"生成的数据存储一段时间,然后取平均值。
我可以从"usrp_spectrum_sense.py"中使用的功率计算PSD吗?
有没有办法直接从usrp数据中计算PSD ?
是否有其他的方法可以用来计算PSD使用USRP期望的频率范围??
PS:我最近发现了关于matplotlib中的psd(),它可以用来解决我的问题吗?
我不是100%确定是否将这个问题标记为从USRP N210设备检索数据的副本;然而,由于这个问题的发布者和他的问题都很困惑,让我们用简洁的方式回答这个问题:
像USRP这样的SDR设备所做的是给你数字样本。这些只不过是ADC(模数转换器)从它看到的电压中得到的结果。然后,这些数字受到DSP链的影响,该链进行频移,抽取和适当的滤波。换句话说,来自USRP的离散复信号的包络应该与ADC观察到的电压成比例。由于物理学的原因,这意味着这些样本的幅度平方应该与ADC看到的信号功率成正比。
因此,您得到的值是"dBFS"(dB相对于满量程),这是相对于信号处理链可能产生的最大值的任意度量。
现在,注意两件事:
-
ADC看到的是很重要的。在ADC之前有
- 具有a)未知效率和b)从未知方向照射的未知辐射方向图的未知天线,
- 连接到可能或可能不完全匹配天线阻抗的电缆,并且可能或可能不完全匹配USRP的RF前端阻抗,
- 可能是一组具有不同衰减的预选滤波器,
- 一种低噪声前端放大器,取决于器件/子板,具有可调增益,在频率 上具有非完全平坦增益
- 频率相关增益的混频器,
- 基带和/或中频增益级和衰减器,可调,
- 基带滤波器,可能是可调的,
- pcb、连接器、无源和有源元件、温度相关增益和互调以及 中的分量差异
- ADC非线性,频率相关行为。
-
与在这里是重要的,因为经过采样,会有吗
- I/Q失衡校正,
- DC/LO漏电消除, 之前的抗混叠滤波
- 、位宽和数字类型转换操作。
总之,usrp是而不是校准的测量设备。它们非常好,如果为您的特定应用选择了正确的一个,您可能只需要使用已知的外部电源校准一次,从天线到最后输出的采样率精确地输入您的系统,正好是您要观察的频率。在知道"好吧,当我输入x dBm的功率时,我看到y dBFS,所以dBFS之间有这个因子(x-y) dB"之后,您现在已经校准了您的设备,用于由
组成的一个配置- 硬件型号和使用的单个单元,包括天线和电缆,
- 中心频率,
- ,
- 过滤器设置,
- 大量毁灭/采样率
请注意,做这样的校准,特别是在2.4 GHz ISM频段将需要一个"RF静音"的房间-这将很难找到一个办公室或实验室没有2.4 GHz设备,这些频率免费使用的原因是微波炉干扰;还有一个事实是,这些频率往往会衍射并反射到建筑结构、电脑机箱、带有金属部件的家具上……换句话说:进入消声室,参考发射天线和发射电源,并进行整个天线系统校准舞,通常会产生指向性图,而不是生成"相对于发射功率的数字值"测量。该测量是否真正代表了您将如何在实验室环境中使用USRP,这是非常值得您考虑的。
这是任何微波设备的问题,不仅仅是usrp - RF传播在复杂的环境中不容易预测,并且接收系统的功率特性不是由单个组件决定的,而是由系统作为一个整体在其预期的操作环境中决定的。因此,校准必须要求您准确了解您的天线,电缆,测量前端,数字化仪和DSP,并且可以进行包括误差范围在内的数学计算,或者您将系统作为一个整体进行校准,并在之后尽可能少地更改。
:没有。在这个世界上没有Matlab函数可以赋予这些数字之外的数字意义-为了绝对的力量,您需要根据参考进行校准。
另一个关于线性的词:USRP的模拟硬件在全增益下是非常敏感的——如此敏感,以至于在同一个房间里操作WiFi设备就像在耳朵里尖叫一样,使较弱的信号消失,并使模拟信号链进入非线性。在这种情况下,不仅ADC观察到的电压与天线端口插入的电压失去了线性关系,而且,通常更糟的是,放大器变成了混频器,因此不必要的互调在没有能量的频谱位置引入了能量。因此,请确保您在最大限度地利用信号动态范围的地方操作设备,而不会遇到非线性。