Class: PWN::SDR::Decoder::LoRa::DemodIQ

Inherits:
Object
  • Object
show all
Defined in:
lib/pwn/sdr/decoder/lora.rb

Overview

Streaming CSS dechirp demod for Base.run_iq.

Instance Method Summary collapse

Constructor Details

#initialize(rate:, bw: DEFAULT_BW) ⇒ DemodIQ

Returns a new instance of DemodIQ.



25
26
27
28
29
30
31
# File 'lib/pwn/sdr/decoder/lora.rb', line 25

def initialize(rate:, bw: DEFAULT_BW)
  @rate = rate.to_f
  @bw   = bw.to_i
  @buf  = []
  @dchirp = {}
  @seen = {}
end

Instance Method Details

#feed_iq(samples, rate: nil) ⇒ Object



33
34
35
36
37
38
39
40
41
42
# File 'lib/pwn/sdr/decoder/lora.rb', line 33

def feed_iq(samples, rate: nil, &)
  @rate = rate.to_f if rate
  r = PWN::SDR::Decoder::DSP.resample_iq(
    iq: samples, src_rate: @rate, dst_rate: @bw
  )
  @buf.concat(r)
  SF_RANGE.each { |sf| try_sf(sf, &) if block_given? }
  max = ((1 << 12) * 20) * 2
  @buf.shift(@buf.length - max) if @buf.length > max
end