Meaning of rtl_fm output values

Theodric Young theodric at
Wed Mar 14 19:57:55 UTC 2018


I'm new to SDR and I have a question about the data values that are 
generated by the rtl_fm program.

I got rtl_fm running on my system (cygwin running on Windows 7).  It is 
sending a stream of 16-bit signed integer values to stdout which I can 
redirect to a file or pipe to an audio playback system, such as sox.  So 
when I do this:

  rtl_fm -f 88.1M -M wbfm -s 240k -r120k -g 30 | play -t raw -r 120k -b 
16 -c 1 -e s -V1 -

I hear sweet, sweet music!  Hurray!

But how do these 16-bit integers relate to the modulation level of the 
carrier?  I'm assuming that the values are directly proportional to the 
instantaneous frequency deviation of the transmitted signal.  Is that 
right?  If so, how do I determine that ratio?  I'm hoping to use this to 
build a device that shows total modulation (as a percentage of the 
maximum modulation of +/- 75kHz) for an FM radio station.

Also, I'm assuming that the sample-rate of the output data stream needs 
to be at least 120kHz because the baseband signal includes the stereo 
pilot (19kHz), the stereo subcarrier (38kHz) and an RBDS subcarrier (57 

Any insight would be appreciated.  Thanks in advance,

Theodric Young

More information about the osmocom-sdr mailing list