Одночасний прийом декількох станцій одним свистком

Передумови

Для початку упевніться що у вас заінстальовний rtl_sdr утиліта для захоплення IQ потоку.

CSDR компіляція

git clone https://github.com/jketterl/csdr
sudo apt-get install libfftw3-dev -y
sudo apt-get install libsamplerate-dev
cd csdr && mkdir build && cd build
cmake ..
make
sudo make install
sudo ldconfig

NCAT

sudo apt-get install ncat

Тестуємо NCAT чи працює

sudo ncat -4 -l 4952 -k --send-only --no-shutdown --allow 127.0.0.1

Додаткові утиліти для Маліни

sudo apt-get install pulseaudio pavucontrol mplayer -y

Terminal вікно 1

rtl_sdr -s 1200000 -f 14100000 -O 'ds=1:dm=2' - | csdr convert_u8_f | ncat -4 -l 4952 -k --send-only --no-shutdown --allow 127.0.0.1

Термінал вікно 2

ncat -v 127.0.0.1 4952 | csdr shift_addition_cc `python3 -c "print (float(14100000-14074000)/1200000)"` | csdr fir_decimate_cc 25 0.05 HAMMING | csdr bandpass_fir_fft_cc 0 0.5 0.05 | csdr realpart_cf | csdr agc_ff | csdr limit_ff | csdr convert_f_s16 | mplayer -nocache -rawaudio samplesize=2:channels=1:rate=48000 -demuxer rawaudio -

Експерементально підібрані команди

USB

ncat -v 127.0.0.1 4952 | csdr shift_addition_cc `python3 -c "print (float(14100000-14074000)/1200000)"` | csdr fir_decimate_cc 25 0.05 HAMMING | csdr bandpass_fir_fft_cc 0 0.08 0.03 | csdr realpart_cf | csdr agc_ff | csdr limit_ff | csdr convert_f_s16 | mplayer -nocache -rawaudio samplesize=2:channels=1:rate=48000 -demuxer rawaudio -

Пояснення команд

USB

csdr bandpass_fir_fft_cc 0 0.08 0.03 фільтр

print (float(14100000-14074000)/1200000)

14100000 — частота прийому свистка
14074000 — бажана частота прийому
1200000 — параметр Sample rate свистка

LSB

csdr bandpass_fir_fft_cc -0.08 0 0.03 фільтр

Міняємо в csdr bandpass_fir_fft_cc 0 0.08 0.03 перші два числа місцями і ставимо знак мінус для першого числа.

csdr bandpass_fir_fft_cc 0 0.08 0.03 — USB
csdr bandpass_fir_fft_cc -0.08 0 0.03 – LSB

Друга звукова карта

ncat -v 127.0.0.1 4952 | csdr shift_addition_cc `python3 -c "print (float(14100000-14074000)/1200000)"` | csdr fir_decimate_cc 25 0.05 HAMMING | csdr bandpass_fir_fft_cc -0.08 0 0.03 | csdr realpart_cf | csdr agc_ff | csdr limit_ff | csdr convert_f_s16 | mplayer -ao alsa:device=hw=2.0 -nocache -rawaudio samplesize=2:channels=1:rate=48000 -demuxer rawaudio -

Звукова карта моно лівий і моно правий канал

ncat -v 127.0.0.1 4952 | csdr shift_addition_cc `python3 -c "print (float(14100000-14080000)/1200000)"` | csdr fir_decimate_cc 25 0.05 HAMMING | csdr bandpass_fir_fft_cc 0 0.08 0.03 | csdr realpart_cf | csdr agc_ff | csdr limit_ff | csdr convert_f_s16 | mplayer -nocache -af pan=2:0:1 -rawaudio samplesize=2:channels=1:rate=48000 -demuxer rawaudio -
ncat -v 127.0.0.1 4952 | csdr shift_addition_cc `python3 -c "print (float(14100000-14074000)/1200000)"` | csdr fir_decimate_cc 25 0.05 HAMMING | csdr bandpass_fir_fft_cc 0 0.08 0.03 | csdr realpart_cf | csdr agc_ff | csdr limit_ff | csdr convert_f_s16 | mplayer -nocache -af pan=2:1:0 -rawaudio samplesize=2:channels=1:rate=48000 -demuxer rawaudio -

Параметри:
-af pan=2:1:0
-af pan=2:0:1

Корисні команди

ffmpeg -i ./3651.00_iq.wav -f wv -ab 16000 - | vlc -vvv -

Джерело

https://www.rtl-sdr.com/tutorial-setting-up-a-low-cost-qrp-ft8-jt9-wspr-etc-monitoring-station-with-an-rtl-sdr-v3-and-raspberry-pi-3/