Class: PWN::SDR::Decoder::GSM::DemodIQ
- Inherits:
-
Object
- Object
- PWN::SDR::Decoder::GSM::DemodIQ
- Defined in:
- lib/pwn/sdr/decoder/gsm.rb
Overview
Streaming GMSK demod for Base.run_iq — I/Q → FCCH lock + SCH BSIC.
Instance Method Summary collapse
- #feed_iq(samples, rate: nil) ⇒ Object
-
#initialize(rate:) ⇒ DemodIQ
constructor
A new instance of DemodIQ.
Constructor Details
#initialize(rate:) ⇒ DemodIQ
Returns a new instance of DemodIQ.
29 30 31 32 33 34 35 |
# File 'lib/pwn/sdr/decoder/gsm.rb', line 29 def initialize(rate:) @rate = rate.to_f @spb = @rate / SYMBOL_RATE @audio = [] @fcch_n = 0 @sch_n = 0 end |
Instance Method Details
#feed_iq(samples, rate: nil) ⇒ Object
37 38 39 40 41 42 43 44 45 |
# File 'lib/pwn/sdr/decoder/gsm.rb', line 37 def feed_iq(samples, rate: nil, &) @rate = rate.to_f if rate @spb = @rate / SYMBOL_RATE fm = PWN::SDR::Decoder::DSP.fm_demod_iq(iq: samples) @audio.concat(fm) scan(&) if block_given? max = (@rate * 0.25).to_i @audio.shift(@audio.length - max) if @audio.length > max end |