LoRaPHY
v0.2.0
Loraphy는 베이스 밴드 변조,베이스 밴드 복조, 인코딩 및 디코딩을 포함한 LORA 물리 층의 완전한 MATLAB 구현입니다. Loraphy는 사용 편의성을 위해 단일 파일 LoRaPHY.m 으로 구성됩니다 (복사하고 어디서나 실행).
이 repo는 다음 논문의 구현입니다.
Zhenqiang Xu, Pengjin Xie, Shuai Tong, Jiliang Wang. 복조에서 디코딩까지 : 완전한 lora phy 이해 및 구현을 향해. 센서 네트워크의 ACM 트랜잭션 2022. [PDF]
GNU 라디오를 기반으로 한 실시간 SDR 구현은 GR-Lora를 통해 액세스 할 수 있습니다.
matlab> = r2019b
git clone이 repo 또는 LoRaPHY.m 다운로드하십시오. Matlab 스크립트 (예 : test.m )를 동일한 LoRaPHY.m 디렉토리에 넣으십시오. 아래는 유효한베이스 밴드 LORA 신호를 생성 한 다음 디코더로 데이터를 추출하는 방법을 보여주는 예입니다. 디렉토리 예제에서 더 많은 예를 참조하십시오. (Loraphy는 약간의 감도 저하와 함께 정상 철조와 비교하는 10 배 속도 업을 가능하게하는 fast mode 제공합니다. ./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 );