Loraphy adalah implementasi MATLAB yang lengkap dari lapisan fisik Lora, termasuk modulasi baseband, demodulasi baseband, pengkodean dan decoding. Loraphy disusun sebagai satu file LoRaPHY.m untuk kemudahan penggunaan (salin dan jalankan di mana -mana).
Repo ini adalah implementasi dari makalah berikut:
Zhenqiang Xu, Pengjin Xie, Shuai Tong, Jiliang Wang. Dari demodulasi ke decoding: Menuju pemahaman dan implementasi Lora Phy yang lengkap. Transaksi ACM pada Jaringan Sensor 2022. [PDF]
Implementasi SDR real-time berdasarkan radio GNU dapat diakses melalui GR-Lora.
Matlab> = R2019b
Git mengkloning repo ini atau cukup unduh LoRaPHY.m . Letakkan skrip matlab Anda, misalnya, test.m , di direktori LoRaPHY.m yang sama. Di bawah ini adalah contoh yang menunjukkan cara menghasilkan sinyal lora baseband valid dan kemudian mengekstrak data dengan dekoder. Lihat lebih banyak contoh dalam contoh direktori. (Loraphy menyediakan fast mode yang memungkinkan speedup 10x dibandingkan dengan demodulasi normal dengan sedikit degradasi sensitivitas. Lihat ./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 );