
软件无线电(SDR)技术原理深入解析.docx
15页软件无线电(软件无线电(SDR)技术原理深入解析)技术原理深入解析本文档通俗地介绍 SDR 的技术原理:先简单介绍 SDR 的概念,SDR 系统的分类,基于 GPP 的 SDR 系统,接着详细介绍 SDR 系统原理,最后再以 SDR LTE 系统为例进一步解析 SDR 系统的工作流程一、软件无线电(一、软件无线电(SDR)概念)概念软件无线电,即 Software Defined Radio,SDR通俗来讲,SDR 就是基于通用的硬件平台上用软件来实现各种通信模块概念中有两个关键词,“通用硬件平台”和“软件”通用硬件平台”就是说我们能基于这个硬件平台实现各种各样的通信功能,而不是说一个硬件平台只能实现一种通信功能软件”来实现通信模块是相对于传统的无线电技术来讲的,传统的无线电通信模块都是用硬件电路来设计,一个通信电路只能完 成一种通信功能,开发周期长,开发成本高,而且一旦设计好后功能就无法改 变软件化可以加快通信模块的开发速度,降低开发成本,便于调试和维护我们可以用图 1 来简单看看软件无线电基站与传统的无线电基站的区别图片左边的是传统的大基站,图片右边的是基于软件无线电的小型化基站传统的商用基站体积较大,需要设计很多专用的硬件电路;而 SDR 基站体积较小,大部分通信功能由软件实现。
图 1:商用基站与 SDR 基站SDR 技术被誉为通信领域的第三次革命第一次革命是 1G 通信系统,由有线通信到无线通信的革命;第二次革命是 2G 通信系统,由模拟通信到数字通信的革命SDR 是未来通信系统的发展趋势二、二、SDR 系统分类系统分类比较通用的 SDR 系统分类是以 SDR 的硬件平台来分类SDR 系统分为三类:基于 FPGA 的 SDR 系统,基于 DSP 的是 SDR 系统和基于 GPP 的 SDR 系统2.1、FPGA-BasedSDR 系统基于 FPGA 平台开发的 SDR 系统,实时处理能力强,但是开发难度大,开发成本也高这里强调一下在 SDR 系统中对实时处理能力要求很高,我们以 LTE系统为例,LTE 系统的子帧长 1ms,也就是说我们的 SDR 系统必须在 1ms 内把这一子帧的数据全部处理完并发送出去,不能有任何时延通信系统带宽越 大,吞吐率越高,对系统的实时性要求就越高2.2、DSP-BasedSDR 系统基于 DSP 平台开发的 SDR 系统,实时性比 FPGA 略差,而且同样的开发难度大,开发成本也高2.3、GPP-BasedSDR 系统GPP 即 General Purpose Processor,通用处理器。
我们可以简单的把 GPP理解为电脑,即我们使用的台式机、笔记本等基于 GPP 能高效地开发各种通信模块、通信系统,因为我们可以很方便的基于各种高级编程语言、各种链接库来实现各种通信功能,如编码、调制等而且,基于 GPP 的 SDR 系统开发相比其他两种具有较低的开发门槛,较低的开发成本,开发周期也较短、便于调试等GPP-Based SDR 系统是目前最为通用的一种 SDR 系统实现形式GPP-based SDR 系统通常包含两部分,一部分是 GPP,另一部分是外设下一个章节我们将介绍 SDR 外设的种类三、三、SDR 系统外设系统外设如图 2 所示,SDR 基站/UE 都各自包含一个 GPP 和一个外设GPP 即我们平常所用的台式机或笔记本电脑SDR 的外设有很多种类,如 USRP,bladeRF,HackRF,以及低端的 RTLSDR 等下面我们分别介绍各种外设的相关信息图 2:SDR 通信系统3.1、USRPUSRP 是 Ettus 公司的产品,目前主要有 B 系列,E 系列,N 系列和 X 系列等,基本上系列字母越靠后价格越贵由于 USRP 型号太多,我们以 B 系列为例来介绍 USRP。
B 系列主打小型化,目前有 USRP B200/B210、USRP mini系列等,其中 mini 系列更是只有一张名片大小而且 B 系列都采用 USB3.0 接口与 GPP 通信,直接采用 USB 供电,使用非常便捷USRP B 系列的产品大部分单价都在 7000-8000 块之间,但是如果加上税钱、运费等,差不多就得 10000 块了USRP 相关产品的介绍请链接官网 3:USRP 设备3.2、BladeRFBladeRF 主要有三种型号,BladeRF X40,BladeRF X115,BladeRF X115 ThermalBladeRF X40 是低配版,就是我们里面的青春版,大概约$420,即 3000 块左右;BladeRF X115 是高配版,FPGA 比 BladeRF X40 好,价格约$650,即 4500 块左右;而 BladeRF X115 Thermal 则是顶配版,可以耐受极端环境,价格约$1500,即 10000 块左右BladeRF 的详细信息请查阅官网 4:BladeRF 设备3.3、HackRFHackRF,顾名思义是黑客版的 SDR 外设,它主打性价比高,价格便宜。
HackRF 主要有两种版本,HackRF blue 和 HackRF one,其中 HackRF blue 是低配版,HackRF 是高配版注意的是 HackRF 只能支持半双工HackRF 详细的信息请查阅官网 5:HackRF 设备在国外网站上找到一篇介绍上述 SDR 外设的区别的博客, 有空我给大家翻译翻译现在先给大家预览一下里面的一个表格3.4、RTLSDR如果说上述设备对学生党来说都太贵了,毕竟动不动就好几千块钱,那么不得不隆重介绍下入门级的 SDR 外设,RTLSDR淘宝一搜 RTLSDR 就能出来一大堆,而且都只需要几十块钱,博主目前就买了一个,正在研究怎么使用便宜就意味着性能的低,RTLSDR 本来是用来接收电视信号的,所以也称为电视棒RTLSDR 只能接收信号,不能发射信号,而且只有 2.8M/s 的采样速率,根据奈奎斯特采样定律换算一下理论上最大支持的带宽只有 1.4M但这仍然是一款非常适合用来入门的 SDR 外设RTLSDR 具体使用方法参见 http://sdr.osmocom.org/trac/wiki/rtl-sdr 和 http://www.rtl- 6:RTLSDR 设备四、四、SDR 系统原理系统原理下面正式开始讲解 SDR 的系统原理。
在上面的介绍中我们知道 GPP-Based SDR 系统一般都是包含一个 GPP 和一个外设我们以一台笔记本电脑连接一个USRP B200 为例来给大家讲解 SDR 系统内部的实现原理4.1、发射机首先我们来看发射端的系统原理图,即图 7图的左边是一台笔记本的示意图,右边的一个 USRP B200 的发射示意图首先看笔记本结构最上面的 SDR 程序这个程序就是我们用软件来实现的通信模块,在笔记本上我们可以用各种高级编程语言来编写各种通信模块,例如 Turbo 编码模块,OFDM 模块等鉴于 SDR 系统对实时性要求较高,所以我们一般使用 C 或 C++语言来编写 SDR 程序SDR 程序里面包含了通信系统完整的协议栈,如果我们写的是 LTE 系统,则包含 PHY、MAC、RLC、PDCP、RRC、NAS 甚至 MME 等;而如果我们的是 WiFi 系统,则包含 PHY、MAC、LLC 等SDR 程序的主要功能是处理系统的基带数据接下来 UHD 是 USRP 设备的驱动模块,不同的外设使用的驱动也不一样,因为我们是以 USRPB200 为例,所以驱动模块是 UHDUHD 驱动的安装方式可以参见 使用 C 或者 C++调用 UHD 的库函数可以参见 SDR 程序都是基于 Linux 来开发的,很少基于 Windows 开发。
因为 Linux 系统开源,而且实时性较好这一块主要涉及操作系统方面的知识,我们不在这里 深入讨论USRP B200 与 GPP 的接口是 USB3.0外设接口的选择也很重要,接口的传输速率必须快,不能成为整个系统的瓶颈USRP 早期的产品的都是用的 USB2.0 接口,因为当时通信系统的吞吐量较小,所以不会限制使用现在大部分外设都是用 USB3.0 或者以太网网口作为外设接口USB3.0 的接口速度可以达到 500MBps,基本能满足大部分通信系统的需求接着笔记本电脑通过 USB3.0 把数据传输给 USRP B200USRP 最底下的两个模块是发送控制模块和数字上变频模块(DUC)这两个模块是用 FPGA 里面实现的,用 FPGA 实现的好处是处理速度快发送控制模块好理解就是用来控制整个 USRP 的发送行为,例如什么时候发送等DUC 模块是为了把电脑产生的基带数据上变频到中频之后数字信号经过 USRP 的 DAC 之后转化为模拟域的数据,数模转化之后需要过一个低通滤波器使信号变的更加平滑最后中 频模拟域数据在与晶振产生的信号相乘把我们的中频信号调制到制定的射频频 点上最后射频信号再经过功率放大器把信号发射出去。
信号放大器里面也有很多知识可以学习例如信号放大器分为 A 类,B 类和 C 类等,具体每一类的特征本文就不具体解释了我们可以通过 UHD 提供的库函数来修改发射信号的发射增益,即 tx_gaintx_gain 这个参数对信号的影响还是挺大的,tx_gain 设置的太小导致信号功率太小,而如果设置的过大可能会导致系统的低噪上升,也 有可能会影响其他通信系统的正常工作图 7:SDR 发射机原理图4.2、接收机可能有人会问为什么要经过两次变频我们以 SDR 接收机给大家讲解如图 8所示是 SDR 接收机的原理图同样的,左边是笔记本的示意图,与发射机的一样;右边是 USRP 的接收示意图,USRP 接收示意图与发射示意图稍有不同首先接收部分的放大器变成了低噪放,顾名思义,低噪放就是低噪声的放大器 ,本质上还是个放大器因为接收的信号里面包含了信道的噪声,接收机不能 把噪声放的过大信号经过低噪放后与 USRP 晶振产生的信号相乘把信号下变频到中频,同样地再经过一个低通滤波器把信号变得平滑之后中频信号经过 ADC 把模拟域的信号转到数据域ADC 是 USRP 里面很重要的一个部件ADC 主要由两个参数,采样精度和采样率。
采样精度表示采样后的信号用多少 bit 来表示,例如 USRP B200 的 ADC 精度为 12 bits,即采样后的每一个数据用 12bits 来表示采样率就是系统的采样速率,USRP B200 的采样速率为 61.44MS/s这也就是为什么大部分 SDRLTE 系统都采用 USRP B 系列作为外设的原因,61.44MS/s 的采样率刚好是 LTE 系统最大采样速率30.72M 的两倍同样的信号经过 ADC 之后,数字信号被送入 FPGA 模块处理FPGA 里面包含两个模块,数字下变频和接收控制接收控制用来控制整个 USRP 系统的接收流程,例如什么时候开始接受等数字下变频即 DDC,用于把信号从中频下变频到基带图 8:SDR 接收机原理图为什么要经过两次下变频呢?如图 9 所示,。
