我正在从软件定义的无线电中获取 I/Q 数据。我想对数据中的信号做一些事情,但前提是它超过了一定范围。从这种数据中获取 dB(dBm 或任何东西)的一般程序是什么?SDR#之类的程序可以做到,但我不知道它们到底在做什么,以便我可以模仿它们。
将原始 I/Q 转换为 dB
基本
IQ 信号的幅度就是矢量幅度,.
IQ 信号的功率是幅度的平方,.
当您看到对数 (dB) 表时,通常是测量功率的对数,即. (这也可以计算为幅度,但除非您已经拥有浪费平方根运算的幅度。)
单位
请记住,dB 是一个相对数字。如果你只是拿,那么 0 dB 对应的幅度正好为 1。如果您的硬件驱动程序采用从 -1 到 +1 的绝对极值样本值的通常浮点约定,那么您可以说您的 dB 功率值是dBFS —分贝相对于满量程。任何强于该电平的信号都将被削波,从而使信号失真。
dBm,相对于一毫瓦功率的分贝,只是使用不同的参考电平。您可以通过从 dBFS 值中添加或减去适当的校准值来转换为 dBm - 但您需要知道在感兴趣的频率下对硬件进行校准,例如通过测量它(使用已知功率输出的信号源) ; 纯粹在软件中执行校准是不可能的,因为数字样本只是没有固有单位的数字。
(我见过的一个错误是将样本值或根据它们缩放的参数(例如幅度阈值)称为“伏特”;这完全是胡说八道,除非您的 ADC(和其他硬件)实际上已校准到一伏。这对于无线电接收器来说太大了。)
实际应用
如果您只是想忽略不够强的信号(这被称为载波静噪或功率静噪),那么您使用什么单位,或者即使它们是对数或线性都无关紧要,因为您是只是做一个大于比较。唯一的关键组件是您从(相对于,比如说,,这完全是错误的)。
关于带宽的注意事项,您可能不需要阅读
还可能需要注意的是,如果您过滤信号,则根据定义,您会去除一些信号功率,因此测量值会更小。
特别是,FFT(例如 SDR# 等工具中的主要视觉显示)可以松散地被认为是一组极其清晰的过滤器。每个输出“bin”收集输入功率的一部分。因此,每个仓中的功率取决于仓的宽度。如果除以以赫兹为单位的 bin 宽度(该值为) 在取对数之前,然后测量 dB功率谱密度,而不是 dB 功率,如果您关心的特征比一个 bin 宽(例如宽带调制信号),它的优点是独立于 FFT bin 宽度;如果它们更窄(例如纯音),则功率值更有用。