軟件無線電,即Software Defined Radio,SDR。通俗來講,SDR就是基于通用的硬件平臺上用軟件來實(shí)現(xiàn)各種通信模塊。
概念中有兩個(gè)關(guān)鍵詞,“通用硬件平臺”和“軟件”。“通用硬件平臺”就是說我們能基于這個(gè)硬件平臺實(shí)現(xiàn)各種各樣的通信功能,而不是說一個(gè)硬件平臺只能實(shí)現(xiàn)一種通信功能。“軟件”來實(shí)現(xiàn)通信模塊是相對于傳統(tǒng)的無線電技術(shù)來講的,傳統(tǒng)的無線電通信模塊都是用硬件電路來設(shè)計(jì),一個(gè)通信電路只能完成一種通信功能,開發(fā)周期長,開發(fā)成本高,而且一旦設(shè)計(jì)好后功能就無法改變。軟件化可以加快通信模塊的開發(fā)速度,降低開發(fā)成本,便于調(diào)試和維護(hù)。
我們可以用圖1來簡單看看軟件無線電基站與傳統(tǒng)的無線電基站的區(qū)別。圖片左邊的是傳統(tǒng)的大基站,圖片右邊的是基于軟件無線電的小型化基站。傳統(tǒng)的商用基站體積較大,需要設(shè)計(jì)很多專用的硬件電路;而SDR基站體積較小,大部分通信功能由軟件實(shí)現(xiàn)。
圖1 商用基站與SDR基站
SDR技術(shù)被譽(yù)為通信領(lǐng)域的第三次革命。第一次革命是1G通信系統(tǒng),由有線通信到無線通信的革命;第二次革命是2G通信系統(tǒng),由模擬通信到數(shù)字通信的革命。SDR是未來通信系統(tǒng)的發(fā)展趨勢。
SDR系統(tǒng)原理下面正式開始講解SDR的系統(tǒng)原理。在上面的介紹中我們知道GPP-Based SDR系統(tǒng)一般都是包含一個(gè)GPP和一個(gè)外設(shè)。我們以一臺筆記本電腦連接一個(gè)USRP B200為例來給大家講解SDR系統(tǒng)內(nèi)部的實(shí)現(xiàn)原理。
.1 發(fā)射機(jī)
首先我們來看發(fā)射端的系統(tǒng)原理圖,即圖7。圖的左邊是一臺筆記本的示意圖,右邊的一個(gè)USRP B200的發(fā)射示意圖。
首先看筆記本結(jié)構(gòu)最上面的SDR程序。這個(gè)程序就是我們用軟件來實(shí)現(xiàn)的通信模塊,在筆記本上我們可以用各種高級編程語言來編寫各種通信模塊,例如Turbo編碼模塊,OFDM模塊等。鑒于SDR系統(tǒng)對實(shí)時(shí)性要求較高,所以我們一般使用C或C++語言來編寫SDR程序。SDR程序里面包含了通信系統(tǒng)完整的協(xié)議棧,如果我們寫的是LTE系統(tǒng),則包含PHY、MAC、RLC、PDCP、RRC、NAS甚至MME等;而如果我們的是WiFi系統(tǒng),則包含PHY、MAC、LLC等。SDR程序的主要功能是處理系統(tǒng)的基帶數(shù)據(jù)。
接下來UHD是USRP設(shè)備的驅(qū)動(dòng)模塊,不同的外設(shè)使用的驅(qū)動(dòng)也不一樣,因?yàn)槲覀兪且訳SRPB200為例,所以驅(qū)動(dòng)模塊是UHD。UHD驅(qū)動(dòng)的安裝方式可以參見使用C或者C++調(diào)用UHD的庫函數(shù)。
接下來是系統(tǒng)的各種系統(tǒng)庫和系統(tǒng)調(diào)用的接口以及內(nèi)核。強(qiáng)調(diào)一點(diǎn),大部分SDR程序都是基于Linux來開發(fā)的,很少基于Windows開發(fā)。因?yàn)長inux系統(tǒng)開源,而且實(shí)時(shí)性較好。這一塊主要涉及操作系統(tǒng)方面的知識,我們不在這里深入討論。
USRP B200與GPP的接口是USB3.0。外設(shè)接口的選擇也很重要,接口的傳輸速率必須快,不能成為整個(gè)系統(tǒng)的瓶頸。USRP早期的產(chǎn)品的都是用的USB2.0接口,因?yàn)楫?dāng)時(shí)通信系統(tǒng)的吞吐量較小,所以不會限制使用?,F(xiàn)在大部分外設(shè)都是用USB3.0或者以太網(wǎng)網(wǎng)口作為外設(shè)接口。USB3.0的接口速度可以達(dá)到500MBps,基本能滿足大部分通信系統(tǒng)的需求。
接著筆記本電腦通過USB3.0把數(shù)據(jù)傳輸給USRP B200。USRP最底下的兩個(gè)模塊是發(fā)送控制模塊和數(shù)字上變頻模塊(DUC)。這兩個(gè)模塊是用FPGA里面實(shí)現(xiàn)的,用FPGA實(shí)現(xiàn)的好處是處理速度快。發(fā)送控制模塊好理解就是用來控制整個(gè)USRP的發(fā)送行為,例如什么時(shí)候發(fā)送等。DUC模塊是為了把電腦產(chǎn)生的基帶數(shù)據(jù)上變頻到中頻。之后數(shù)字信號經(jīng)過USRP的DAC之后轉(zhuǎn)化為模擬域的數(shù)據(jù),數(shù)模轉(zhuǎn)化之后需要過一個(gè)低通濾波器使信號變的更加平滑。最后中頻的模擬域數(shù)據(jù)在于晶振產(chǎn)生的信號相乘把我們的中頻信號調(diào)制到制定的射頻頻點(diǎn)上。
最后射頻信號再經(jīng)過功率放大器把信號發(fā)射出去。信號放大器里面也有很多知識可以學(xué)習(xí)。例如信號放大器分為A類,B類和C類等,具體每一類的特征本文就不具體解釋了。我們可以通過UHD提供的庫函數(shù)來修改發(fā)射信號的發(fā)射增益,即tx_gain。tx_gain這個(gè)參數(shù)對信號的影響還是挺大的,tx_gain設(shè)置的太小導(dǎo)致信號功率太小,而如果設(shè)置的過大可能會導(dǎo)致系統(tǒng)的低噪上升,也有可能會影響其他通信系統(tǒng)的正常工作。
圖2 SDR發(fā)射機(jī)原理圖
2 接收機(jī)
可能有人會問為什么要經(jīng)過兩次變頻。我們以SDR接收機(jī)給大家講解。如圖8所示是SDR接收機(jī)的原理圖。同樣的,左邊是筆記本的示意圖,與發(fā)射機(jī)的一樣;右邊是USRP的接收示意圖,USRP接收示意圖與發(fā)射示意圖稍有不同。
首先接收部分的放大器變成了低噪放,顧名思義,低噪放就是低噪聲的放大器,本質(zhì)上還是個(gè)放大器。因?yàn)榻邮盏男盘柪锩姘诵诺赖脑肼?,接收機(jī)不能把噪聲放的過大。
信號經(jīng)過低噪放后與USRP晶振產(chǎn)生的信號相乘把信號下變頻到中頻,同樣地再經(jīng)過一個(gè)低通濾波器把信號變得平滑。
之后中頻信號經(jīng)過ADC把模擬域的信號轉(zhuǎn)到數(shù)據(jù)域。ADC是USRP里面很重要的一個(gè)部件。ADC主要由兩個(gè)參數(shù),采樣精度和采樣率。采樣精度表示采樣后的信號用多少bit來表示,例如USRP B200的ADC精度為12 bits,即采樣后的每一個(gè)數(shù)據(jù)用12bits來表示。采樣率就是系統(tǒng)的采樣速率,USRP B200的采樣速率為61.44MS/s。這也就是為什么大部分SDRLTE系統(tǒng)都采用USRP B系列作為外設(shè)的原因,61.44MS/s的采樣率剛好是LTE系統(tǒng)最大采樣速率30.72M的兩倍。
同樣地信號經(jīng)過ADC之后,數(shù)字信號被送入FPGA模塊處理。FPGA里面包含兩個(gè)模塊,數(shù)字下變頻和接收控制。接收控制用來控制整個(gè)USRP系統(tǒng)的接收流程,例如什么時(shí)候開始接受等。數(shù)字下變頻即DDC,用于把信號從中頻下變頻到基帶。
圖3 SDR接收機(jī)原理圖
為什么要經(jīng)過兩次下變頻呢?如圖9所示,第一次變頻是在模擬域通過晶振產(chǎn)生的信號與射頻信號相乘把信號下變頻到中頻,這一次變頻主要是為了后面做AD采樣。我們知道采樣需要滿足奈奎斯特采樣定律,采樣的頻率必須大于信號的最高頻率的2倍,而射頻信號的載波頻率已經(jīng)能都達(dá)到2.6GHz,甚至5GHz,根本無法做出載波頻率兩倍的采樣速率的ADC。所以系統(tǒng)先把信號下變頻到中頻,然后再利用ADC對信號進(jìn)行模數(shù)轉(zhuǎn)化。因?yàn)閁SRP ADC的采樣率為61.44MS/s,所以我們可以推出USRP對應(yīng)的中頻頻率應(yīng)該低于30.72MHz。
接著中頻的數(shù)字信號被DDC下變頻到基帶。有人可能會問為什么不直接把信號一次變頻到基帶呢,這樣的接收機(jī)叫做零中頻接收機(jī)。如果載波頻率高了,零中頻的接收機(jī)設(shè)計(jì)會非常復(fù)雜,所以零中頻接收機(jī)一般用于載波頻率較低的系統(tǒng)里面。
圖4 下變頻原理示意圖
數(shù)字信號經(jīng)過USB3.0接口傳輸?shù)焦P記本電腦上后,電腦再把數(shù)據(jù)傳輸給SDR程序處理。物理層處理完后再把數(shù)據(jù)交給上層。這樣SDR接收機(jī)的信號接收過程便完成了。
SDR發(fā)射機(jī)/接收機(jī)里面的每一個(gè)模塊都對應(yīng)一大片知識,知識的海洋是無窮的,這里的介紹只能起一個(gè)拋磚引玉的作用。如果大家想深入學(xué)習(xí)的話,還得要多查閱資料。