Module: PWN::SDR::Decoder::RTTY
- Defined in:
- lib/pwn/sdr/decoder/rtty.rb
Overview
Pure-Ruby RTTY (Radioteletype, ITA2/Baudot) decoder.
Amateur RTTY is 45.45 baud 2-FSK with a 170 Hz shift; on USB the
convention is mark ≈ 2125 Hz, space ≈ 2295 Hz in the demodulated
audio. This module runs a per-symbol Goertzel on both tones,
frames 1-start / 5-data / 1.5-stop asynchronously, and decodes
ITA2 via DSP::BAUDOT_LTRS/FIGS. No minimodem, no sox.
Defined Under Namespace
Classes: Demod
Class Method Summary collapse
-
.authors ⇒ Object
- Author(s)
0day Inc.
-
.decode(opts = {}) ⇒ Object
- Supported Method Parameters
PWN::SDR::Decoder::RTTY.decode( freq_obj: 'required - freq_obj returned from PWN::SDR::GQRX.init_freq' ).
-
.help ⇒ Object
Display Usage for this Module.
Class Method Details
.authors ⇒ Object
- Author(s)
0day Inc. support@0dayinc.com
135 136 137 |
# File 'lib/pwn/sdr/decoder/rtty.rb', line 135 public_class_method def self. "AUTHOR(S):\n 0day Inc. <support@0dayinc.com>\n" end |
.decode(opts = {}) ⇒ Object
- Supported Method Parameters
PWN::SDR::Decoder::RTTY.decode( freq_obj: 'required - freq_obj returned from PWN::SDR::GQRX.init_freq' )
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
# File 'lib/pwn/sdr/decoder/rtty.rb', line 107 public_class_method def self.decode(opts = {}) freq_obj = opts[:freq_obj] # Prefer true-air I/Q (FM-demod → existing audio demod) when the # operator asks for a source/file or sets freq_obj[:iq_source]. # Otherwise keep the GQRX 48 kHz UDP audio path (run_native). want_iq = opts[:source] || opts[:file] || freq_obj[:iq_source] || freq_obj[:iq_file] if want_iq PWN::SDR::Decoder::Base.run_iq( freq_obj: freq_obj, protocol: 'RTTY', demod: Demod.new, sample_rate: (opts[:sample_rate] || freq_obj[:iq_rate] || 48_000).to_i, source: opts[:source], file: opts[:file], fm_demod: true, note: 'RTTY true-air: FM-demod I/Q then native bit recovery; falls back to detector without SDR hardware.' ) else PWN::SDR::Decoder::Base.run_native( freq_obj: freq_obj, protocol: 'RTTY', demod: Demod.new ) end end |
.help ⇒ Object
Display Usage for this Module
141 142 143 144 145 146 147 148 149 150 151 152 |
# File 'lib/pwn/sdr/decoder/rtty.rb', line 141 public_class_method def self.help puts "USAGE (true-air I/Q + GQRX-audio native paths, no external binaries): #{self}.decode( freq_obj: 'required - freq_obj returned from PWN::SDR::GQRX.init_freq' ) NOTE: Set GQRX to USB, tune so mark≈2125 Hz / space≈2295 Hz in the audio passband. 45.45 baud, 170 Hz shift, 1N5+1.5. #{self}.authors " end |