我遇到的问题是我总是在中心频率上直接有一个大尖峰(10-15 dB)(无论我设置什么频率)。我对这一切都比较陌生,所以我会很感激任何关于如何摆脱尖峰的指示。
这个尖峰可能并不令人惊讶——只是 LO 泄漏/DC 偏移,这是直接转换接收器中非常常见的伪影!
现在,使用 USRP 摆脱它相对简单。
您必须了解 USRP 有一个两步调整过程:
- 有一个物理振荡器,即 LO,它由子板合成,用于将目标信号混频为 IQ 基带信号。通常,合成器只能生成一组离散的 LO 频率F射频.
- 然后 ADC 以主时钟速率对这些信号进行采样,并且 FPGA 通过与eĴ 2 πF抵消n, 为您提供所需的基带信号ftarget:

默认,fRF被设置为尽可能接近ftarget, 最小化foffset,因此,将 LO 放入您观察到的带宽中bsample.
但是,您可以手动设置“所需”foffset; 只要超过12bsample, LO 不在你的观察者范围内!
而不是101e6
在中心频率输入字段中使用,只需使用
uhd.tune_request(f_target, f_offset)
例如
uhd.tune_request(101e6, 4e6)
让我也直接评论一些其他问题:
我正在使用 Ettus X310 SDR 和 GNU 收音机。
X310 确实是平台,但实际的模拟信号处理(生成用于混音、混音、放大、基带滤波的 LO)发生在子板上。在这种情况下,指定您使用的子板通常很重要
在 GNU 无线电架构上,我有一个标准的 UHD USRP 源块连接到 GUI FFT 接收器 - 基本上我只是显示来自设备的原始信号的频谱。
确实,这应该有效。请注意,WX Gui 块有点被弃用了。如果您刚开始使用 GNU Radio 并且不需要继续基于 WX 的现有应用程序,我建议将选项块中的“构建选项”更改为“Qt”,并替换“WX GUI FFT sink” ” 带有“Qt GUI 频率接收器”。通常,同样的事情,更多的功能,更少的 CPU 使用率。
USRP 源块的参数:
您可能使用的是 184.32 MHz 的主时钟频率,对吧?
对于未来的读者,复制这个(这个特定的速率确实比你想象的更频繁出现!):
X310 在默认配置中不支持该采样率!控制台窗口应该包含一个明确的警告,即 UHD 决定使用不同的频率,以及那个频率——在你的情况下,可能是 1.02048…MS/s。
UHD Warning:
The hardware does not support the requested RX sample rate:
Target sample rate: 1.024000 MSps
Actual sample rate: 1.020408 MSps
这是因为 X310 以所谓的主时钟速率运行其 ADC/DAC ,它可以采用 200 MHz(默认)、184.32 MHz(某些蜂窝网络标准的典型值)、120 MHz(LabView 的典型值)的值。您提供给 PC 的采样率是以该速率采样的采样流,在 FPGA 中抽取到您请求的速率 - 并且该抽取是通过“正常”抽取 FIR 滤波器完成的,它只能给您一个整数分数的输入速率。
所以,
1.020408…MSs=200 MSs196
是可能的,
1.024MSs=200 MSs195.3125
不是,当 MCR 设置为默认值 200 MHz 时。
与 MCR184.32 MHz,即1.024 MHz∗180,这确实是可能的!
这可能意味着您正在使用 WBX 或 UBX 子板,
这不是 UBX 或 WBX 支持的增益设置,它们的增益范围分别为 0 – 31.5 dB 和 0 – 31 dB。
那是模拟带宽规范;它适用于带有可调基带低通滤波器的子板。然而,目前还没有具有可调节基带滤波器和最大带宽 > 8 MHz 的子板。
实际上,此设置对 UBX 或 WBX 没有任何作用。