Skip to content
dudmuck edited this page Nov 7, 2013 · 6 revisions

Example configurations:

desired bitrate sample rate samples per symbol modulator sensitivity h=1 h=0.5
50kbps 200k 4 0.8 n/a
50kbps 250k 5 0.62 n/a
50kbps 400k 8 0.4 n/a
50kbps 500k 10 0.4 n/a
50kbps 800k 16 0.2 n/a
50kbps 1000k 20 0.15 n/a
50kbps 1.6M 32 0.15 n/a
100kbps 400k 4 0.8 0.4
100kbps 800k 8 0.4 0.2
100kbps 1000k 10 0.312 0.156
100kbps 1.6M 16 0.2 0.1
100kbps 2.0M 20 0.156 0.078
100kbps 3.2M 32 todo todo
200kbps 800k 4 0.8 0.4
200kbps 1000k 5 0.62 0.312
200kbps 1.6M 8 0.4 0.2
200kbps 2.0M 10 0.312 0.156
200kbps 3.2M 16 0.2 0.1
200kbps 4.0M 20 0.156 0.0.78

Modulator sensitivity is only concern for transmitter deviation. h is modulation index, the ratio of (FM) frequency deviation to bit rate.

Different combinations of sample rate and samples per symbol is given because different RF bandwidths may be desired, or radio hardware is only capable of certain sample rates. Yet the newer SDR hardware has more flexible PLL clocking and should be more capable than this table.

Because bit rate is fixed to sample rate, its critical to ensure that the desired clock rate is actually selected on hardware, especially with older hardware without PLL clocking.

When using modulator sensitivity >= 0.8, take care of drive level into radio sink device (IQ baseband complex).


This following table for 300kbps is for (older) hardware not capable of 1.2Msps, 1.5Msps, 1.8Msps etc, resampler is used.

desired bitrate sample rate samples per symbol modulator sensitivity h=0.5 resampler RX
300kbps 1.6M 4 0.385 interp:6 decim:8
300kbps 2.0M 5 0.2 interp:6 decim:5
300kbps 3.2M 10 0.16 interp:15 decim:16
300kbps 4.0M 12 0.13 interp:10 decim:9
Rational resampler can be used if hardware sample rate wont achieve desired bit rate.

RX example is when hardware is sampling at 1.6Msps, but 1.2Msps is desired but cannot be precisely achieved. Rational resampler is configured interpolator to 6 go up to 9.6Msps, and then decimate 8 to 1.2Msps, the sps=4 gives 300kbps.

For transmit the interpolator value is swapped with decimator.

Clone this wiki locally