基于 GNURadio 和 USRP 的认知无线电平台研究 摘要: 无线频谱的紧缺是限制无线通信与服务应用持续发展的瓶颈。认知无线电(Cognitive Radio,CR)技术被认为是解决无线频谱紧缺问题的一种新方法。认知无线电技术是无线移动通信领域的一种革命性技术,无线用户利用该技术可以智能地感知周围环境,搜索可用频谱资源,并进行动态的频谱接入,从而提高通信系统的容量和频谱利用率。目前,利用认知无线电技术进行动态频谱接入有两种情况。一种是在免执照的开放频段动态共享该段频谱,如 2.4GHz 的无线局域网和 IEEE 802.16 h/g 的无线城域网;另一种是择机地使用已授权给其他系统的频段,如 IEEE 802.22 无线区域网,其用户择机使用已授权于数字广播频谱。现在国内外的研究大多局限于仿真和理论研究,在实验平台上的研究较少,还没有成熟的平台可供实际测试和验证。 本文主要研究基于 GNU Radio 和 USRP 实现的认知无线电实验平台。GNU Radio 和 USRP 是基于 PC 的一套开源的软件无线电开发平台,这个平台能快速灵活的设计出终端原型。平台采用择机动态频谱接入方法,在 400M-430M 范围内择机使用空闲的授权频段。本文介绍了 GNU Radio 的实现方式和编程原理;介绍了与作为配套硬件的 USRP 的结构组成和功能;并着重对认知无线电在这个平台上的实现进行了研究,主要实现的研究内容为:研究大范围的频谱的能量检测,检测出空闲的频段并作统计决策;研究动态接入和传输的物理层方法;研究设计 MAC 层、网络层及应用层的实现方法;研究演示系统,并最终测试验证性能。 第一章 绪论1.1、论文选题意义随着无线多媒体应用的增加,无线频谱成为越来越紧缺的资源。有研究结果[1-4]指出,现有的频谱管理与分配策略是造成频谱资源紧缺的重要原因之一。现有频谱管理机构主要采用固定分配频谱的方法,将无线频谱分配给不同的无线通信系统,即将某一无线频谱块固定指派给某一特定的无线接入网络,这些频谱块大小固定,相互之间间隔一定大小的保护频段,分配给具有执照资格的不同运营商使用到一定的期限,期满后再重新指派。固定分配方式下频谱管理非常简单,但是整体的频谱利用率却相对低下,不适应无线多媒体应用的高速发展。 从文献 [5-7] 及上图可以看到,在采用固定方式划分的频谱当中,某些频带在大部分时间未被占用,还有些频带只有部分频率被占用,而剩下的频带却被过负载使用,前两类低效利用的频谱被称之为频谱洞(spectrum hole)。文献[5] 对频谱洞的定义为:在管理机构指派给主用户(primary user)的频谱中,某时某地未被主用户使用的频率。在不对主用户系统产生不可忍受干扰的前提下,允许未授权(unlicensed)系统中的次用户(secondary user)利用频谱洞进行接入和通信。认知无线电技术使得上述对频谱洞的二次利用(secondary use)成为可能,由此被认为是解决无线频谱紧缺问题的方法之一。认知无线电系统的用户具有感知周围环境的能力,通过感知周围的频谱使用情况,检测主用户是否占用或释放频谱洞,可以智能地调整接入的频谱范围,在不对主用户系统产生不可忍受干扰的前提下,使用原来低效利用的频谱资源,从而使得整体的频谱利用率得到提高。 1.2、国内外研究现状认知无线电(Cognitive Radio)这个术语首先是 Joseph Mitola 在软件无线电概念的基础上提出的。1999 年 Mitola 在他的博士论文中描述了一个认知无线电系统,通过无线知识描述语言(RKRL)来加强个人无线服务的灵活性,对认知无线电进行扩展,并给出了令人感兴趣的跨学科的认知无线电的概念总结。美国联邦通信委员会(FCC)2002 年发布的频谱政策特别工作组(SPTF)报告,对频谱资源的使用政策具有深远的影响。报告设定了认知无线电工作组,并于 2003 年 5 月在华盛顿成立,随后在 2004 年 3 月在美国拉斯维加斯召开了一个认知无线电的学术会议,标志着认知无线电技术正式起步。学术界也行动起来,著名通信理论专家 Simon Hakin 在2005年2月 JSAC in Communications 上发表了关于认知无线电的综述性文章“Cognitive radio:brain-empowered wireless communications”,开始了国际性的认知无线电技术研究。随后 Berkeley、Virginia、Stevens 等大学研究所和软件无线电(SDR) 论坛等研究组织纷纷展开研究,Rutgers 大学 Winlab 实验室进行了认知无线电平台的开发。Berkeley 大学提出了一种认知无线电网络层次结构,考虑了结构底下两层与普通的开放系统互连(OSI)模型的不同之处。美国国防部(DARPA)的 XG 计划将研制以认知无线电为核心的系统方法和关键技术,以实现动态频谱接入和共享。XG 称其论证的频谱效率可使目前的频谱利用率提高 10~20 倍。Intel、Qualcomm、Philips、Nokia 等公司也已经开始着手进行民用认知无线电系统技术的研究。近两年国际上召开了两个重要的有关认知无线电技术和动态信道分配的会议,分别是:2004 年 10 月份在 Washington 召开的“Cognitive Radios Conference”,会议的主要议题包括:紧急的商业和军事需求和机会,对于认知无线电的频谱政策——军事和商业要求,从软件定义的无线电发展到认知无线电,用于自适应频谱管理的工具和技术,子系统的研发:智能天线、传感器和接收机,自适应调制和波形技术;2005 年 11 月份召开的动态频谱接入(DySPAN)会议,会议的主要议题是基于认知无线电的动态频谱分配和接入技术,会议发表了 80 多篇文章。 近几年,国内研究机构也开始关注和跟踪该技术,包括电子科技大学,清华大学,香港科技大学及西安交通大学等。国家 863 计划基金在 2005 年首次支持了认知无线电关键技术的研究。目前的研究课题主要集中于认知无线电系统种的合作及跨层设计技术,空间信号检测和分析及 QoS 保证机制等,涉及实验平台上的研究较少,还没有成熟的平台可供实际测试和验证。 1.3、本文主要工作本文主要研究基于 GNU Radio 和 USRP 实现的认知无线电实验平台,实现认知无线电中关键的两部分功能:频谱检测和动态接入。Gnuradio 和 USRP 是基于 PC 的一套开源的软件无线电开发平台,这个平台能快速灵活的设计出终端原型。本文介绍了 GNURadio 的实现方式和编程原理;介绍了与作为配套硬件的 USRP 的结构组成和功能;并着重对认知无线电功能在这个平台上的实现进行了研究,主要实现的研究目标有:
1.4、论文结构论文在对认知无线电的相关理论和技术进行深入了解和研究的基础上,基于 GNU Radio 和 USRP 设计了一个认知无线电平台。论文的组织思路是:首先介绍国内外认知无线电术的发展状况,分析认知无线电的基本理论,介绍 GNU Radio 和 USRP 的结构和原理,然后提出一种频谱检测和动态接入的设计和实现认知无线电网络,并在网络内传输实时视频验证演示,最后分析了系统的性能和待改进之处。 论文的章节安排如下:
1.5、本章小结本章主要先介绍了论文的选题意义、国内外认知无线电技术研究现状,并给出了主要从事的研究工作,最后介绍了论文的组织结构。 第二章 认知无线电背景2.1、无线电平台发展背景在第一章中,我们已经列举了认知无线电在各个研究领域的几种专业定义与内涵,那么,认知无线电与传统无线电以及软件无线电之间又有着什么样的关系与区别呢? 传统的模拟无线电系统,其射频部分、上 /下变频、滤波及基带处理全部采用模拟方式。一个频段、一种调制方式的无线系统都对应一种硬件结构,很难随着不断发展的技术更新而做出跟进的改变。而软件无线电思想是 20 世纪 90 年代以后逐渐兴起的一种全新的设计思想,其核心是在通用的硬件平台上加载不同的通信软件,以实现不同的通信方式间的转换。这种全新的设计思想将极大的缩短通信系统开发的时间和成本。它的基本思想是将宽带的 A/D 转换器尽可能地靠近射频天线,即尽可能早地将接收到的模拟信号转化为数字信号,在最大程度上通过 DSP 软件来实现通信系统的各种功能[8, 9]。 软件无线电将无线设备中原来由硬件实现的功能改由软件实现,通过改变软件就能改变无线设备的功能。但是功能变化必须由外部进行控制,无线设备自身并不能根据需求主动地改变功能[8]。 根据电子与电气工程师协会(IEEE)的定义,一个无线电设备可以称为 SDR 的基本前提是:部分或者全部基带或 RF 信号处理通过使用数字信号处理软件完成。这些软件可以在出厂后修改。因此,SDR 关注的是无线电系统信号处理的实现方式[8]。 认知无线电技术是一种由软件无线电技术发展而来的无线通信技术。认知无线电在软件无线电的基础上,采用了随时变化的通讯协议的技术,同时增加了一个新的元素——依靠人工智能的支持,能够感知其所在的环境以及所处位置,并在此基础上改变其功率、频率、调制以及一些其它的参数以求更高的频带利用率,即确定绕过障碍的最佳传输路径。从这个意义上讲,认知无线电是更高层的概念,不仅包括信号处理,还包括根据相应的任务、政策、 规则和目标进行推理和规划的高层功能。正是这种对外界环境的自适应能力,使得认知无线电成为实现动态频谱分配的一种主流方案[10]。 总结上述三者之间的异同所在,可以看到,认知无线电具有下面两个主要特征: (1)认知 认知能力使 CR 能够从其工作的无线环境中捕获或者感知信息,从而可以标识特定时间和空间的未使用频谱资源(也称为频谱空洞),并选择最适当的频谱和工作参数。这一任务通常包括 3 个主要的步骤:频谱感知、频谱分析和频谱判决。频谱感知的主要功能是监测可用频段,检测频谱空洞;频谱分析估计频谱感知获取的频谱空洞的特性;频谱判决根据频谱空洞的特性和用户需求选择合适的频段传输数据。(2)重构 重构能力使得 CR 设备可以根据无线环境动态编程,从而允许 CR 设备采用不同的无线传输技术收发数据。可以重构的参数包括:工作频率、调制方式、发射功率和通信协议等。重构的核心思想是在不对频谱授权用户(LU)产生有害干扰的前提下,利用授权系统的空闲频谱提供可靠的通信服务。一旦该频段被 LU 使用,CR 有两种应对方式:一是切换到其它空闲频段通信;二是继续使用该频段,但改变发射统率或者调制方案避免对 LU 的有害干扰。2.2、软件无线电基本理论软件无线电是 Joe Mitola 于 1991 年提出的一种无线通信新概念 ,他指的是一种可重新编程或者可重构的无线电系统。也就是说,这种软件无线电在其系统硬件无需变更的情况下,可以在不同的时候根据需要通过软件加载来完成不同的功能。软件无线电概念虽然是从通信领域提出的,但这一概念一经提出就得到了包括通信、 雷达、电子战、导航、 测控、卫星载荷及民用广播电视等整个无线电工程领域的广泛关注,已成为无线电工程领域具有广泛适用性的现代方法[12]。 传统的无线电系统只能完成一项专属的任务,比如接收电视信号、AM/FM 广播信号,或者进行无线通信比如 wifi 或者 GSM 通信。每一种无线电系统有其专属的无线制式,包括载频、调制解调方式和功率等。不同的无线电系统间有不同的无线波形,不同的调解方式,不同的纠错方式,它们之间不能够相互通信。一种可以通过软件就可以改变无线制式,而适应不同的通信制式的新型无线电系统出现了,这就是软件无线电。传统的无线电系统的物理层和数据链路层是由硬件实现的,当其设计完成后就不能改变了,而软件无线电系统的物理层和数据链路层能够由软件控制改变,在物理层调制解调的信号能由软件控制,只有少部分由不可编程硬件实现。数据链路层更是完全可有软件控制,差错控制和媒体介入协议可以根据要求任意改变。如图 2-1 所示: 经过近 20 年的推广和全世界范围的深入研究 ,软件无线电概念不仅得到了普遍认可 ,而且已获得广泛应用;尤其是近几年 ,软件无线电的发展势头更猛 ,已触动到无线电工程的每一个角落:从 3G 到 4G,从美军的 MBMMR (多频段多模式电台 )到 JTRS (联合战术无线电系统 )都是以软件无线电概念进行设计、开发的,除了军用外,民用或者科研领域,出现了 sandbridge SDRcommunication platform, the virtual radio 和 GNU Radio。 理想的软件无线电结构如图 2-2 所示 ,其主要特点是尽可能地减少模拟处理环节。在接收端,信号由 RF 前端接收,然后由 ADC 将模拟信号转化为数字信号,然后通过可编程器件的计算和处理亦即软件无线电代码的作用转为信息。在发射端数字信号由软件无线电代码计算处理生成,然后由 DAC 将数字信号转化为模拟信号经由 RF 前端发射出去。 如图 2-2 所示的软件无线电结构适用于无线电工程的任何领域 ,如:通信、雷达、电子战、 测控等。因为 ,该硬件结构与所要完成的功能无关 ,它所完成的功能主要取决于软件无线电代码。这也是之所以称其为“软件 ” 无线电的原因所在。 一个理想的软件无线电硬件能接收和发送所有频率和任意制式的无线电。但是以现在的技术能力实现是有相当难度的。首先,根据奈奎斯特采样定理,该软件无线电的工作带宽有多宽,其 AD 采样至少是带宽的两倍,比如:对于工作在 2~2 000MHz 的 JTRS 电台 ,其采样频率至少是 4 GHz,考虑到滤波器矩形系数,采样频率需要超过 5GHz,如此高的采样速率在高分辨率情况下至少在目前是难以实现的;其次,高的采样速率对 ADC 后续的信号处理 ( FPG A /DSP)也提出了非常高的要求,大大提高了信号处理部分的实现难度;最后,随着电磁环境的复杂化,过宽的瞬时处理带宽将导致对动态范围的过高要求,无论是高增益的 LNA 还是高速 ADC,其动态范围都将无法满足实际需求。 针对理想软件无线电结构实际实现时存在的问题 ,作者对软件无线电结构进行了分类,提出了软件无线电的三种基本结构[ 13]:基于低通采样的软件无线电结构、 基于带通采样的宽带中频软件无线电结构和基于射频直接带通采样的软件无线电结构。 经过十几年全世界范围的广泛研究 ,软件无线电得到了快速的发展 ,特别是软件无线电以硬件为核心到以软件为核心的设计理念的转变已渗透到无线电工程的各个领域 ,并将继续深刻影响和引领无线电工程的未来发展。尤其是认知无线电的提出 ,将为软件无线电带来新的发展机遇和发展空间[14]。 2.3、认知软件无线电基本理论认知无线电最早是由 Joseph Mitola 博士在 1999 年提出的[15]。他描述了认知无线电怎样通过一种“无线电知识描述语言”(RKRL)的新语言来提高个人无线业务的灵活性。但是随着无线电技术的高速发展,到现在,认知无线电的研究和应用已经不局限在最早的范畴当中。在各个方向、领域的研究人员从各自的角度提出了认知无线电的定义和内涵。 (1)Mitola 的初始定义 Mitola在 2000 年瑞典皇家科学院的博士论文答辩中,提出了这样的观点。他认为:“认知无线电这个术语确定了这样一个观点,在无线资源和相关的计算机与计算机之间通信方面,无线个人数字助理(Personal Digital Assistant,PDA)和相关的网络具有足够的计算智能,包括检测用户的通信需求作为使用环境的函数以及提供最符合这些需求的无线资源和服务。” 为了实现认知无线电与外界环境良好的交互功能,Joseph Mitola 博士在论文中提出了认知环的思想,如图 2-3 所示。 外界激励作为一种干扰进入认知无线电系统,并被分配到认知环中等待响应。认知无线电系统不断地经历观察 (observe),定位 (orient),计划 (plan),决定 (decide) 与执行 (act) 五种状态。其中每种状态都要涉及到人工智能学习 (learn)。 在观察阶段,认知无线电也通过读取测位、温度等传感器来推断用户的前后通信环境。认知无线电可通过决定外界刺激的优先级来对自己进行定位,比如,动力故障能够直接引起执行阶段的反应,在图中是以“立即”表示。通常情况下,认知无线电会对输入信息产生计划,在图中是以“正常”表示。在判决阶段,认知无线电在将从候选计划中做出最合适的选择,在执行阶段触动选中的程序。学习以观察和决定阶段的功能函数,比如,将目前和先前的内部状态与期望值进行比较,认知无线电就能够知道现在通信模型的有效性。 (2)Simon Haykin 从信号处理角度提出的定义 SimonHaykin 教授结合 Mitola 博士对认知无线电的解释,在一篇名为“ConitiveRadio:Brain-Empowered Wireless Communications”的文章里,给出了认知无线电一种新的定义:“认知无线电是一个智能无线通信系统。它能够感知外界环境,并使用人工智能技术从环境中学习,通过实时改变某些操作参数(比如传输功率、载波频率和调制技术等),使其内部状态适应接收到的无线信号的统计性变化,从而实现在任何时间任何地点的高度可靠通信以及对频谱资源的有效利用 ”。图 2-4 是基于 Simon Haykin 理论上的认知环结构: 主要包括了三部分的内容:
(3)美国联邦通信委员会 FCC 从频谱管理角度提出的定义 现在由于通信系统对频谱资源需求的不断地增加,频谱资源利用日益明显。美国联邦通信委员会充分注意到这一点情况,开始重新思考新的频谱资源管理政策,并在 2003年 5 月的认知无线电研讨会上,讨论了利用认知无线电技术实现灵活频谱利用的相关技术问题。 FCC对认知无线电做出了相对狭隘的一个定义:“认知无线电是指能够通过与工作环境的交互,改变发射机参数的无线电设备。认知无线电的主体可能是软件定义无线电(Software Defined Radio,SDR),但既没有软件也没有现场可编程的要求” FCC认为,实现认知无线电需要高度的灵活性来适应快变的信道质量和干扰环境。在报告中,FCC 进一步描述了认知无线电五种可能应用领域:
综合比较三种定义可以得知:Mitola的认知概念与现在的技术水平要求相距比较大;FCC 仅仅是从充分利用频谱的角度引入认知无线电;而 Simon Haykin 教授的定义较好地整合了数字信号处理、网络、人工智能和计算机硬件实现等多方面的内容,提出的认知模型也能较好地反映认知无线电的概念和内涵。 2.4、本章小结结合无线电平台的发展背景介绍软件无线电和认知无线电等方面背景理论知识。介绍了基于软件无线电的认知无线电平台的基本结构和原理。第三章 基于 GNU Radio 和 USRP 的认知无线电平台3.1、选择 GNU Radio 和 USRP 作为实验平台的原因广义上的软件无线电分为三类:
GNURadio 是一个开源的可以构建软件无线电平台的软件包。它是由 Eric Blossom 发起的、完全开放的软件无线电项目,旨在鼓励全球技术人员在这一领域协作与创新,目前已经具有一定的影响力。GNURadio 主要基于 Linux 操作系统, 也可以移植到其他操作系统上, 采用 C++结合 Python 脚本语言进行编程,其代码完全开放[18]。 USRP,即 Universal Software RadioPeripheral 通用软件无线电平台,是 Matt Ettus 的杰作,它是一个开源的低价格的专门为 GNU Radio 设计的硬件平台。USRP 是一个非常灵活的 USB 设备,它把 PC 连接到 RF 世界,可以在 0-5.9G 载频上实现最高 16M 的带宽信号收发。[19] 基于 GNU Radio 和 USRP 的软件无线电平台正是属于第三类的软件无线电系统,它除了具有第三类软件无线电系统的优点外,还具有如下优势:
GNU Radio 和 USRP 的功能是将信息和无线射频信号互相转化,其过程以及各部分功能如图 3-1,信息流图 3.2、GNU Radio 软件无线电介绍3.2.1、GNU Radio 概述在当今无线电领域中,由 Eric Blossom 发起的、完全开放的软件无线电项目 GNURadio 倍受关注。GNU Radio 是一个开源、免费的可以构建软件无线电平台的软件包。这是一种能运行于普通 PC 上的开放的软件无线电平台,其软件代码完全公开。它具备智能处理信号、拥有可重配置无线电硬件设备的特点。基于该平台,用户能够以软件编程的方式灵活地构建各种无线应用,进而很好地实现认知无线电的认知任务[13]。GNURadio 旨在鼓励全球技术人员在这一领域协作与创新,目前已经具有一定的影响力。GNU Radio 可以被理解为开源软件的自由精神在无线领域的延伸,开放性和低成本是其最大的特点。低成本使得技术人员以及资金不那么充裕的机构可以像购买 PC 机一样拥有一套能自由进入频谱空间的软硬件系统,从而为更广泛的技术创新打下基础。在 GNU Radio 的邮件讨论组中每天都有来自世界各地的用户对各种相关技术问题的讨论,这些用户包括学生、大学教师、软硬件工程师、无线工程师、业余无线电爱好者,正是这些人推动了新技术的发展进步。 GNURadio 的开放特性也是其具有广泛吸引力的重要因素,同时也是其生命力的源泉。由于代码和技术资料完全开放,人们可以了解到其运作的所有细节,并可自由地对其进行修改和开发。在这种开放的氛围之下,人们取得的知识、成果可以得到充分的交流共享,更有益于创新。 3.2.2、GNU Radio 的软件结构GNURadio 提供一个信号处理模块的库,这个库包含多种调制模式(GMSK、 PSK、QAM、OFDM 等),多种纠错编码(Reed-Solomon、Viterbi、Turbo Codes 等),多种信号处理结构(任意滤波器、FFT、量化器等),并且有个机制可以把单个的处理模块连接在一起形成一个系统。编程者通过建立一个流向图(flow graph)就能搭建成一个无线电系统。 GNURadio 的编程基于 Python 脚本语言和 C++ 的混合方式。C++ 由于具有较高的执行效率,被用于编写各种信号处理模块,如:滤波器、FFT 变换、调制/解调器、信道编译码模块等,GNU Radio 中称这种模块为 block。GNU Radio 提供了超过 100 个的信号处理块,并且扩展新的处理模块也是非常容易的。 Python 是一种新型的脚本语言,具有无须编译、语法简单以及完全面向对象的特点,因此被用来编写连接各个 block 成为完整的信号处理流程的脚本,GNU Radio 中称其为flow graph 流向图。这是一个相当强大的语言,新的 libraries 和功能经常被加进来。在某种程度上看,GNU Radio 用一个实时有效的信号处理库来扩展 Python。结合这些库,我们将拥有大量的功能。比如说,结合 GNU Radio 和 SCIPY (Python 科学计算库),可以实时记录 RF 信号,并且可以离线做大量的数学操作,保存统计数字到一个数据库当中,等等。结合这些库,不用使用 MATLAT 这样的软件都可以实现了。 编程者通过建立一个流向图(flow graph),如下图 3.1 所示,就能搭建一个无线电系统。形象地说,flow graph 就像一块电路板,在 flow graph 基础上的 blocks 就如电路板上的电路模块,而我们需要做的就是如何将这些模块很好地连接起来。 ![]() 如上图所示,信号数据流不停的从信号处理模块的输入端口流入,再从相应信号处理模块的输出端口流出。信号处理块 (blocks)的属性包括输入和输出的端口数以及流过端口的数据的类型,经常使用的数据流的类型是短整型(short),浮点型(float),和复数(complex)类型。一些处理模块仅仅有输入端口或者输出端口,它们分别成为信号源(data source)和信号接收器(data sink)。有的信号源从文件或者 ADC 读入数据,信号接收器把数据写入文件或者 DAC、PC 的多媒体接口。 信号处理模块不仅能处理输入和输出的采样速率是整数倍关系的同步模块,也能处理异步模块。同步模块通常继承自 gr_sync_block(输入输出 1:1 的采样比)或者gr_sync_interpolator (1:N)或者 gr_sync_decimator (N:1)。异步模块通常直接继承自 gr模块。当模块已经实现,Python 通过把各个模块的输入输出连接在一起形成信号流图,在 main class 上把它们连接起来,这样即可运行了。 在用户用 block 和 graph 构造的应用程序下面是 GNU Radio 的运行支持环境,主要包括缓存管理、线程调度以及硬件驱动。GNU Radio 中巧妙地设计了一套零拷贝循环缓存机制,保证数据在 block 之间高效的流动。 实际信号处理是在函数 general_work()或者 resp.work()中实现。这些函数被线程调度调用并被赋予若干个输入采样速率,然后进行信号处理并返回输入采样处理量和输出采样的产生量。 GNURadio 也处理数据的缓存。信号处理模块通常以它们被输入的速率来处理,但有时候因为 CPU 的处理速率或者其它因素,数据处理的速度不够快,就需要缓存(buffer)来缓冲。这就要求编程者要注意:当数据传送的速率大于处理速度时,有些缓存有可能会溢出并导致数据丢失;而当数据传送速率小于处理速度时,缓存经常是空的,有可能会产生脉冲。 3.3、USRP 介绍3.3.1、认知无线电对硬件平台的要求从第二章 Simon Haykin 教授对认知无线电的理解中,可以看到,认知无线电系统对硬件方面有如下的要求: (1)对多个频带信道进行监测 认知无线系统的收发器为了能够工作于不同的频段和提供宽带频谱感知能力,收发器的前端要能够调谐到大频谱范围内的任意频带,由此必须选用宽带天线。同时,根据电波传播条件设计天线,使之具有一定的极化或方向图分集控制能力。由于认知无线电能工作在不同的频段,对 A/D 转换器的要求也比较高,这就要求射频前端 A/D 转换器具有宽带、高频、高精度、高采样率、高分辨率、大动态范围的特性。 (2)具有一定的人工智能 认知无线电先对环境进行感知,再进行学习,最后达到决策,这过程是通过大量的算法实现的。因此,硬件平台应该具有运行和实现这些算法的载体,比如说 DSP,FPGA等,并且要对这些算法进行调度和控制。 (3)容易升级和扩展 认知无线电要求需要对多种频段进行支持,而各个频段的调制方式、数据传输数率、传输协议等都不同,这就要求该硬件平台能根据不同的实际情况,进行重新配置;另外,由于目前认知无线电的各种算法并不是很成熟,处于研究阶段,为了便于以后的系统升级,要求硬件平台可以重新配置,具备良好的扩展能力,如可以提供更多各类的接口等。 3.3.2、USRP 硬件结构分析由 Matt Ettus 发明的硬件系统 USRP 射频前端是 GNU Radio 最重要的硬件“伙伴” ,这个非常灵活的 USB 设备可以把我们的 PC 连接到 RF 世界。与 GNU Radio 软件相同,USRP 也是完全开放的,其所有的电路、设计文档和 FPGA 代码均可从 Ettus Research 的站下载。它具有低成本、高效率等特点,是 GNU Radio 使用者的最佳选择。基于GNU Radio 和 USRP 的组合,用户可以构建各种具有想象力的软件无线电应用。 简易来说,USRP 就是一个集成电路板,它由一块主板和最多四块子板构成。USRP 包含母板和前端子板。母板包含 4 个 12bit /64M 抽样率的 ADC,4 个 14bit/128M DAC,一个百万门的 FPGA 芯片 Altera Cyclone EP1C12 FPGA10 和一个可编程的 USB2.0 控制器,母板完成信号从模拟到数字的转换、基带信号的生成、与 PC 的通信的功能,它处理的是数字基带和中频信号。每个 USRP 母板支持 4 个子板,2 个接收,2 个发射。RF前端是实现在子板上的,不同的子板处理不同的频率带宽。现在可以覆盖从 DC 到 5.9GHz 频段的信号。子板主要在中频上完成初步的滤波和信号混叠。 主板上面包含了 AD/DA 转换器以及 FPGA,主要完成中频采样以及中频信号到基带信号之间的互相转换。而子板主要是负责处理不同频带的射频信号,并进行射频、中频信号之间的转换。所有硬件部分的相关特性都是极为重要的,它们会很大作用地影响无线电设计、软件编程,使用时必须严格按照这些硬件的约束条件和要求来进行操作。 下面将分别介绍 USRP 各部件的相关功能: (1)AD/DA 转换器 USRP 采用两块 Analog Device 的 AD9862 芯片,这是美国模拟器件公司设计的、适合无线宽带通信应用的高性能混合信号前端。每块可提供两路 12bit、64M Sample/s 的AD 变换和两路 14bit、128M Sample/s 的 DA 变换。那么一块主板可提供 4 路模拟数字信号转换器(ADC)和 4 路的数字模拟信号转换器(DAC),也即收/发各两路的复采样。因此,从理论上讲,如果我们用实时采样的话,有四个输入、输出通道。然而,如果我们用复数(IQ)采样会更有灵活性。我们需要进行配对,因此可得到两组复数输入和两组复数输出。 AD9862 的接收路径包括用在基带或低中频(IF)上接收多种数据或正交(I&Q)数据的两个高性能 ADC、输入缓冲器、接收端可编程增益放大器(RxPGA)和抽取滤波器。AD9862 还包含一个可编程的延迟锁定环路(DLL)时钟倍频器与集成定时电路(允许使用单个基准时钟)、辅助 ADC 和 DAC(用于对接收信号强度指示进行监视和控制)、温度传感器及增益与失调调整电路。 AD9862 的发送路径允许接受多种数据格式并且包括两个高性能 DAC、发送端可编程增益放大器(TxPGA)、2 倍或 4 倍内插滤波器、一个希尔伯特(Hilbert)数字滤波器和用于复合或真实信号上变频的数字混频器。这些特点使系统结构从本质上减少了重构和抗混叠滤波要求。 注意到在 RX 板和 TX 板上的 PGA 都是可编程的,也就是说可以通过 GNU Radio调用 USRP 的相关函数来定义的。 (2)FPGA 明白 FPGA 的作用对 GNU Radio 的使用者来说是最重要的。USRP 采用一块型号为EP1C12 PQ240 的 FPGA,等效门数为 65 万门。它就像一个小的,高性能的并行计算机一样,可以完成所需的设计任务。设计 FPGA 需要一些技能,并且如果不慎还会烧坏硬件电路板。这里 USRP 的设计者提供了一个标准的适应性很广的 FPGA 配置。使用者在应用过程中不需做过多改动。 所有 ADC 和 DAC 都是连接到 FPGA 上,这块 FPGA 扮演的是主角,它要进行高带宽数学处理并降低数据速率以便数据能通过 USB 传到 PC 上处理。在接收通道上,FPGA 对 ADC 采进来的数字信号进行数字下变频 DDC,并通过层叠梳状滤波器 CIC 对数据进行可变速率的抽取。在发送通道上,原理是相同的,只不过要反过来进行。因为数字上变频 DUC 是在 AD9862 里进行的,FPGA 对数据进行的是梳状内插。 因为 FPGA 可以并行处理数据,所以 USRP 能实现全双工数据处理,在这种模式下,接收和发送两路是完全互相独立的。唯一需要注意的是收发复合的速率不能超32MByte/s。 FPGA的两个主要功能:将 ADC 采来的中频信号进行数字下变频 (DDC) 变换到基带,并通过层叠梳状滤波器 CIC 对采样值进行可变速率的抽取以符合用户对信号带宽的要求。FPGA 包含有四个 DDC,每个 DDC 有 I 和 Q 两个输入口。ADC 的每一个输出都会被连接到四个 DDC 当中的一个 I 或者 Q 端口当中。这是由 MUX 来决定的。如下图所示,MUX 就像一个路由或者电路交换器,它决定哪个 ADC 输出连到哪个 DDC的输入端,这可以用 USRP 中的内部函数进行控制。 DDC 能实现两个作用:首先,它把中频信号下变频到基带信号。其次,对信号抽取使信号速率能被 USB2.0 采用,并与 PC 的运算能力匹配。其结构图见图 3.7: 抽取器可认为是一个低通滤波器,后面紧接一个下采样器。假设抽取倍数是 N。如果我们看数字频谱,低通滤波器选出[-π/N,π/N]的频带,然后下采样器把频谱扩展到[-π,π]。扩展后的频谱成分与原来的频谱成分在[-π/N,π/N]是一一对应的,或者说前者可以准确地表示后者在[-π/N,π/N]的频率分量。所以,这时对扩展后的频谱进行处理等同于对原来信号频谱的处理,但前者的数据流率只有后者的 N 分之一,大大降低了对之后信号处理(解调分析等)速度的要求。 抽取之后的数据都是以 16 位有符号整数的 I/Q 信号形式通过 USB2.0 接口的,结果形成通过 USB2.0 的 8M Sample/s 的复数采样速率(参见下文有关 USB2.0 的说明)。 数字下变频之后,产生的 IQ 信号通过 USB 接口进入 PC,接下来就是软件编程的世界。 在发送路径,情况则是相反的。我们需要发送一个基带 IQ 信号到 USRP 板上。数字上变频器(DUC)会对信号进行修正,通过内插上变频到中频,最后发送到 DAC 进行模数转换。下来的工作交由子板完成,形成 RF 信号进行发送。 (3)前端子板 在母版上有四个插槽,总共能够被两个接收子板和两个发送子板使用,或者供两个收发子板使用。子板提供RF 接收接口或者调谐器和发送器。这就允许在使用实采样时,每个子板能使用两个独立的 RF 和天线。如果使用复采样,每个子板能使用一个 RF 和天线。通常,每个子板都有两个 SMA 连接口供输入或者输出使用。子板上有一个 I2C的 EEPROM 以便储存子板的标识信息和一些校准信息比如:直流偏置值和 IQ 误差,当子板插到母板上时能够被系统正确识别。 子板有多种类型,分别覆盖不同的射频范围,且具有不同的收、发功能。目前有下面几种子板:
图 3-8 为 RFX400 子板,可以看到在子板上有两个接口,可用来连接输入、输出信号。 (4) USB2.0USRP采用 USB2.0 接口与 PC 连接。最高达到 32M Byte/s 的数据传输速率。如果AD 和 DA 分别采用 12Bit和 14Bit 的采样精度,那么每个实采样点占用 2Bytes,每个复采样点占用 4Bytes。如果以一路复数采用进行单收或单发,则最高可达到 32M/4=8M复采样每秒,即最高发送或接收 8MHz 带宽的信号。如果用 8bit 采样,则最高可收、发16MHz 带宽的信号。ADC 和 DAC 始终分别以 64M 和 128M 的速率进行采样,用户实际获得的采样速率是通过设置抽值率或插值率得到的。 USB支持三种传输方式:命令、bulk 读写、同步传输。在这里我们使用命令包配置USRP、装入固件和 FPGA的 bitstream;使用 bulk 读写或者同步传输传送 FPGA 与 PC之间的数据。 (2)弗吉尼亚理工大学的 CWT 研究所使用 GNU Radio 和 USRP 实现 SmartRadio 认知无线电项目,这个项目是为了在灾后能迅速发现周围的无线电通信信号,并与之通信 , 其 获 得 SDR Forum Smart Radio Challenge 2007 的 金 奖 。 详细信息见 (3)德克萨斯大学的 WNCG 研究所利用 GNU Radio 和 USRP 实现 MIMO 和多跳网络的测试,详细见 (4)还有其它常用的的应用比如:MIMO,GPS 接收机,无线电天文学,总之能想到的无线电项目,GNU Radio 和 USRP 几乎都能实现。 3.5、基于 GNU Radio 和 USRP 认知无线电平台简介本文基于 GNU Radio 和 USRP 的认知无线电平台所要实现的主要功能有:频谱检测;传输频率选择;软件无线电平台重构;无线传输。 第一步——频谱检测及选择,检测授权用户是否在使用,在使用哪一段频率,哪一段频率有空闲。认知无线电非授权用户可以将频谱检测的信息与其它认知无线电用户分享,合作认知即是使用这种方法。其中合作认知又分为具有中心节点(由中心节点收集所有频谱信息,再做决策)和非中心节点式的(由普通节点决策)。认知无线电网络最终决策出通信的频段和通信方式。 第二步,认知无线电平台根据决策以某种调制方式、传输功率重构到某一空闲频率,重构的过程应尽可能快。 3.6、本章小结本章介绍GNU Radio 和USRP,对其软件和硬件技术进行了详细的描述。并提出了基于该平台设计的认知无线电平台的基本框架。第四章 基于 GNU Radio 和 USRP 的频谱检测方法4.1、频谱检测方法介绍4.1.1、认知无线电频谱感知原理目前,在认知无线电领域用于检测某频段内是否有信号存在、有哪些信号存在的方法有多种。以检测类型划分,可分为信号存在性检测和信号覆盖范围检测两类;以检测节点个数划分,可分为单节点检测和多节点联合检测;以检测方法划分,主要分为匹配滤波、能量检测、周期特性检测三类[23]。总结归纳各种方法如图所示: 信号存在检测,是指在经过对某特定频段内信号的进行观测之后,做出该频段上是否有信号存在的判断,这种探测原理的基本模型可以用下面的公式表示: 其中,x(t)是认知无线电接收到的信号,s(t)是第一用户传输的信号;n(t)是加性白高斯噪声;h 是信道的增益;Ho 是未被占用的假设,表明了目前在这一确定频段上没有第一用户;H1 是另一种假设,表明目前存在第一用户。下面将对单节点检测的几种方法进行介绍、分析: (1)匹配滤波器探测 当认知无线电获悉了第一用户的信号后,静态高斯噪声理想探测器就是匹配滤波器,原因在于它能使接收到的信号的信噪比(SNR)最大化。匹配滤波器的主要优点是它只需很短的时间就可以获得高处理增益。然而,它必须有效地对第一用户的信号进行解调,这就意味着它需要第一用户的先验知识,比如解调方式和阶数、数据包格式等。 上述信息可以预存在认知无线电的内存中,然而,对解调来讲,认知无线电必须通过时间和载频同步甚至信道同步来获得第一用户的相关性。如果这些信息是不准确的,那么,匹配滤波器的性能就会变得很差。匹配滤波器探测的一个明显缺点在于,认知无线电对每一类型的第一用户都要有一个专门的接收器。 (2)能量探测 如果接收机不能够收集到第一用户信号的足够的信息,此时的最佳探测器就是能量探测器。为了测量接收信号的能量,需要对带宽为 W 的带通滤波器的输出信号进行平方运算并在观测时间段 T 内进行积分,并将积分器的输出 Y 与门限值进行比较,从而判定合法用户是否出现。检测过程示意图如下所示: 能量探测器的门限很容易受到噪声功率的变化的影响。为了解决这个问题,已经有文献提出通过第一用户发射机的导频音(Pilot Tone)来提高认知无线电能量探测器的准确性。另外,即使能够适应性的设定门限值,带内干扰的出现也会扰乱能量探测器。能量探测器的另外一个缺点是它只能探测到有用信号出现,而不能够区分信号的类型,即它不能区分已调制信号 、噪声及干扰。因此,能量探测器容易被不明信号误导而产生误判决。 (3)静态循环特征探测 调制信号一般都经过了载波、脉冲序列、重复性扩展、跳频及循环前缀等耦合处理,使已调信号具有了内在的周期性。虽然数据是静态随机的,但是这些调制后的信号的均值和自相关函数都具有周期性,因而称其具有循环性。通过分析频谱自相关函数可以探测出这些特征。频谱自相关函数的最主要的优点是它能够把噪声能量和已调信号的能量区分开来,这是因为噪声是一个宽带的、静态的、没有相关性的信号,而已调信号具有频谱相关性和周期性。静态循环特征探测器具有更强的抵抗噪声功率中不确定性的能力,因而能够比能量探测器更好地分辨出噪声信号。不过,它就比能量探测器更加复杂并且需要更长的观测时间。 4.1.2、感知任务综合比较上述三种检测方法的优缺点,我们可以得到下面的对比: 在本认知无线电实验平台中,我们选择能量检测的方式做频谱感知。因为匹配滤波需要授权用户的信号模型,只能针对某种信号进行检测,而能量检测的方法对任意信号都适用。而且匹配滤波需要重构到某种调制解调方式,解码成型需要花费大量的计算时间。而周期特性检测复杂度太高,时间也较长,作为初步实验并不需要如此复杂的检测技术。 本次实验采用能量检测的方法。感知任务如下: 在选取子板所能接收的频率范围内,可以对任意的频段进行能量检测,比如针对RFX400 子板,它的接收范围是 400M-500MHz,可以在 400M-500M 内选定任意范围进行检测,对所检测频段使用情况,能在可控制的时间内记录到文件中,并可通过图形显示出来。 4.2、能量检测 FFT 方法FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。这就是很多信号分析采用 FFT 变换的原因。另外,FFT 可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。得到了信号的频域变换后,就可以对其进行模值运算得出某频率值下的幅度特性。 一个模拟信号,经过 ADC 采样之后,就变成了数字信号。采样得到的数字信号,就可以做 FFT 变换了。N 个采样点,经过 FFT 之后,就可以得到 N 个点的 FFT 结果。为了方便进行 FFT 运算,通常 N 取 2 的整数次方。假设采样频率为 Fs,信号频率 F,采样点数为 N。那么 FFT 之后结果就是一个为 N 点的复数。每一个点就对应着一个频率点。这个点的模值,就是该频率值下的幅度特性。具体跟原始信号的幅度有什么关系呢?假设原始信号的峰值为 A,那么 FFT 的结果的每个点(除了第一个点直流分量之外)的模值就是 A 的 N/2 倍。而第一个点就是直流分量,它的模值就是直流分量的 N 倍。而每个点的相位,就是在该频率下的信号的相位。第一个点表示直流分量(即 0Hz),而最后一个点 N 的再下一个点(实际上这个点是不存在的,这里是假设的第 N+1 个点,也可以看做是将第一个点分做两半分,另一半移到最后)则表示采样频率 Fs,这中间被N-1 个点平均分成 N 等份,每个点的频率依次增加。例如某点 n 所表示的频率为:Fn=(n-1)*Fs/N。由上面的公式可以看出,Fn 所能分辨到频率为为 Fs/N,如果采样频率Fs 为 1024Hz,采样点数为 1024 点,则可以分辨到 1Hz。1024Hz 的采样率采样 1024 点,刚好是 1 秒,也就是说,采样 1 秒时间的信号并做 FFT,则结果可以分析到 1Hz,如果采样 2 秒时间的信号并做 FFT,则结果可以分析到 0.5Hz。如果要提高频率分辨力,则必须增加采样点数,也即采样时间。频率分辨率和采样时间是倒数关系。 假设 FFT 之后某点 n 用复数 a+bi 表示,那么这个复数的模就是
由于 FFT 结果的对称性,通常我们只使用前半部分的结果,即小于采样频率一半的结果,即可以是前向 FFT 也可以是后向 FFT,前向、后向各一半结果。 由此可知:假设采样频率为 Fs,采样点数为 N,做FFT 之后,某一点 n(n 从 1 开始)表示的频率为:Fn=(n-1)*Fs/N;该点的模值除以 N/2 就是对应该频率下的信号的幅度(对于直流信号是除以 N);该点的相位即是对应该频率下的信号的相位。相位的计算可用函数 atan2(b,a)计算。atan2(b,a)是求坐标为(a,b)点的角度值,范围从-pi 到 pi。要精确到 xHz,则需要采样长度为 1/x 秒的信号,并做 FFT。要提高频率分辨率,就需要增加采样点数,这在一些实际的应用中是不现实的,需要在较短的时间内完成分析。解决这个问题的方法有频率细分法,比较简单的方法是采样比较短时间的信号,然后在后面补充一定数量的 0,使其长度达到需要的点数,再做 FFT,这在一定程度上能够提高频率分辨力。 4.3、能量检测实现4.3.1、GNU Radio 的 USRP 初始化设置需要搭建基于GNU Radio的FFT频谱检测器,我们就需要正确的初始化配置USRP,建立流图,搭建起 FFT 运算的软件无线电结构。 初始化配置 USRP,需要使用 GNU Radio 中的 usrp.py 模块,这个模块包含输入输出初始化设置、ADC 采样速率、功率、增益、载频等。基本上所有关于配置 USRP 的子函数都需要重载 usrp.py 来配置。具体见下表: usrp.py函数是所有 GNU Radio 控制 USRP 的程序都要用到的初始化函数,它们控制 usb 接口、fpga 程序、ADC、DAC、子板,跟硬件打交道的程序都可以从这个函数的子函数找到控制方法。 source_x()和 sink_x()则是 usrp.py 中最基本的子函数,它们是流图的开始或者结束,由它们我们可以初始化 USRP 为接受器或者发射器,而且一个 USRP 通过时分复用可以复用为双工收发器。 按照表的函数应用举例,我们设置 USRP 为接收状态,nchan=2 这样我们可以同时获得两个子板的信息,同时对 400M 和 2.4G 频段进行扫频。其余设置均为默认状态,由此可得知:
4.3.2、FFT 能量检测流图由上一小节 FFT 的原理,我们可以得出 FFT 计算结果的意义,可对其进一步处理达到我们的需求。GNU Radio 自带库有 FFT 模块,在设置好 USRP 并正确的建立流图,然后将得到的结果通过计算途径处理,最终得到我们需要的功能——大范围的能量检测。 因为 USRP 带宽的限制,一个时间内前端只能检测到 8MHz 的射频信号如果要检测大于 8MHz 带宽的信号我们需要通过不断的 RF 前端步进调频以达到检测大范围频谱的目的,虽然检测到的频谱并不是实时的。USRP(或者程序)每个时刻对一段范围的频率进行检测,然后步进调频到下一段频率,这样就能扫频扫过大段的频率。 要是频率调频已经完成步进调频,我们需要在每一个步进时刻结束时——即已获得这段频率的数值时,发送一个调频指令到 USRP。调频控制由 gr.bin_statistics_f sink 程序实现,bin_statistics 在以下的函数解释中有详细解释。 当我们命令 USRP 的 RF 子板改变中心频率时,我们必须等待 ADC 的采样到达 FFT处理器并判断完是否属于需要的中心频率。在这个过程中需要经过很多重的延时比如从FPGA,USB,计算延时。这样我们必须在调节到下一步进频率时进行延时,以保证上一步进频率的采样能正确的被 FFT 处理器处理。 程序主要驱动部分由 bin_statistics sink 函数组成。整个流程如图 4-3 bin_statistics主要控制 USRP 的调频控制,并根据步进频率带宽的大小决定延时时间即 FFT 处理器忽略掉 N 个向量(向量长度由计算决定)这里也可以详细解释,当进行完 FFT 处理后,bin_statistics 将处理后的信息组合成 message,并将此 message 插入message queue。message 的每个内容由 FFT 后的每个最大频率的向量组成。 每一步进的延时需要计算得出,延时包括调频延时和计算延时,其中调频延时是最主要的延时。调频延时由 RF 前端的 PLL 到主板的时间再加上管道中排队的时间,我们所用的RFX 系列延时差不多是 1ms。 调频延时转化为 FFT 计算时忽略的向量个数的计算公式是 tune_delay_passed_to_bin_statistics= 其中: required_tune_delay_in_sec= 10e-3 ;usrp_rate = 1M (decimation =64); 可得出tune_delay_passed_to_bin_stats = 4 (FFT Frames) 这表示,我们延时 1ms 我们将跳过 4 个输入的 FFT 向量个数,来获得真实的向量数据。延时时间还包括计算延时,我们需要收集处理 N 个 FFT 采样,如果 DR=8 那将用时 128us,还应该加上计算机处理这 N 个采样的时间,这个需要根据实际计算机的处理能力通过实验测得。 本实验平台设置步进频率为 3MHz,设置 3M 是为了能尽可能精确的对小范围的频率进行能量测算,而我们通信时占用的频宽也大概是 2M 多,加上半衰保护,差不多即是 3M。而且步进频率 3M 可节省每一步进的运算时间,是个均衡的选择。这样 USRP及相关程序的初始化就完成了。 以下是完成 FFT 运算的流图,其搭建一个完整的软件无线电结构,数据最终写入message。流图如下图: 4.3.3、实现结果总结如下,受制于 USB 总线的约束,USRP 不能检测超过 8MHz 的带宽(USRP 的USB2.0 最大数据传输速率为 32M Bytes/S,每个实采样点占用 2 个 Bytes,以一路复数采样进行单收或单发,则最高可达到 32/4=8M 复采样每秒,即最高发送或接收 8MHz带宽的信号)。因此,要对一段 RF 频段进行检测,必须以合适地步进值调节 RF 前端,这样就能检查很宽的频谱。在此设计过程中,为更好地表示指定频段内的频谱感知情况,通过设置 GNU Radio 的相关函数,我们选取 3MHz 这样的扫频间距。 段扫描过程如下: (1) 设置所要感知频段的最小、最大频率以及扫描次数 M;(2) 对所选频谱范围进行间隔化,每一间隔值为 3MHz; (3) 在第一个 3MHz 频段范围内对信号进行 AD 采样,得到 N 个点(本次设计 N 取256); (4) 进行 N 点 FFT,对得到的 N 个复数分别进行平方和运算,得出模值 ,再累加,求得平均值作为此 3MHz 间隔的模值,并由此求得功率大小,记录到文件中; (5) 移频到下一个 3MHz 间隔,重复上面的步骤,直到扫描完频段内所有的每一个间隔; 我们对特定频段做多几次扫频,获得平均功率数据,使用 gnuplot 将数据画图。其中 Y 轴为平均功率,单位为 dBm;X 轴为频率,单位为 MHz。因为 400M 和 2.4G 频段上的功率量值不同,所以起始功率不同。见图 4-5 和图 4-6 从上两图中的检测结果可以非常直观的得到以下结论: (1)2.4G 非授权频段非常拥挤,这段频率已经被大量的 wifi 设备使用殆尽,而且还有大量“不速之客”加进来干扰,比如蓝牙和微波炉开启产生的污染(图中 2430MHz处即是微波炉开启产生的信号辐射)。 (2)在 400M 授权频段上,除了某些频率一直有信号在占用,大部分频段大部分时间都是空闲的。这些授权频段无论从时间上还是从功率上分析,都非常适合认知无线电非授权用户的使用。 由美国频谱规划文件中如图 4-7 可知,400M-480M 范围内,国际通行的规划大部分都是划给移动通信,而在我国,大部分频段在民用范围内大部分时间都是静默的,只是450M 小灵通通信占用了一点,如上图可清晰的发现 450M 处被占用情况。 所以我们选择 400M 频段作为认知无线电动态接入的频段,可减少对授权用户的干扰,从时间和频谱空间这两个角度来说也比较容易找到空闲频段。 获得了设置好的每一步进频段内的平均能量,并将其根据频段的中心频率排序存入链表,选定做 N 次扫频,求 N 次扫频后每个频段的数学平均。这个 N 值取的次数需要根据 sensing 的时间和传输时间大小的比值,以及动态接入的策略来确定的。这里我们取 N=3,既可以过滤掉较大的随机误差,又可以节省 sensing 的时间。这样我们就获得了每个步进频率的多次扫频的平均功率,即可确定我们要接入的频率和功率最小最大频率。 当我们获得了最小值与当前使用频率的能量值,我们对其做比较,如无大差距,返回标志及数据,为接下来的动态接入提供策略支撑是使用原频率,还是使用新的最小频率。 4.5、本章小结本章介绍了频谱检测的方法和原理,设计了使用 GNU Radio 和 USRP 实现的 FFT能量检测方法实现大范围的频谱检测,并能将频谱记录和选择接入频率的策略。第五章 动态接入及传输方法5.1、动态接入及传输方法概述动态接入及传输是这样一个循环的过程:在频谱检测完成后,根据一定的规则经过决策,选定一种无线制式和载波频率重构之后进行一段时间的数据传输。因为认知无线电要占用授权频段,而授权用户的通信是需要优先保障的,所以认知无线电用户需要不断调整载波频率和对应的适合的无线制式,这是一个自适应动态的过程。 动态接入需要在 sensing 的基础上才能做决策判断接入频点,并且动态接入传输的过程需要多台认知无线电平台间遵守统一的时序,这样才能通信。本文采用的时序策略如图 5-2 所示。由于实验环境及实验器材的原因,选择最基本的双机通信,因为所处环境为室内,其授权用户对所有非授权用户的影响在数量级上说是相同的,所以设置一台机为频率检测及频率选择控制发起的认知中心节点,另外的所有认知用户为从节点,从节点无需进行频率检测,但需监听主节点的频率选择信令后才可发起通信。中心节点在信令时序内发送通信所使用的频率,并主动重构,从节点监听中心节点的信令,同时重构。这样保证认知无线通信能基本同步进入数据传输阶段。数据传输阶段通过计时控制,限时退出传输状态,重新循环。 5.2、动态接入及传输方法的物理层实现5.2.1、信令在信令时序内,认知无线电中心节点在选择好下一传输频率后,通过发送信令帧,通知从节点。信令帧属于物理层的帧 payload 部分,属于数据中的内嵌结构。信令开头是标识 controlsignal,从节点解帧的时候先计算 CRC 正确与否,正确的话对三个频率进行对比,以重复次数最多的频率为重构传输频率。信令帧传输两次,以保证从节点能够接收到正确的重构信令。当然也有可能在信令时序内,从节点因为干扰而没有接收到信令,从而错失一次重构,这将导致中心节点已经重构到另一频率了,从而失去通信的可能,认知无线电网络将瘫痪。所以信令环节需要使用类似 tcp 的握手机制,实现一个简化的机制:当从节点收到信令帧时,如果选定了频率则回复一个 ACK 帧,当中心节点收到 ACK 帧后,不再发送信令,开始重构。如果中心节点没有收到 ACK 帧,则在等待两个发送周期后重新发送信令,直到收到 ACK 帧。此处仍有较大的开发深度可以挖掘。 5.2.2、无线制式物理层与 4.3.1章节中所述一样,重构无线制式时需要重新初始化 USRP 接收和发送,并根据信号处理的过程搭建流图。 初始化 USRP 后,我们需要建立两个流图——发送、接收的流图,两个流图以时分的方式工作,可以实现半双工的通信方式。发送流图实现的功能是将信息以一定的速率生成比特流通过 USRP 调制发送出去,而接收流图实现的功能是将受到的无线信号解调生成信息。 以下是发送流图: 注解:差分编码并非必须,但是经过差分编码在接收端较易实现解调,所以此处使用了差分编码。 调制器的输入是以 8bit 为单位的 byte 信息,信息,bytes2chunks 模块将 byte 信息转化为 k 维的向量。 以下是接收流图: 接收过程几乎就是发送过程的逆反。pre scaler 将信号映射到+-1 的范围内。AGCAutomatic Gain Control 自动增益控制,其作用是当弱信号输入时,线性放大电路工作,保证输出声信号的强度;当输入信号强度达到一定程度时,启动压缩放大线路,使输出幅度降低。RRC filter 根升余弦匹配滤波器将信号转化为符号,再通过 receiver 将符号的频率相位同步解除。经过解调后 slicer 将同步后的信息转到格雷码逆映射模块,最终转为 bit 信息流。bit 流经过接入码检验后,如果是接收信息则写入 message 以供上层使用。 信号检测流图 Probe是 GNU Radio 自带的幅值大小检测的模块,能方便的对当前收到的信号进行简单的能量估算,其提供载波监听的判断数据,当其监听的信道能量数值大于某一阈值时,返回 False,我们认为信道有人占用,可供退避。 数据流图实现了原理性的功能,我们并不需要重新将整个流程实现,只需理解了原理后引用响应的函数,并正确配置即可。以下即是我们在传输过程中使用到的函数. 5.2.3、数据传输数据传输采用最小高斯频移键控(GMSK)调制方式,GMSK 是一种典型的连续相位调制方式。其信号具有优良的功率谱特性(功率谱旁瓣快衰减特性),在对信号频带严格限制的各种数字通信领域中得到广泛的应用,又由于其包络恒定,在具有限幅特性的 C类放大器构成的非线性信道中体现出比 QPSK 相位调制更多的优势,因而在无线通信领域得到了广泛应用,如 GMS 系统、GPRS 系统、无线局域网、航空数据链、卫星通信等。目前,GMSK 信号已经成为地面蜂窝移动通信系统的一种标准[27]。 MSK 信号是 FSK信号的一种特殊调制方式,其调制指数 mf =0.5, 二进制 MSK 信号表达式为: 5.2.4、物理层状态切换因为物理层需要在两种状态——感知和传输下切换,而这两种状态的软件无线电构造是不同的,切换过程需要进行重构。 5.3、传输方法 MAC 层这一层并不需要因为物理层重构而改变。本文采用 CSMA 载波监听方式避免冲突。载波侦听多路访问(Carrier SenseMultipleAccess,CSMA)其工作在 OSI 参考模型的数据链路层的介质访问控制子层。是一种抢占型的半双工介质访问控制协议,采用分布式控制方法[29]。 载波侦听是指任何连接到介质的设备在欲发送帧前,必须对介质进行侦听,当确认其空闲时,才可以发送。多路访问是指多个设备可以同时访问介质,一个设备发送的帧也可以被多个设备接收。 根据不同的侦听/发送策略可将 CSMA 分为非持续 CSMA(non-persistent CSMA)、1-持续 CSMA(1-persistent CSMA)和 p-持续 CSMA(p-persistent CSMA) 。 非持续 CSMA(non-persistent CSMA)是指当要发送帧的设备侦听到线路忙或发生冲突时,会随机等待一段时间再进行侦听;若发现不忙则立即发送;此策略可以减少冲突,但会导致信道利用率降低,以及较长的延迟。 1-持续 CSMA(1-persistent CSMA)是指当要发送帧的设备侦听到线路忙或发生冲突时,会持续侦听;若发现不忙则立即发送。当传播延迟较长或多个设备同时发送帧的可能性较大时,此策略会导 致较多的冲突,导致性能降低。 p-持续 CSMA(p-persistent CSMA) 是指当要发送帧的设备侦听到线路忙或发生冲突时,会持续侦听;若发现不忙,则根据一个事先指定的概率 p 来决定是发送帧还是继续侦听(以 p 的概率发 送,1-p 的概率继续侦听);此种策略可以达到一定的平衡,但对于参数 p 的配置会涉及比较复杂的考量。 因为我们的本意是减少冲突,而非抢占实时性,所以本文采取非持续 CSMA 方式。CSMA 采用先监听再发送的方式可以有效避免对授权用户的干扰。假设在 sensing 阶段没有检测到授权用户使用而在传输阶段授权用户又激活了,这时信道能量会增加,这时认知无线电的非授权用户都会监听到信道被占用,所以都会选择静默,而不会影响到授权用户的正常使用。 5.4、tuntaptan 与 tap 是操作系统核心中的虚拟网络设备。不同于普通靠硬件网络卡实现的设备,这些虚拟的网络设备全部用软件实现,并向运行与操作系统上的软件提供与硬件的网络设备完全相同的功能。tap 等同于一个传输层设备,它操作第二层数据包如以太网数据帧。tun 仿真了网络层设备,操作第三层数据包比如 IP 数据封包。 tun以看成是一个虚拟点对点的网络装置,它就像是低阶操作系统核心中的 IP 信道,我们写的应用程序可以透过以下两个接口来和 tun 沟通:
我们写的程序可以写入 frame 到 /dev/tunX ,而操作系统核心会从 tunX 读取到我们写入的 frame,反之操作系统如果有将 frame 写入到 tunX,我们写的应用程序也可以从/dev/tunX 读取到。 由于有了tuntap 虚拟网卡,我们就可以把 USRP 当成一台网络设备即一个网卡,在这里我们使用 tun 虚拟,即从网络层开始虚拟,我们仅仅需要把网络层以下的数据分别对 tun 的文件进行读写即可,tun 设备会自动生成封包或者解封。当上层程序需要发送数据时,我们编写的物理层或者逻辑链路层的程序对 tun 文件进行读操作;当下层硬件收到数据时,我们对 tun 文件进行写操作,上层程序即可收到相应的 ip 和端口发来的数据。如图 5-9: 5.5、网络编程正是有了 tuntap,我们的应用层软件可以方便的屏蔽掉下层,直接把 GNU Radio 和USRP 的认知无线电平台当成一个网络设备,而不需要管物理层或者 MAC 层或者网络层的形式,直接进行网络编程即可在多机之间进行网络访问与连接。 要验证传输性能,最直观的方法即是播放流媒体,因为流媒体需要较大的传输速率,而且对传输延时要求要很小,只要能流畅的播放流媒体,说明感知和动态接入的认知无线电平台具有一定的可行性。 方案如下: 网络层使用 TCP 协议传输。因为由于这是实验平台,底层纠错部分并未达到差错率小于 5‰的要求,使用 TCP 能弥补数据链路层纠错的能力,使差错率达到要求。 应用层使用 VLC 媒体播放器。VLC 媒体播放器是成熟的播放器,其应用功能丰富,而且提供编程接口,非常适合调用,能快速开发实现验证。 整个编程使用 Python 语言。因为 GNU Radio 就是使用 Python 进行编程开发,的具有延续性,而且 Python 进行网络编程非常快捷。 由 TCP 协议的差错重传机制决定,如果差错率为 Pe 则最终的实际传输速率为R`` = (1-Pe)R`,实际测试得到的差错率为 0.004,所以最终实际传输速率为R`` = (1-0.004)*0.83*R=0.996*0.83*R= 0.826R 5.6、本章小结本章详细描述了动态接入和传输的基本原理和实现过程。设计了物理层、MAC 层、网络层及应用层的实现方法。 第六章 平台功能实现验证及总结展望6.1、演示系统 GUI 界面程序为了能够直观的方便的对已配置好频谱感知和动态接入的认知无线电平台进行参数配置和性能评定,开发一个实验 demo 演示系统,其包含一个 GUI 界面,其能自动调用认知无线电频谱检测和动态接入,并能对网络程序进行调用,传输视频并播放。以下就是 demo 系统的界面: 界面 GUI 使用 wxPython 编程完成,wxPython 实际是两件事物的组合体:Python 脚本语言和 GUI 功能的 wxWindows 库。wxWindows 库是为了最大可移植性的 C/C++库,而抽取 GUI 功能。所以 wxWindows 应用程序与生俱来地可以运行在 Windows、带 X、KDE 或 Gnome 的 UNIX 或者 wxWindows 已移植到的平台上。Python 作为脚本引擎,具有很强的移植性。把 wxWindows 与 Python 脚本语言组合起来,意味着:wxPython 应用程序不仅快速和易于编写,而且可以在不作任何更改情况下,运行在Windows 或 UNIX 环境下。因为 wxPython 的开发便捷,完全符合平台设计的思想——关键是 sensing 和动态接入,能让开发人员专注于主要功能的实现。 界面分为五部分:sensing 设置,传输设置,tuntap 网络配置,上层程序调用以及系统状态。 sensing 设置部分,可选择频谱感知的范围,最大范围为 80MHz;也可以选择感知频段,选择 0 则只感知 400M 频段,选择 1 则只感知 2.4G 频段,选择 2 则两个频段都感知。感知到的最小功率频率结果会显示在此处,供参考。 传输设置部分,可设置传输比特率最大不能超过 2M bit/s,默认是 500k;也可在CS_Threshold 设置 CSMA 的阈值,一般默认值即可;设置初始传输载频,程序运行后可自动动态接入其它频段。勾选自动切换然后按确定按钮后,程序自动执行 sensing 和动态接入。 tuntap网络配置,配置网络层选择哪个子板的物理层对接。 上层程序调用,可以调用网络传输播放视频,检查认知无线电平台的传输性能。 平台状态可显示当前 CSMA 阻塞状况及比特率。 本文设置 sensing 范围为 400M 频段的 40M 范围,传输速率为 1Mbit/s,自动动态接入,使用 ftp 协议传输 400*220 大小的avi 视频,通过 VLC 播放流媒体。点击自动流程开始,GUI 将自动调用程序顺序执行。 6.2、平台性能及验证结果由所传视频特点可知其传输速率需大于 750kbit/s 才能流畅播放,而认知无线电平台理论上达到的速率为公式R``=0.826R=826kbit/s>750kbit/s,所以我们理论上可以传输,并流畅播放。测试显示中心节点 sensing 工作正常,每次的重构控制都能正常发送接收,各认知无线电节点在重构命令下都能正常重构,整个网络能不断根据认知无线电主节点的指令调整频率动态接入,MAC 层工作正常,不会发生抢发冲突,各节点间的网络注册正常,网络传输工作正常,通过测试峰值可达到 830kbit/s。 通过调用 FTP 传输媒体文件,再调用 VLC 播放流媒体文件,视频播放正常,偶有停顿,但是不影响正常观看。 该认知无线电试验平台最终测试性能测得性能如下:包括速率,误码率,误测率(指信道上实际有授权用户使用,而误占用的概率),如表 6-1 所示: 6.3、论文总结本文首先对认知无线电的发展现状和研究价值进行了深入的调研,然后介绍了认知无线电的背景知识,并介绍了基于 GNU Radio 和 USRP 的认知无线电平台基本架构和技术特点,接下来提出了基于 GNU Radio 和 USRP 的频谱检测方法及实现,给出具体的软件无线电实现过程,提出了基于该平台的动态接入方法,并对其中使用到的关键方法——动态接入的物理层和与系统配套的 MAC 层和网络层进行了详细的理论探讨和技术实现,最后根据设定的主要工作完成了 demo 演示系统进行了技术,给出了测试结果。 结果表明,该认知无线电平台达到了预期的设计目标,为认知无线电的研究奠定了原型基础,有一定的实用价值,同时该平台设计也为设计实验室其它基于GNU Radio和USRP的无线系统设计提供了借鉴。 6.4、工作展望由于实验器材的原因,暂时没办法测试多于三台认知无线电设备的网络情况,对MAC 层的性能还没有完全开发到最优。另外由于 sensing 运算最优花去的时间不够优化,浪费了一定的时间,仍有开发的潜力。更快速的重构速度是该平台能够推广的核心问题,这涉及到 GNU Radio 内核的改造和 USRP 硬件性能的改进,总之对系统后台的研究是后续研究的重点。 参考文献 [1] Kolodzy P. Spectrum policy task force: findings andrecommendations[R]. In:International Symposium on Advanced Radio Technologies(ISART), Colorado, USA,March 2003. [2] McHenry M. Report on spectrum occupy measurements[R].http://www.sharedspectrum.com/section=nsf_summary. [3] Mitola J,Maquire G, Jr. Cognitive Radio: Making Software RadiosMore Personal[J].IEEE Personal Communications,1999,6(4):13-18. [4] Mitola J. Cognitive Radio: An integrated agentarchitecture for software definedradio[D]. Stockholm,Sweden: Royal Institute ofTechnology (KTH),2000. [5] Haykin S. Cognitive Radio: Brain-Empowered WirelessCommunications[J]. IEEEJournal on Selected Areas in Communications,2005,23(2):201-220. [6] FCC, “Spectrum Policy Task Force,”Rep[R]. ETDocket no. 02-135, November 2002. [7] IEEE 802.22 working group on wireless regionalarea networks[S].http://www.ieee802.org/22/. [8] Walter Tuttle 著,杨小牛等译. 北京:软件无线电技术与实现[M]. 电子工业出版社,2004. [9] 杨小牛,楼才义,徐建良. 软件无线电原理与应用[M]. 北京:电子工业出版社,2001. [10] 周小飞,张宏纲. 认知无线电原理及应用[M]. 北京:北京邮电大学出版社. 2006. [11] 熊庆国. 软件无线电技术的研究现状及关键技术[J]. 信息技术,2003(5). [12] J.Mitola,The software radio architecture[J].IEEE Commun.Mag.vol.33:26-38,1995. [13] 曹瀚文,王文博. GNU Radio:开放的软件无线电平台[J]. 电信快报,2007(4). [14] 王军,李少谦. 认知无线电:原理、技术与发展趋势[J]. 中兴通讯技术,2007 年 6月 第 13 卷第 3 期. [15] 李连宝,毛玉泉,李林,柏雪倩. 认知无线电的关键技术研究[J]. 通信技术,2008年第 06 期,第 41 卷. [16] 畅志贤,石明卫. 认知无线电技术综述[J]. 电视技术,2007 年第 31 卷第 8 期. [17] Sahai A, Hoven N, Tandra R. Some fundamentallimits in cognitive radio[R]. In: 42ndAllerton Conf on Communication, Control,and Computing, Illinois,USA, Oct 2004. [18] E. Blossom. GNU Radio: Tools for Exploring theRadio Frequency Spectrum [EB/OL].Linux Journal, 2004. [19] Ettus Research LLC Homepage. [EB/OL]http://www.ettus.com. [20] A. Ghasemi and E. Sousa. Collaborative SpectrumSensing for Opportunistic Access in Fading Environments[J]. First IEEEInternational Symposium on New Frontiers in Dynamic Spectrum Access Networks,pages 131–136, 2005. [21] M. Haddad, M. Debbah, and A. Menouni Hayar. OnAchievable Performance of Cognitive Radio Systems[C]. IEEE Journal on SelectedAreas in Communications ”Cognitive Radio: Theory and Applications”, 2007. [22] J. Hillenbrand, T. Weiss, and F. Jondral.Calculation of Detection and False Alarm Probabilities in Spectrum PoolingSystems[J]. IEEE Communications Letters, 9:349–351,2005. [23] 谭学治,姜靖,孙洪剑. 认知无线电的频谱感知技术研究[J]. 通信技术,2007(3). [24] B. Horine and D. Turgut. Link Rendezvous Protocolfor Cognitive Radio Networks[C].2nd IEEE International Symposium on NewFrontiers in Dynamic Spectrum Access Networks, pages 444–447, 2007. [25] T. O’Shea, T. Clancy, and H. Ebeid. PracticalSignal Detection and Classification in GNURadio[R]. 2007 Software Defined RadioTechnical Conference and Product Exposition. [26] P. Sutton, K. Nolan, and L. Doyle.Cyclostationary Signatures in Practical Cognitive Radio Applications[J]. IEEEJournal on Selected Areas in Communications, 26:13–24,2008. [27] 单亚娴, 王华, 匡镜明. 一种基于软件无线电的通用调制器的设计和实现[J]. 通讯与电视, 2004(2): 17-19. [28] Ganesan G, Li T G. Cooperative spectrum sensingin cognitive radio networks[A]. Proc.IEEE DySPAN[C]. Baltimore, USA:IEEE,2005 [29] 邹飞非,杨震. 一种基于认知无线电的动态频谱接入 MAC 方案[J]. 现代电子术,2007(5). [30] Fehske A, Gaeddert J D, Reed J H. A new approachto signal classification using spectral correlation and neural networks[A].Proc. IEEE DySPAN[C]. Baltimore, USA: IEEE,2005 [31] Digham F, Alouini M, Simon M. On the energydetection of unknown signals over fading channels[A]. Proc. IEEE ICC[C]. Baltimore,USA: IEEE, 2005 [32] I. F. Akyildiz, W. Y. Lee,M. C. Vuran, and et al. Next Generation Dynamic Spectrum Access Cognitive RadioWireless Networks: A survey[J]. Computer Networks, Sept. 15,2006,Vol.50:2127-2159 [33] E. Kwerel and J. Williams. A proposal for a rapidtransition to market allocation ofspectrum.2002 [34] Jie Chen, Chulin Liao, Chuan Han, Shaoqian Li.Extending available spectrum in cognitive radio: hierarchical spectrum sharing network[C]. Computer Networks(Elsevier) special issue on cognitive wirelessnetworks,2007 [35] F.Siddiqui and S.Zeadally. Mobility managementacross hybrid wireless networks:Trends and challenges[J]. ComputerCommunications, Vol.29, Issue 9, 31 May 2006, pp.1363-1385 [36] K.Pahlavan,P.Krishnamurthy,A.Hatami, et al. Handoff in Hybrid Mobile Data Networks[J]. IEEE Personal Communications, Vol.7,Issue 2, April 2000 Page(s): 34–47 [37] D.Cabric, I.D.O’Donnell, M.S.Chen,andR.W.Brodersen. Spectrum sharing radios[J].IEEE Circuit and SystemsMagzine,Second Quarter 2006,pp.30-45 [38] McNair, Fang Zhu. Vertical handoffs infourth-generation multinet-work environments[J].IEEE Wireless Communications,200411(3):8–15 [39] M Ylianttila. Handoff Procedure for HeterogeneousWireless Networks[J]. In Proceedings of Globecom 1999, pp. 2783-278754 [40] Xiuhua FU, Wenan ZHOU, Junli XU, Junde SONG.Extended Mobility Management Challenges over Cellular Networks combined withCognitive Radio by using Multi-hop Network[C]. IEEE Communications Society,June 2007 [41] Peng Wang, Limin Xiao, Shidong Zhou, Jing Wang.Optimization of Detection Time for Channel Efficiency in Cognitive RadioSystems[C]. IEEE Communications Society,July 2007 [42] AlexChia-ChunHsu, DavidS.L Wei,C.. A CognitiveMAC Protocol Using Statistical Channel Allocation for Wireless Ad-hocNetworks[J]. IEEE Communications Society,July 2007 [43] Xiaorong Zhu, Lianfeng Shen,Tak-Shing Peter Yum.Analysis of Cognitive Radio Spectrum Access with Optimal Channel Reservation[J].IEEE COMMUNICATIONS LETTERS,April 2007 |