Loraphy เป็นการใช้งาน MATLAB ที่สมบูรณ์ของเลเยอร์ LORA ทางกายภาพรวมถึงการมอดูเลตเบสแบนด์การ demodulation เบสแบนด์การเข้ารหัสและการถอดรหัส Loraphy ถูกจัดระเบียบเป็นไฟล์เดียว LoRaPHY.m เพื่อความสะดวกในการใช้งาน (คัดลอกและเรียกใช้ทุกที่)
repo นี้เป็นการดำเนินการของบทความต่อไปนี้:
Zhenqiang Xu, Pengjin Xie, Shuai Tong, Jiliang Wang จากการปลดปล่อยไปจนถึงการถอดรหัส: ไปสู่ความเข้าใจและการใช้งานของ Lora Phy ที่สมบูรณ์ ธุรกรรม ACM บนเครือข่ายเซ็นเซอร์ 2022 [PDF]
การใช้งาน SDR แบบเรียลไทม์ที่ใช้วิทยุ GNU สามารถเข้าถึงได้ผ่าน GR-LORA
matlab> = r2019b
git clone repo นี้หรือเพียงแค่ดาวน์โหลด LoRaPHY.m ใส่สคริปต์ matlab ของคุณเช่น test.m ในไดเรกทอรีเดียวกันของ LoRaPHY.m ด้านล่างเป็นตัวอย่างที่แสดงวิธีการสร้างสัญญาณ Lora เบสแบนด์ที่ถูกต้องจากนั้นแยกข้อมูลด้วยตัวถอดรหัส ดูตัวอย่างเพิ่มเติมในตัวอย่างไดเรกทอรี (Loraphy จัดเตรียม fast mode ซึ่งช่วยให้การเร่งความเร็ว 10x เปรียบเทียบกับ demodulation ปกติด้วยการย่อยสลายความไวเล็กน้อยดู ./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 );