之前在學(xué)習(xí)藍(lán)牙的時(shí)候,我了解到了藍(lán)牙的物理層是基于2.4GHz頻段的80M帶寬內(nèi)分割出來(lái)很多個(gè)信道,把比特調(diào)制到信道的載波頻率上,進(jìn)行基本的鏈路通信,同時(shí)為了增強(qiáng)抗干擾性,藍(lán)牙還是用跳頻機(jī)制,也就是通信的雙方約定好,先在哪個(gè)信道通信,下一個(gè)時(shí)段在另一個(gè)信道上通信。
這里面涉及到一個(gè)最基本的問(wèn)題,也就是我們的比特,0或者1,是怎么調(diào)制到載波上的呢?
頻移鍵控FSK調(diào)制
BLE采用的FSK調(diào)制方式,也就是用不同的頻率表示0和1。在藍(lán)牙的一個(gè)通信信道中,小于中心頻率被稱為負(fù)頻偏,大于中心頻率被稱為正頻偏。
于是,我們使用負(fù)頻偏的信號(hào)表示0,正頻偏表示符號(hào)1。
比如我們選擇2402MHz這個(gè)信道進(jìn)行通信,負(fù)頻偏代表了比特0,正頻偏代表了比特1。則最小的頻偏約為180KHz。也即是說(shuō),如果中心頻率選取了2402MHz,比特0意味著傳輸2401.820MHz,比特1意味著傳輸2402.180MHz。
從時(shí)域分析圖來(lái)看,就像下面這樣的波形。
以上就是頻移鍵控的調(diào)制方式,也就是把符號(hào)0 和 1分別用不同的頻率來(lái)表示。
這里得加一個(gè)器件,以便于我們?nèi)ダ斫夂竺娴?a class="article-link" target="_blank" href="/baike/1555839.html">擴(kuò)頻通信,在這里先提出來(lái),這個(gè)器件就是壓控振蕩器,顧名思義,就是使用電壓來(lái)控制震蕩頻率。
如果應(yīng)用在我們上面的FSK中,其實(shí)就是一些固定的電壓點(diǎn)對(duì)應(yīng)著每個(gè)信道上面的0 和 1。只要經(jīng)過(guò)壓控振蕩器,就變成不同的頻率了。
什么是擴(kuò)頻通信呢?
LoRa的調(diào)制與解調(diào)也就是如何在物理波形和比特?cái)?shù)據(jù)之間進(jìn)行轉(zhuǎn)換。
LoRa 使用 CSS (Chirp Spread Spectrum)線性擴(kuò)頻調(diào)制,頻率線性掃過(guò)整個(gè)帶寬,因此抗干擾極強(qiáng),對(duì)多徑和多普勒效應(yīng)的抵抗也很強(qiáng)。
LoRa的基本通信單元是linear chirp,也即頻率隨時(shí)間線性增加(或減?。┑男盘?hào)。
我們將頻率隨著時(shí)間線性增加的chirp符號(hào)叫做upchirp,將頻率隨著時(shí)間線性減小的chirp符號(hào)叫做downchirp。
如下兩圖分別從時(shí)域波形和時(shí)頻域展示了一個(gè)upchirp的圖像:
上面的圖片展示的波形是一個(gè)頻率從小變大的過(guò)程。如果在壓控振蕩器輸入來(lái)測(cè)量,那就是從低到高的一個(gè)線性變化的電壓。在轉(zhuǎn)換到頻域中觀察就是下圖這樣的一條斜線。
我們知道了線性擴(kuò)頻就是一個(gè)線性遞增的頻率,那么回到最初的問(wèn)題,符號(hào) 0 和 1是怎么來(lái)表示的呢?
LoRa的做法是通過(guò)在頻域循環(huán)平移chirp進(jìn)行數(shù)據(jù)的編碼,不同的起始頻率代表不同的數(shù)據(jù)。
如下圖所示,在帶寬B內(nèi)四等分標(biāo)定四個(gè)起始頻率,我們可以得到4種類型的符號(hào),分別表示00,01,10,11。
我們將圖(a)所示從最低頻率掃頻到最高頻率的chirp符號(hào)稱為basic upchirp。所以在接收端,只需要將這個(gè)起始頻率計(jì)算出來(lái),就可以計(jì)算出每一個(gè)chirp對(duì)應(yīng)的比特?cái)?shù)據(jù)。
這里,LoRa規(guī)定了一個(gè)參數(shù)SF(Spreading Factor,擴(kuò)頻因子)
如上圖,當(dāng)SF = 2時(shí),我們獲得4個(gè)起始頻率,編碼為00,01,10,11。那么如果SF = 3,就可以得到8個(gè)起始頻率了。
因此,SF越大,我們?cè)谡麄€(gè)帶寬上分出的起始頻率點(diǎn)就越多,當(dāng)然也不能無(wú)限多,頻率的分辨率會(huì)不夠。
如果我們固定的選擇一個(gè)帶寬BW,那么SF越大,也就意味著T越大,也就是發(fā)送一個(gè)符號(hào)的時(shí)間越長(zhǎng)。因此SF用于調(diào)節(jié)傳輸速率和接收靈敏度,越大的SF速率越小但支持更遠(yuǎn)的通訊距離。
如果我們?cè)陬l率上監(jiān)測(cè)的話,可以看到一段LORA的頻率如下:
用聲音來(lái)打個(gè)比方,藍(lán)牙的調(diào)制方式就是把不同的聲音定義成 0 和 1 來(lái)進(jìn)行傳遞。而LoRa的擴(kuò)頻就相當(dāng)于我們通過(guò)唱一首歌來(lái)通信,把符號(hào)分成多個(gè),把從不同的段開(kāi)始唱來(lái)表示不同的符號(hào)。