作者:Damon
软件平台: gnuradio 3.7
应用软件:gr-SpectrumScanning
硬件:USRP B210、USRP N210、USRP X310等
本方案使用USRP进行频谱扫描,程序基于gnuradio ,信号处理模块使用了C++和python两种语言编写,然后使用gnuradio-companion连接系统流图。
由于USRP采集的信号频谱的边缘(大概两侧各10%)不平整,所以只取中间大概75%的带宽作为有效带宽。USRP的最大带宽是56MHz,设置采样率为51.2Msps,这个采样率能采集的信号最大带宽为51.2Msps(因为USRP使用的是复采样)。使用中间的3/4作为有效带宽,即38.4MHz。所以中心频率调谐的步进为38.4MHz。这样设置可以使得前后2次采集的信号可以在频谱上拼接起来。
使用USRP进行频谱扫描的主要方法是:
1. USRP在设定的中心频率、采样率采集一小段时间的信号;
2. 进行FFT运算得到频域信号;
3. 求得FFT后的频域复数信号的幅值平方P(I2 + Q2);
4. 将同一中心频率采集的信号的多次频域幅值平方求平均;
5. 将频谱强度换算为dB值,即求 10×log10(P);
6. 截取本频段中间的一部分频谱强度值,与前后不同中心频率的强度值拼接
7. 到一下个相邻的中心频率采集。
8. 将所有频段的频谱拼接起来,然后在界面上显示。
下图是使用USRP进行频谱扫描的grc流图:
频谱扫描结果如下:
这里使用了51.2Msps的采样率,是由于FFT使用了1024个采样点,这样的频谱分辨率是51.2M/1024 = 50KHz。频谱分辨率是整数,绘图和使用会比较方便。如果使用USRP N210或者USRP X310来做频谱扫描,无法使用类似于51.2Msps这种采样率,为了得到整数分辨率,需要在计算机对信号进行重新采样,比如X310使用100M采样率,然后重采样为102.4Msps,对应的GRC流程图为下图: