I just started using a couple of low power radio modules in my project (HopeRF RFM69HCW). I made them work; they successfully transmit messages in a limited range (5-10 meters). Now I would like to improve that range (with a minimal message loss).
My problem is choosing the Bit rate, the frequency deviation, and the Rx Bandwidth for the channel filter (the settings I'm currently using are quite random: Br=19600, Fdev=2*Br, RxBw=Br). So I went on the web looking for a good-looking function describing the relationship between these three parameters and the transmission range, looking forward to writing a function like setBitRate(unsigned int x) {Br = x; Fdev = func1(x); RxBw = func2(x);}
.
Instead of that, documents explaining the meaning of those parameters aside (very interesting but often too complex for me, specially those concerning the channel filter), I found some (not many) configuration tables, like this one in the source of the RadioHead RFM69 library (I'll only reproduce a fragment of it here; in this case RxBw is set implicitly and therefore not showed in this list):
FSK_Rb2Fd5 = 0, ///< FSK, Whitening, Rb = 2kbs, Fd = 5kHz
FSK_Rb2_4Fd4_8, ///< FSK, Whitening, Rb = 2.4kbs, Fd = 4.8kHz
FSK_Rb4_8Fd9_6, ///< FSK, Whitening, Rb = 4.8kbs, Fd = 9.6kHz
FSK_Rb9_6Fd19_2, ///< FSK, Whitening, Rb = 9.6kbs, Fd = 19.2kHz
FSK_Rb19_2Fd38_4, ///< FSK, Whitening, Rb = 19.2kbs, Fd = 38.4kHz
FSK_Rb38_4Fd76_8, ///< FSK, Whitening, Rb = 38.4kbs, Fd = 76.8kHz
FSK_Rb57_6Fd120, ///< FSK, Whitening, Rb = 57.6kbs, Fd = 120kHz
FSK_Rb125Fd125, ///< FSK, Whitening, Rb = 125kbs, Fd = 125kHz
FSK_Rb250Fd250, ///< FSK, Whitening, Rb = 250kbs, Fd = 250kHz
FSK_Rb55555Fd50, ///< FSK, Whitening, Rb = 55555kbs,Fd = 50kHz for RFM69 lib compatibility
I did try to understand it's logic, but I couldn't. For instance, why does this list suddenly change from Fd = 2*Rb
(until line 7) to Fd = Rb
(from line 8)?
I found different lists, whit different parameters, but I never found a logic behind them. Does a (even complex) function which relates bit rate, frequency deviation and channel filter bandwidth exist? Or where all these settings likely found experimentally? Am I trying to relate unrelated settings (I admit that I have a poor understanding of them, especially of the third), or am I forgetting some strongly related ones?
600Hz < Fdev
andFdev + BitRate/2 <= 500kHz
, which means almost nothing at low bit rates (e.G. for 9600 bit/s Fdev can be in a 600Hz - 495200Hz range) $\endgroup$