When the Radius SDK demodulates/receives an incoming tone, the following values are available from the Tone object:
Signal-to-Noise Ratio (SNR): Indicates in decibels (dB) the amount of interfering noise relative to the received strength of the LISNR Tone.
Header and Payload Error Vector Magnitude (EVM): Gives an indication in decibels (dB) of how challenging it was for the LISNR Tone to be received by the LISNR Radius SDK.
Header EVM: EVM value indicating the quality of the Header.
Payload EVM: EVM value indicating the quality of the Payload.
These values are only available when receiving PKAB2 or PKAB2_wideband tones. Standard2 and Standard2_wideband tones will not have a header/payload EVM value.
(Future) In the release of Radius 3.0, there will be additional callbacks to indicate when the start of a playing tone is detected (useful for if a long transmission is incoming) and a callback to indicate when a tone has failed to be demodulated (useful for providing UX/UI feedback to the user to hold their phone steady, move closer, etc.). Ask our Customer Success team (cs@lisnr.com) about release dates.
Below is a relative scale to indicate how SNR and EVM (db) values can be associated used to measure how easy/challenging it was to receive a tone.
Note:
Default values for an unknown signalToNoiseRatio will give the default value of -60.0
Developers using the Radius SDK can use the SNR and EVM values to provide UI/UX indicators or messaging to their end users. If you are experiencing either poor SNR or EVM values, the following actions are recommended:
Transmit at a higher volume.
Reduce the distance between the transmitting speaker and the receiving microphone.
Angle the transmitting speaker and receiving microphone towards each other and ensure there is nothing obstructing the line of sight.