SNR / PER in nRF Conect SDK

Hi,

We're using nRF Connect SDK 1.9.1, we have a requirement of getting SNR / PER values in nRF connect SDK.

do we have any provision to get these values from physical layer if possible ?

Thank you,

Regards,

Hitesh

Parents
  • Hi Hitesh

    It is possible to use the Direct Test Mode application in nRF Connect for Desktop, and run two instances of the program where one configures a board in TX mode and the other board in RX mode. 

    Then you can start a transmission on one board and see how many packets you receive on the receiving side. 

    Unfortunately there is no counter on the TX side, so it is hard to know exactly how many packets are sent, but when running several tests with a TX timeout of 2 second I see values in the 3190-3200 range. If you can accept a bit of uncertainty then you can use this method. 

    Best regards
    Torbjørn

  • Hi Torbjørn, 

    Thank you for quick response,

    I want to know the SNR of the received packet in Mesh, when device is in running state in nRF connect SDK 1.9.1,

    Can we fetch SNR of received packet integrated in nCS to have a better debugging of Mesh network

    Thank you,

    Regards,

    Hitesh

  • Hi Hitesh

    The RX sensitivity is not defined anywhere in the code, you have to find this in the product specification for the part you are using. 

    As an example, for the nRF52840 you can find the RX sensitivity numbers here

    Please note that the RX sensitivity is different for different radio modes, and you have to make sure to refer to the correct value for the mode you are using. 

    Best regards
    Torbjørn

  • Hi,

    We're using nRF52833, I'm attaching the screenshot of datasheet capture for Rx sensitivity,
    can you please update which value do I refer to calculate SNR?

    Thank you,

    Regards,

    Hitesh

  • Hi Hitesh

    If you're running standard Bluetooth mesh then you should refer to the P_SENS,IT,SP,1M,BLE value, meaning the sensitivity is -96dBm. 

    Best regards
    Torbjørn

  • I have some confusion with regards to the SNR calculation suggested by Nordic in mail trail below. I would like to understand your opinion.

    I was going through this site Signal-to-Noise Ratio (SNR) and Wireless Signal Strength - Cisco Meraki

    Since the SNR is difference in between the Received signal and the Noise floor , I have one query with respect to the answer received from Nordic.

    According to Nordic inputs : SNR is as follows:

    If this is so then higher the sensitivity of our antenna higher is the ability to detect weaker signals. Thus if sensitivity is -96dbm at 1mbps with packet size < 37bytes ,as per snap shared by @Shinde, Ramesh T (refer mail below), then for a actual signal (good signal) of -70dbm then SNR is -70 –(-96dbm) = 26dbm which is a very good SNR value. i.e. since the difference between the required signal and the noise signal is big. While it may be so that the other noisy signal in the area are having the signal strength of -80dbm as well, which will intern lead to a SNR of -70-(80)dbm = 10db. Which is not so good SNR.

     

    So my understanding is that the SNR should not be related to sensitivity, but to the overall noise floor of the region.

    • Any Ideas how do we get the signal strength of noise floor in the area?

    • Also would like to know more on what basis RSSI is calculated the one which we get in rx_rssi, Can you please add some thought on the RSSI value calculation

    • Please share some way to get PER value as well from nRF Connect SDK. 

    Thank you,

    Regards,

    Hitesh

  • Hi Hitesh, 

    Torbjørn is not available at the moment and I will handle your case instead. 

    hiteshk014 said:
    Any Ideas how do we get the signal strength of noise floor in the area?

    I'll start by defining what exactly RSSI is a measure of because it is vital in order to understand how it relates to SNR and noise floor. The Received Signal Strength Indicator is a measure of the received RF signal in a given channel at the point of sampling. In essence it's an ADC sample of the voltage present in the receiver's analog front-end. The vital piece of infromation here is that any RF signal present in the given or adjacent channels will increase the value of the measured RSSI. RSSI does not directly measure the signal strength of any particular signal, but the sum strength of all of signals present. 

    Usually RSSI is sampled automatically when receiving a packet in order to estimate its signal strength, but you can also sample RSSI manually when you are not receiving a packet. If you sample each channel while your wanted signal is not present you can estimate the noise floor based on the RSSI samples. 

    I'm not quite sure what problem you are trying to solve by estimating the current SNR for a particular radio link, but if it is to improve Packet Error Rate for BLE links then I suggest you study the Bluetooth LE Quality of Service module for nRF Desktop, as it solves that exact problem. It increases PER by identifying noisy channels and updating the BLE connection's Channel Map where the noisy channels are removed. 

    hiteshk014 said:

    According to Nordic inputs : SNR is as follows:

    Since RSSI is only an indication of RSS, you can only find an indication of SNR. 

    hiteshk014 said:
    Please share some way to get PER value as well from nRF Connect SDK. 

    I don't fully understand what you are asking for.
    Why do you need to know the PER value? What problem are you trying to solve, and why do you think that a PER value is needed to solve it?

    BR,
    Håkon Holdhus.

Reply
  • Hi Hitesh, 

    Torbjørn is not available at the moment and I will handle your case instead. 

    hiteshk014 said:
    Any Ideas how do we get the signal strength of noise floor in the area?

    I'll start by defining what exactly RSSI is a measure of because it is vital in order to understand how it relates to SNR and noise floor. The Received Signal Strength Indicator is a measure of the received RF signal in a given channel at the point of sampling. In essence it's an ADC sample of the voltage present in the receiver's analog front-end. The vital piece of infromation here is that any RF signal present in the given or adjacent channels will increase the value of the measured RSSI. RSSI does not directly measure the signal strength of any particular signal, but the sum strength of all of signals present. 

    Usually RSSI is sampled automatically when receiving a packet in order to estimate its signal strength, but you can also sample RSSI manually when you are not receiving a packet. If you sample each channel while your wanted signal is not present you can estimate the noise floor based on the RSSI samples. 

    I'm not quite sure what problem you are trying to solve by estimating the current SNR for a particular radio link, but if it is to improve Packet Error Rate for BLE links then I suggest you study the Bluetooth LE Quality of Service module for nRF Desktop, as it solves that exact problem. It increases PER by identifying noisy channels and updating the BLE connection's Channel Map where the noisy channels are removed. 

    hiteshk014 said:

    According to Nordic inputs : SNR is as follows:

    Since RSSI is only an indication of RSS, you can only find an indication of SNR. 

    hiteshk014 said:
    Please share some way to get PER value as well from nRF Connect SDK. 

    I don't fully understand what you are asking for.
    Why do you need to know the PER value? What problem are you trying to solve, and why do you think that a PER value is needed to solve it?

    BR,
    Håkon Holdhus.

Children
No Data
Related