Some examples of using our DSP code library
Frequency modulation demodulation of commercial FM broadcasting.
REGION=1
FREQ=106.4M
IRATE=2048000
MRATE=256000
ORATE=44100
rtl_sdr -f $FREQ -s $IRATE - | ./fmdemod $IRATE $MRATE $ORATE $REGION | aplay -t raw -c 1 -r $ORATE -f float
Frequency modulation demodulation of commercial stereo FM broadcasting.
REGION=1
FREQ=106.4M
IRATE=2400000
MRATE=480000
ORATE=48000
rtl_sdr -f $FREQ -s $IRATE - | ./fmstereo $IRATE $MRATE $ORATE $REGION | aplay -t raw -c 2 -r $ORATE -f float
For lower CPU usage and fewer underruns, choose lower rates and avoid PulseAudio:
REGION=1
FREQ=106.4M
IRATE=1024000
MRATE=256000
ORATE=32000
DEVICE=$(aplay -L | grep -m1 sysdefault)
rtl_sdr -f $FREQ -s $IRATE - | ./fmstereo $IRATE $MRATE $ORATE $REGION | aplay -t raw -c 2 -r $ORATE -f float -D $DEVICE
Interpolation via frequency-domain zero padding.
Use gnuplot to look at the example:
plot "< ./fdzp" u 2:3 w p pt 4 t "Data", "< ./fdzp" u 4:5 w l t "FDZP"
Interpolation using Cubic Hermite Spline.
Use gnuplot to look at the example:
plot "< ./hermite" u 1:2 w p pt 4 t "Data", "< ./hermite" u 1:3 w l t "Hermite"
Interpolation in 2D using Cubic Hermite Spline.
Use gnuplot to look at the example:
plot "< ./hermite2" u 2:3 w p pt 4 t "Data", "< ./hermite2" u 4:5 w l t "Hermite"
Comparing interpolation between Uniform Cubic Hermite Spline and Uniform Natural Cubic Spline.
Use gnuplot to look at the example:
plot "< ./uniform" u 1:2 w p pt 4 t "Data", "< ./uniform" u 1:3 w l t "Hermite", "< ./uniform" u 1:4 w l t "Natural"
Channel estimation using the Normalized Complex Least Mean Squares filter