# Fit Rice Distribution for negative RSS

I measured the Received Signal Strength in dBm between a receiver $$R_x$$ and a transmitter $$T_x$$ at different distances $$d_1, d_2, \dots, d_n$$, and all the values that I obtained are (of course) negative (e.g. $$[-80;-30]$$dBm.

Now I want to try to fit the Rice/Rician distribution (to compute the PDF) on every single distance (I don't know how can I fit on all distances), but I understood that I cannot do this with negative values.

What can I do? I don't think that convert to mW is the right choice, since I guess that I can lose a lot of information about it.

Update

I converted the measurements in mW, but when I try to fit the Rician distribution on a single distance in Matlab I receive an error like this:

z = [1.06814447885193e-05;6.15885529115340e-07;5.92324913934610e-07;5.78868610067183e-07;4.76244529410218e-07;6.17419014199609e-07;5.88870773232456e-07;6.07952991784579e-07;5.45833265534826e-07;5.10093747291922e-07;5.65405462521790e-07;5.77032135332931e-07;5.71965719059118e-07;6.27480161997852e-07;6.85756606121613e-07;6.10435806184937e-07;6.36253229871620e-07;6.05326936425641e-07;5.91057864030903e-07;6.83266298400135e-07;7.08842910309525e-07;5.86111172475547e-07;5.74129681879599e-07;5.71715543837535e-07;5.75638721577247e-07;5.52408051608360e-07;6.42598932860734e-07;6.98441441500089e-07;6.60419670228017e-07;6.90907647790195e-07;7.09447070946132e-07;6.79719923717695e-07;6.01229110180695e-07;6.15077725903605e-07;6.11730310782606e-07;6.35096910397487e-07;6.70301204806594e-07;5.65340371559323e-07;6.80675313427682e-07;5.89915761635370e-07;7.49290109458934e-07;7.13444180817969e-07;6.56387043686654e-07;5.48908555607045e-07;6.94368482631736e-07;7.06463941494969e-07;6.51163426781562e-07;6.13493548436490e-07;5.95223405098983e-07;6.30245857770948e-07];
pd = fitdist(z,'Rician')


The parameter S must be a nonnegative finite numeric scalar.

• What information does converting to mW destroy? Feb 4, 2020 at 20:18
• Sincerely I don't know. It was a my assumption. The stranger thing is that I saw other works in the literature that they fit with a Rician distribution even with negative values of the RSS. Do you think that the conversion is the only method to compute the Rician distribution? Feb 4, 2020 at 20:24

You know how to map from dBm to mW and the other way around so it seems to me this is a lossless transformation and you should be good to go by converting the dBm value to the mW value and doing the distribution fitting. You can then use it for whatever you want but just remember that you have done the conversion so will need to convert back to dB scale if that is what you want to report in the end.

Edit: From the comment, since MATLAB is complaining about too small of values I suggest just converting to microwatts. So do:

z = 1000*z;
pd = fitdist(z, 'Rician');


If it still complained, we could just keep moving down to nanowatt and so on. As long as you know that when you use that distribution you need to keep the units straight, then there is no harm in going from dBm to mW, $$\mu$$W, nW, and so on.

• I tried to convert the dBm in mW, but probably the values are so small (but not negative) that I receive an error during the fitting like: The parameter S must be a nonnegative finite numeric scalar. (in Matlab) Feb 5, 2020 at 6:58
• The error is just saying that the values are too small. There is nothing stopping you from making the values bigger. What I'm saying is I'd suggest to convert to something smaller like microwatts then you'll have distribution over possible microwatt values and can use that. For example, z = [ ... ]; pd = fitdist(z,'Rician') Feb 5, 2020 at 14:54
• Thank you so much for your suggestion. The trick was to use a smaller measurement unit. Feb 5, 2020 at 16:22