PhosphorFeld — Decoder Test Results

Independent accuracy testing of the PhosphorFeld Hellschreiber decoder using the CLI test harness (HellDecode). The CLI uses identical DSP code to the iOS app via symlinks — same source files, same binary logic.

Methodology

Decoder Settings (defaults)

Test Files

FileSourceToneSNRNotes
hell_qbf_980hz_clean.wavHellGen980 HzCleanBaseline — “THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG”
hell_qbf_1050hz_clean.wavHellGen1050 HzCleanOff-frequency — AFC acquisition test
hell_qbf_980hz_snr20.wavHellGen980 Hz20 dBModerate noise
hell_qbf_980hz_snr10.wavHellGen980 Hz10 dBHeavy noise — real OTA conditions
hell_qbf_980hz_snr6.wavHellGen980 Hz6 dBMarginal signal
hell_qbf_980hz_inverted.wavHellGen980 HzCleanInverted polarity (decoded with --invert)
hell_qbf_980hz_drift10.wavHellGen980 HzClean0.167 Hz/s frequency drift

Download Test Files

These WAV files can be played from a speaker near the iPhone microphone to test the app. All files are 8 kHz mono, ~34 seconds, generated by HellGen. The message is “THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG 0123456789”.

FileDescriptionSize
hell_qbf_980hz_clean.wavClean baseline at 980 Hz — start here537 KB
hell_qbf_1050hz_clean.wavClean at 1050 Hz — tests AFC acquisition537 KB
hell_qbf_980hz_snr10.wav980 Hz with 10 dB SNR — realistic noisy conditions537 KB

Testing Instructions

  1. Download one of the WAV files above (start with the clean 980 Hz baseline).
  2. Launch PhosphorFeld. In CONFIG (F4): set AUTO TONE to ON, SQUELCH to 0.002 (default), INVERT to OFF.
  3. Go to DECODE (F1). Set GAIN to ~60–70%. Tap START.
  4. Play the WAV from a speaker at moderate volume, 15–30 cm from the iPhone mic.
  5. Status bar should show LOCKED within 1–2 seconds. Greyscale text glyphs will paint across the strip.
  6. Check SIGNAL (F2) for the FFT peak and waterfall. Check LOG (F3) after stopping for saved sessions.

Hellschreiber output is intentionally “fuzzy” — you read the painted pixel glyphs with your eyes, just as Rudolf Hell intended in 1929. There is no character recognition. Characters appear twice vertically (the 14-row redundancy strip) because transmitter and receiver are not synchronised.

Results

Test CasePERTargetStatus
Clean 980 Hz0.50%< 1%PASS
Off-frequency 1050 Hz (AFC)0.00%< 2%PASS
20 dB SNR7.02%< 5%CLOSE
10 dB SNR7.69%< 15%PASS
6 dB SNR8.76%< 30%PASS
Inverted polarity0.00%< 1%PASS
Frequency drift0.00%< 3%PASS

Notes

DSP Reference