APP下载

基于GNURadio的频谱分析仪设计

2019-04-08金伟正赵小月林漫晖

实验室研究与探索 2019年1期
关键词:云端分析仪滤波器

金伟正, 赵小月, 肖 云, 林漫晖

(武汉大学 电子信息学院,武汉 430079)

0 引 言

目前,频谱分析仪主要分为超外差式扫描调谐分析仪和傅里叶分析仪两大类[1]。傅里叶分析仪难以对高频信号进行分析;超外差式扫描调谐分析仪对硬件要求很高,且这两类频谱分析仪难以同时满足高频率分辨率和宽频带的要求。将模数转换器和数模转换器尽量靠近天线,直接使射频模拟信号转换为适合在数字信号处理器和计算机中处理的数据信息,在计算机中编写软件模块来实现信号的复杂处理过程,最后使这样的无线电系统具有良好的灵活性和扩展性,这就是软件无线电技术的设计思想[2]。随着信息技术的快速发展,现代频谱分析仪朝着数字化、模块化、软件化的方向不断演进[3-4]。现代的频谱分析仪中已经采用软件无线电结构,利用模拟的射频接收端和全数字式的中频接收处理系统,实现高频率分辨率和多测量功能。

本文基于软件无线电的采用宽带中频数字化方案的频谱分析仪可广泛用于信号的实时频谱分析,相比传统的频谱分析仪,具有频谱分析误差小,频率分辨率高;频带宽;具有灵活性、开放性、模块化结构;便于携带等优点。

1 总体方案设计

设计的频谱分析仪设计框图如图1所示,系统由天线、收发转换开关、中频接收模块、ADC模块、混频模块、抽取滤波模块、参数设置模块、DSP模块、移动客户端显示模块、云端存储模块组成。设计的性能目标:频率分辨率 1-3-10为步进,共有6个档位(0.03,0.10,0.30,1,3,10 kHz);中频频率为2.6 GHz;动态范围为75 dB;AD工作频率为20 MHz。

2 硬件设计

硬件模块由射频模块、中频接收模块、ADC模块、混频模块组成,与软件无线电支持的外部设备HackRF One有着相似的架构。故可采用HackRF One作为频谱分析仪进行射频和中频信号处理的硬件平台,其基本架构如图2所示。在软件无线电系统中,要求天线尽可能覆盖多频段[5],HackRF One 可覆盖0.03~6 GHz的大范围频率,其中频频点为2.6 GHz,最高采样频率为22 MHz。

图1 频谱分析仪的设计框图

图2 HackRF One基本架构图

HackRF One支持GNURadio[6]并可与之配合使用,通过USB口与PC端进行相连,主要作用是对信号的收发,并对信号进行放大、滤波、混频、采样等处理。以接收过程为例,信号由天线进入后流程如下[7]:①由射频开关决定是否经由14 dB的放大器进行放大;②经过镜像抑制滤波器对信号进行高通或低通滤波;③信号进行RFFC5072芯片混频到2.6 GHz固定中频(中频范围2.15~2.75 GHz);④信号送入MAX2837芯片混频到基带,输出差分的IQ信号(其间MAX2837芯片可以对信号进行带宽限制);⑤MAX5864芯片对基带信号进行数字化后送入CPLD和单片机;⑥CPLD处理数据;⑦LPC4320/4330处理器将采样数据通过USB送至计算机。

3 软件设计

软件模块主要包括抽取滤波模块、DSP模块、移动客户端显示模块、云端存储模块。移动客户端显示模块和云端存储模块分别是利用APP开发技术和云端数据库开发技术实现。抽取滤波模块和DSP模块则是在软件平台GNURadio上实现。GNURadio 软件平台上有很多现成的信号处理模块,这些模块可以通过某种机制连接起来,形成一个模块流程图,这样就迅速搭建好一个软件无线电系统[8]。常见的信号处理模块库有各种调制方式,观察信号波形图、频谱图、星座图、图形模块、纠错码、滤波器、均衡器等。用户可通过搭建相应的模块构建无线电应用的流图,也可根据应用的需要自定义编码扩展模块来构建自定义的无线应用,构建应用的信号处理模块可通过某种机制连接成一个系统。在GNURadio软件平台上,采用Python 脚本语言[9]和C++语言混合方式进行软件模块的编程[10]。C++语言执行效率高,主要被用于编写一些信号处理模块;Python语言不需要编译、语法简单、面向对象,主要用于各个信号处理模块连接的程序编写。

3.1 移动客户端显示和云端存储模块设计

移动客户端显示模块界面如图3 (a)所示,软件结构框图如图3 (b)所示。

移动端软件结构主要包括主进程MainActivity、HackrfSource、FileIQSource、IQSourceInterface、Scheduler、AnalyzerProcessingLoop、AnalyzerSurface以及FFT等进程(或模块)。软件执行过程如下:在主进程MainActivity的调控下,HackrfSource进程采集并处理软件无线电设备HackRF接收无线电产生的相应数据,通过IQSourceInterface进程将数据传输到Scheduler进程;接收到数据后,Scheduler进程处于等待状态;主进程开始执行频谱分析后,Scheduler进程停止等待并将数据传至AnalyzerProcessingLoop进程;在AnalyzerProcessingLoop进程中通过FFT函数,执行傅里叶变化等相关处理,并通过draw函数做出相应的频谱图像。

云端存储模块即在云端搭建服务器,并建立数据库用于存储每一用户在App使用过程中产生的大量频谱分析数据,或可将其扩展为数据库集群。考虑到移动端密集的I/O需求,使用基于多副本分布式技术的SSD云盘进行数据的云存储。SSD云盘具有高性能、高可靠、弹性扩容的特点,能够提供极强的数据持久性。在云端存储方式中,App与云端数据库进行交互,包含实时写入和定时读取两部分。在信号接收阶段,将数据实时发送到云端;在信号处理与分析阶段,采用特定算法,定时分批从云端读取大量数据至移动端,只将分析结果存储在本地。

(a)显示界面

(b)结构框图

3.2 DSP、抽取滤波模块设计

DSP模块主要是利用FFT 进行实时频谱分析。 GNURadio中有模块Fourier Analysis,包括FFT、Goertzel、Log Power FFT 3个子模块,以及多个sink模块包含FFT运算。用户可通过调用这些模块来得到信号频谱图。利用GNURadio进行FFT时需要设置采样频率。对信号进行采样要满足基本的采样定理,又称为奈奎斯特采样定理,该定理在数字信号处理中有广泛应用[11]。即采样频率要大于或等于最高频率的2倍才不会出现频谱混叠。但是在工程应用中,为了提高信号的信噪比和降低抗混叠滤波器的设计难度,通常取值是采样频率大于等于最高频率2.5倍[12]。

在频谱分析系统中,多速率信号处理是其关键技术之一。多速率信号处理是指一个系统中存在多个采样速率,产生这种情况的原因包括抽取和插值两种情况[13-14]。ADC和混频后信号具有较高的采样速率,需要进行采样率转换,降低采样速率,减少基带信号处理的数据量,该处理过程就是基于多速率信号处理的整数倍抽取技术。进行该处理过程的是抽取滤波模块,由抽取模块和级联FIR抽取滤波器组成。GNURadio中可选择Rational Resampler Base模块作为抽取模块。经过抽取后的信号,需要经过低通滤波器进行波形整形。低通滤波器主要分为FIR滤波器和IIR滤波器。FIR滤波器是有限长冲激响应,产生的误差对系统影响小,同时由于FIR滤波器具有线性相位,使信号在处理中不失真,因此选FIR滤波器。GNURadio中Decimating FIR Filter即为抽取FIR滤波器。

DSP模块和抽取滤波模块中分别对FFT点数和抽取因子进行调整,会对频率分辨率产生影响。频率分辨率是频谱分析仪的关键性能指标之一,表明了频谱分析仪分辨两个输入信号的能力。对于利用离散傅里叶变换进行离散数字频谱分析的系统而言,其频率分辨率[15]:

表1 频率分辨率大小与抽取因子关系

首先根据频率分辨率档位和FFT点数计算出基带信号速率即fs=NΔf,然后根据基带信号速率和ADC采样率计算出所需要的总抽取因子D=fad/ND,之后再将D分配到抽取模块和级联FIR抽取滤波器中,抽取因子均取整数,再依据DFIR来确定FIR抽取滤波器的级联级数。利用参数设置模块改变抽取滤波抽取因子或FFT点数便可以动态调节频率分辨率。

4 实验内容及测试结果

实验内容主要包括移动客户端显示模块、云端存储模块、抽取滤波模块、DSP模块的设计与测试;射频前端、中频接收、ADC、混频器的测试;频率分辨率、带宽测试;整机的发射与接收实验测试等部分。由于篇幅的限制,本文只给出重要模块的重要性能测量方法,包括抽取滤波模块测试、射频中频测试(HackRF One测试),对频谱分析仪的重要参数频率分辨率和带宽进行测试。

4.1 抽取滤波测试

在GNURadio中搭建抽取滤波的GRC流图如图4所示,将采样频率设置为20 MHz,信号源波形为正弦波,中心频率为100 kHz,调整Rational Resampler Base模块和Decimating FIR filter模块参数以及Decimating FIR filter模块数量,改变抽取因子,进而改变频率分辨率。分别将频率分辨率调为0.03、1、10 kHz,抽取因子设置见表1,所得抽取滤波后信号如图5所示。

图4 抽取滤波模块GRC流图

(a) 30 Hz频谱图

(b) 30 Hz时域波形图

(c) 1 kHz频谱图

(d) 1 kHz时域波形图

(e) 10 kHz频谱图

(f) 10 kHz时域波形图

可见,当频率分辨率较小,即抽取因子较大时,系统采样率下降较多,信号时域波形具有较小周期,波形失真也会增大。这与预期结果相符,故抽取滤波模块符合设计要求。

4.2 射频中频测试

将HackRF One通过USB口与PC相连,在GNURadio中搭建图6所示GRC流图,采样率设置为20 MHz。Audio Sink模块输出相应频段上的语音,可以利用其进行各种广播接收,此处不再对其进行实验。WX GUI Scope Sink模块和WX GUI FFT Sink模块分别输出时域和频域信号。Osmocom Source模块为经HackRF One输入的信号源,通过调整其频率来测试射频中频输入的不同带宽的信号。将频率调整为0.10、1,6 GHz,观察其信号,如图7所示。当在一定范围内时可以检测到语音,且与各广播频段分布有关。较小时检测到的信号时域波形与波形比较复杂。当6 GHz时,能够检测到信号,但信号比较微弱。实验中射频中频模块能够对0.1~6 GHz信号进行接收,与预期效果相同,满足宽频带特性,符合设计要求。

图6 射频中频模块GRC流图

5 结 语

(a) 100 MHz频谱图

(b) 100 MHz时域波形图

(c) 1 GHz频谱图

(d) 1 GHz时域波形图

(e) 6 GHz频谱图

(f) 6 GHz时域波形图

设计了一种基于GNURadio的频谱分析仪,通过对抽取滤波模块和射频中频模块进行简单测试,验证了其具有可调频率分辨率以及较高频带的性能。由于篇幅限制以及并非频谱分析仪的核心内容,并未给出移动客户端显示和云端存储这两个模块的测试。本分析仪成功应用于2017级卓越工程师计划的高频实验教学,教学效果良好,学生通过本实验可以较为深入地理解和掌握信号频域分析设计原理和方法。该整体方案进行了实用新型专利的申请登记,同时获批样2018年国家级大学生创新创业项目立项。

猜你喜欢

云端分析仪滤波器
Sievers分析仪(苏伊士)
四海心连·云端汇聚
一种用于深空探测的Chirp变换频谱分析仪设计与实现
云端之城
从滤波器理解卷积
开关电源EMI滤波器的应用方法探讨
一种微带交指滤波器的仿真
云端创意
基于TMS320C6678的SAR方位向预滤波器的并行实现
全血细胞分析仪配套操作台使用体会