基于GNURadio多相滤波器的设计与实现一、引言:包括课题背景、课题工作和课题意义二、课题设计的基本理论三:课题的工作四、仿真结果及分析五、课题的结论引言•软件无线电(SoftwareDefinedRadio)是无线通信实现的新概念,即是采用现代软件方法来实现控制“纯硬件”无线电通信。软件无线电系统是将D/A、A/D变换移动至中频,尽可能接近射频天线,并是对整个系统进行了采样处理。而且软件无线电是用DSP器件来替代数字电路,这样,系统的功能实现和硬件结构相对独立,整个系统就能基于一个通用、开放的硬件平台,利用各种软件技术去实现各种通讯功能,并通过软件编程去实现对带宽、调制方式和工作频率的选择。•GNURadio是一套免费开源软件的开发工具。它通过使用了信号处理和运行等模块来支持软件无线电,并使用微处理器和RF(外部射频)去进行最终的软件定义无线电,它广泛应用于无线通信领域的研究。对于GNURadio,主要是采用Python编程语言,而它的核心的模块是使用C++语言。•本论文通过研究GNURadio软件,实现软件无线电的基本方案,其主要的工作是学会使用GNURadio软件进行多相滤波器的设计,并分析其设计结果。设计的基本理论:•软件无线电和GNURadio的原理•多相滤波器的理论知识•采样定律多数情况下,对频率在[0,fH]的信号来说,采样频率要符合:fs≥2fH•整数倍抽取和向下采样抽取通常也成为向下采样,是降低采样率的过程,是在原始采样序列x(n)每隔(Q-1)个数据取一个,从而能够形成一个全新的序列XQ(m),也就是:XQ(m)=X(mQ)•互换的等效性:内插器和抽取器相对滤波器的位置是可以相互调整的,也称作“Noble恒等式”•重采样:如果系统的采样率是一个整数,我们就只需要通过抽取或者内插来实现,如果采样率的比率是一个分数,我们就通过抽取和内插进行结合级联,而这一个过程就称为重采样•信道:是指通过一组覆盖整个频段的滤波器然后将频段划分成几个子频段——信道。一个信道输出就是每个滤波器的输出。•多相滤波器的设计方案信号源本地振荡器波形类型:正弦波采样率:160KHz振幅:1音频频率:8KHz信号处理多相滤波器信道选择器数目:M=10带宽:8KHz过渡带宽:1.6Hz窗函数:布-哈函数滤波器:FIR低通滤波器信宿矢量信宿音频频率:8KHz每个信道器速率:16KHz设置信号重采样率(抽取率和内插率)设置信道数,构建信道化滤波器进行多相滤波处理结果分析•结论一:信号滤波过后的带宽变成2π/D,这时可以对其进行D倍的抽取,那就可以获得低采样率的信号,但我们改进为先重采样再滤波,这样我们就会在减小带宽之前降低采样率,而且,会使运算量降到原来的1/D,更有利于实现。•结论二本设计的多相滤波器中的数字滤波器都是位于抽取器的后面,因此,每一个滤波器要处理的数据从源信号的数据率Fs就变成了Fs/D(D是信道数,这里是10),也就是说,滤波是在降速后才进行的,而且每一支路由原来的N阶(455)变成现在的N/D(46)阶。这样,滤波器的运算速度就从原来的Fs*N,变成了(Fs*N)/D2,极大地减少滤波器的运算,特别是信道数变得越多,减少越明显。输入信号频率-功率图10个信道的频率-功率图10个信道的时间-振幅总结•论文基本围绕着“软件无线电-GNURadio-多相滤波器”三个方面来写,主要的重点和难点是学会GNURadio软件的安装和应用。该软件是Python和C++两种语言相结合进行编写,Python应用实现高级的处理,图形界面和其他一些对运算性能要求不高的功能,而C++是用于信息处理模块的编写,本设计通过对书中例子,通过对代码的逐行学习,整体了解如何去编写C++模块和Python是如何连接这些信号处理模块。•论文的第二大重点是多相滤波器的学习,对于多相滤波器的设计很多时候都是从系统上着手而不是被看做一个独立的部件,系统中的很多功能的实现都归结滤波器的的处理中,所以学习多相滤波器的相关理论,加深对多相滤波器的理解。例如最基本的抽取、内插、重采样率、信道化和FIR滤波器的实现等理论知识。谢谢