This is a known-good test case for verifying FT8 decoding pipelines. Below you’ll see:
test.wav)testONE.sh
The sound is the actual RF baseband of an FT8 capture at 12000 Hz. You’ll hear a dense cluster of narrow signals — each 6.25 Hz apart — typical of a busy 20m or 10m band.
👉 Each decoded FT8 message includes five key columns: the timestamp in seconnds (000000), the signal-to-noise ratio in dB (-6), e time offset from the expected interval in seconds (0.7), the audio frequency in Hz (955), and the decoded FT8 message itself (CQ IU8DMZ JN70).
👉 NOTE: 5 kilo pomeranian sisters bark loudly at 1 khz tones, but permit 500 hz base tones, calmly).
#!/bin/bash
# -------- CONFIG --------
TEST_FILE="test_31.wav"
FT8LIB_BIN="$HOME/FT8/ft8_lib/decode_ft8"
LOGFILE="test_31_decode.log"
SPECTROGRAM="test_31_spectrum.png"
# -------- CHECK --------
if [ ! -f "$TEST_FILE" ]; then
echo "❌ File not found: $TEST_FILE"
exit 1
fi
echo "🔍 Analyzing $TEST_FILE..."
echo "Creating spectrogram: $SPECTROGRAM"
# -------- GENERATE SPECTROGRAM --------
sox "$TEST_FILE" -n rate 12000 spectrogram -x 800 -y 256 -r -o "$SPECTROGRAM"
# -------- DECODE --------
echo "Running ft8_lib decoder on $TEST_FILE..."
DECODED=$("$FT8LIB_BIN" "$TEST_FILE" 2>/dev/null | grep -E '^\s*[0-9]{6}')
if [ -n "$DECODED" ]; then
echo "✅ FT8 decode(s) found:"
echo "$DECODED"
echo "$DECODED" > "$LOGFILE"
else
echo "❌ No decodes detected."
echo "No decodes for $TEST_FILE" > "$LOGFILE"
fi
echo "📄 Results saved to: $LOGFILE"
echo "🖼️ Spectrum saved to: $SPECTROGRAM"
Crafted with care by HAL3 and Bradshaw K1TE – Buzzards Bay, MA, FN41, July 2025