LoRaPHY
v0.2.0
Loraphy是LORA物理層的完整MATLAB實現,包括基帶調製,基帶解調,編碼和解碼。 loraphy被組織為單個文件LoRaPHY.m ,以易於使用(複製並在任何地方運行)。
此存儲庫是以下論文的實施:
Zhenqiang Xu,Pengjin Xie,Shuai Tong,Jiliang Wang。從解調到解碼:完全理解和實施洛拉。傳感器網絡上的ACM交易2022。 [PDF]
可以通過GR-Lora訪問基於GNU無線電的實時SDR實現。
MATLAB> = R2019B
git克隆此倉庫或僅下載LoRaPHY.m 。將您的matlab腳本(例如, test.m )放在LoRaPHY.m的同一目錄中。以下是一個示例,顯示瞭如何生成有效的基帶信號,然後用解碼器提取數據。在目錄示例中查看更多示例。 (Loraphy提供了fast mode ,可實現10倍加速度,與正常的解調相比,具有一點靈敏度降解。請參見./examples/test_fast_mode.m 。)
% test.m
rf_freq = 470e6 ; % carrier frequency 470 MHz, used to correct clock drift
sf = 7 ; % spreading factor SF7
bw = 125e3 ; % bandwidth 125 kHz
fs = 1e6 ; % sampling rate 1 MHz
phy = LoRaPHY( rf_freq , sf , bw , fs );
phy.has_header = 1 ; % explicit header mode
phy.cr = 4 ; % code rate = 4/8 (1:4/5 2:4/6 3:4/7 4:4/8)
phy.crc = 1 ; % enable payload CRC checksum
phy.preamble_len = 8 ; % preamble: 8 basic upchirps
% Encode payload [1 2 3 4 5]
symbols = phy .encode(( 1 : 5 ) ' );
fprintf( " [encode] symbols:n " );
disp( symbols );
% Baseband Modulation
sig = phy .modulate( symbols );
% Demodulation
[ symbols_d , cfo , netid ] = phy .demodulate( sig );
fprintf( " [demodulate] symbols:n " );
disp( symbols_d );
% Decoding
[ data , checksum ] = phy .decode( symbols_d );
fprintf( " [decode] data:n " );
disp( data );
fprintf( " [decode] checksum:n " );
disp( checksum );