Loraphy هو تطبيق MATLAB كامل للطبقة المادية Lora ، بما في ذلك تعديل النطاق الأساسي ، وإلغاء التشكيل الأساسي ، والترميز وفك التشفير. يتم تنظيم Loraphy كملف واحد LoRaPHY.m لسهولة الاستخدام (انسخه وتشغيله في كل مكان).
هذا الريبو هو تنفيذ الورقة التالية:
Zhenqiang Xu ، Pengjin Xie ، Shuai Tong ، Jiliang Wang. من إزالة التشكيل إلى فك التشفير: نحو التفاهم والتنفيذ الكامل لورا. معاملات ACM على شبكات المستشعر 2022. [PDF]
يمكن الوصول إلى تطبيق SDR في الوقت الفعلي على أساس راديو GNU عبر GR-Lora.
MATLAB> = R2019B
GIT استنساخ هذا الريبو أو مجرد تنزيل LoRaPHY.m . ضع نص MATLAB الخاص بك ، على سبيل المثال ، test.m ، في نفس الدليل من LoRaPHY.m . فيما يلي مثال يوضح كيفية إنشاء إشارة LORA الأساسية صالحة ثم استخراج البيانات باستخدام وحدة فك الترميز. رؤية المزيد من الأمثلة في أمثلة الدليل. (يوفر Loraphy fast mode الذي يمكّن تسريع 10x من المقارنة مع إزالة التشكيل العادي مع القليل من تدهور الحساسية. انظر ./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 );