前言
本文讲解在 GNU Radio 中使用 USRP N320 做无线电收发测试时如何修改 USRP N320 主时钟频率。
一、更改主时钟频率
在设备地址那里,写上: master_clock_rate=200e6
address0内容如下:
二、采样率条件
在 GNU Radio 中使用 USRP 做无线电收发测试时发现 USRP 主时钟频率、采样率满足如下的关系:
https://kb.ettus.com/USRP_N300/N310/N320/N321_Getting_Started_Guide
USRP 设备向/从主机传送的采样率必须遵循几个重要规则:
所需的采样率必须满足 主时钟速率 所需采样率 = 整数 \frac{主时钟速率}{所需采样率}=整数所需采样率主时钟速率=整数 的要求。此外,强烈希望该比率是均匀的。该比率是抽取(下变频)或插值(上变频)因子。抽取或插值因子可以在 1 和 1024 之间。对于抽取或插值因子还有进一步的限制。如果抽取或插值因子超过 128,则它必须能被 2 整除。如果抽取或插值因子超过 256,则它必须能被 4 整除。
三、收发测试
grc流程图如下:
我想在电脑性能可以承受的情况下尽可能的提高采样率,测试时采样率超过 3MHz 时就会快速打印 UUUUUUU 的信息,如下图所示:
- “U” = underrun(PC 无法快速的提供数据 - PC not providing data quickly enough)
- 也就是说上面的警告信息是电脑端无法按照给定的频率产生数据
因此我将主时钟频率设置成 200MHz,主机采样率设置为 2MHz
运行效果如下:
还是会打印一些 U,但是速度很慢。
将主机采样率设置为 1MHz 和 390.625KHz 时再进行测试,发现刚开始运行时会打印少许 U,后面不再打印
如果担心 Linux 系统中网络缓冲区的大小不够用,可以使用如下命令进行查看和修改:
sysctl net.core.wmem_max # 查看发送缓冲区大小 sysctl net.core.rmem_max # 查看接收缓冲区大小 sudo sysctl -w net.core.wmem_max=6280000 # 修改发送缓冲区大小为 6280000 字节 • 1 • 2 • 3
四、资源自取
链接:简单信号USRP收发测试