软件无线电(SDR)概念技术原理解析 USRP收发原理
- 简 介
- 下 载
- 留 言
- 说 明
SDR技术被誉为通信领域的第三次革命。第一次革命是1G通信系统,由有线通信到无线通信的革命;第二次革命是2G通信系统,由模拟通信到数字通信的革命。SDR是未来通信系统的发展趋势。
基于FPGA平台开发的SDR系统,实时处理能力强,但是开发难度大,开发成本也高。这里强调一下在SDR系统中对实时处理能力要求很高,我们以LTE系统为例,LTE系统的子帧长1ms,也就是说我们的SDR系统必须在1ms内把这一子帧的数据全部处理完并发送出去,不能有任何时延。通信系统带宽越大,吞吐率越高,对系统的实时性要求就越高
SDR基站/UE都各自包含一个GPP和一个外设。GPP即我们平常所用的台式机或笔记本电脑。SDR的外设有很多种类,如USRP,bladeRF,HackRF,以及低端的RTLSDR等。
我们以一台笔记本电脑连接一个USRP B200为例来给大家讲解SDR系统内部的实现原理。
发射机
首先我们来看发射端的系统原理图。图的左边是一台笔记本的示意图,右边的一个USRP B200的发射示意图。
首先看笔记本结构最上面的SDR程序。这个程序就是我们用软件来实现的通信模块,在笔记本上我们可以用各种高级编程语言来编写各种通信模块,例如Turbo编码模块,OFDM模块等。鉴于SDR系统对实时性要求较高,所以我们一般使用C或C++语言来编写SDR程序。SDR程序里面包含了通信系统完整的协议栈,如果我们写的是LTE系统,则包含PHY、MAC、RLC、PDCP、RRC、NAS甚至MME等;而如果我们的是WiFi系统,则包含PHY、MAC、LLC等。SDR程序的主要功能是处理系统的基带数据。
接收机
可能有人会问为什么要经过两次变频。我们以SDR接收机给大家讲解。如图所示是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,用于把信号从中频下变频到基带。
为什么要经过两次下变频呢?如图9所示,第一次变频是在模拟域通过晶振产生的信号与射频信号相乘把信号下变频到中频,这一次变频主要是为了后面做AD采样。我们知道采样需要满足奈奎斯特采样定律,采样的频率必须大于信号的最高频率的2倍,而射频信号的载波频率已经能都达到2.6GHz,甚至5GHz,根本无法做出载波频率两倍的采样速率的ADC。所以系统先把信号下变频到中频,然后再利用ADC对信号进行模数转化。因为USRP ADC的采样率为61.44MS/s,所以我们可以推出USRP对应的中频频率应该低于30.72MHz。
接着中频的数字信号被DDC下变频到基带。有人可能会问为什么不直接把信号一次变频到基带呢,这样的接收机叫做零中频接收机。如果载波频率高了,零中频的接收机设计会非常复杂,所以零中频接收机一般用于载波频率较低的系统里面。
数字信号经过USB3.0接口传输到笔记本电脑上后,电脑再把数据传输给SDR程序处理。物理层处理完后再把数据交给上层。这样SDR接收机的信号接收过程便完成了。
SDR发射机/接收机里面的每一个模块都对应一大片知识,知识的海洋是无穷的,这里的介绍只能起一个抛砖引玉的作用。如果大家想深入学习的话,还得要多查阅资料。
上一章节从SDR发射机和接收机的角度分别介绍SDR系统的原理。下面我们以SDR LTE系统为例给大家介绍一个SDR系统的例子,有助于大家理解实际项目的中SDR通信系统。
目前国际上已经有好几个开源的SDR LTE系统,如OpenAirInterface,srsLTE,OpenLTE等。开源的SDR LTE系统非常适合用来学习SDR和LTE的原理和知识。
下面以图10来介绍SDR LTE系统的工作流程。
首先LTE的上层有数据需要物理层发送,比如我们要发送一个经典的字符串”Hello World”,上层把数据编码成Bit流自后交给物理层。上层可能采用的ASCII编码,把Hello World编码成对应的Bit流。即物理层收到的是一连串的100110等。
Bit流传到物理层后开始进行编码,LTE采用的是1/3 码率的Turbo编码,再经过加扰,加扰可以理解为将Bit流随机化,避免出现一大串连续的0或者1。此外,在发送端用小区专用扰码序列进行加扰,接收端再进行解扰,只有本小区内的UE才能根据本小区的ID形成的小区专用扰码序列对接收到得本小区内的信息进行解扰,这样可以在一定程度上减小临小区间的干扰。
接着Bit流经过调制模块后被调制成复数。LTE里面采用的是QPSK,16QAM和64QAM等调制方式,出来的数据形式如0.707+0.707j。
接着复数进行资源映射,把复数映射到LTE的时频资源上,最后再对这些信号进行OFDM把信号转换到时域。此时,SDR程序的工作便完成了,生成了LTE系统的基带数据。
紧接着,GPP把基带数据通过USB3.0接口把数据传输给USRP,由USRP经过上一章讲述的流程把基带信号上变频到射频并发送出去。
LTE接收机的过程基本与发射机相反。
USRP把接收到的射频信号下变频到基带后通过USB3.0接口传输给SDR程序。SDR程序把接收到的一连串复数先做OFDM解调,接着信道估计/均衡。此时的数据仍然是复数形式的。经过软解调之后数据变成Bit流,最后再进行解扰,解码恢复出”Hello World”的ASCII码,传输给UE的上层后,UE识别出有人给它发送了一串信息,即”Hello World”。
至此,通信的过程完成。