Class: PWN::SDR::Decoder::LoRa::DemodIQ
- Inherits:
-
Object
- Object
- PWN::SDR::Decoder::LoRa::DemodIQ
- Defined in:
- lib/pwn/sdr/decoder/lora.rb
Overview
Streaming CSS dechirp demod for Base.run_iq.
Instance Method Summary collapse
- #feed_iq(samples, rate: nil) ⇒ Object
-
#initialize(rate:, bw: DEFAULT_BW) ⇒ DemodIQ
constructor
A new instance of DemodIQ.
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 |