Hi Bali,
I tested a cleaned-up version on the two IQ samples you shared, obs 14002127 and 13712702.
So far it produces audio very close to your original script, so I would not claim better demodulation yet.
The useful part is more about making the processing chain easier to test and repeat: explicit IQ format, USB/LSB option, optional conjugate/swap-IQ, configurable filters, controlled normalization, and a JSON sidecar with the parameters used.
On obs 13712702 the output looks consistent with your script in Audacity, with the useful tones preserved and the very low audio band more controlled.
I think the real next test should be downstream: run both WAV files through the same SSDV/SoundModem chain and compare how many valid fragments or frames are recovered.
I’m attaching the script here in case it helps.
satnogs_iq_to_ssb_audio.py.txt (11.5 KB)