Modem-based 3G signal analysis

Wireless broadband signal quality measurements and analysis are performed on two locations using a wireless modem and SMSlib. [[-KM-8362-]]


Wireless broadband modems are a popular way of connecting to the Internet. However, getting good signal coverage is not always a given. This is especially the case in indoor environments where most of the Internet usage takes place.

Without special equipment, or high-resolution data from the network operator, an individual cannot easily work out the expected link quality a priori. This can, for example, be a problem in the following situation:

  • Checking internet connectivity in a house to be purchased

    • When providing information about the connectivity, internet service providers normally only check ADSL (2+) capability to the local exchange, but not actual premises. Only when it is attempted to establish the connection on the ground it may be discovered that the premises are on a pair-gain system, thus allowing only an ADSL1 connection (if one is lucky, not guaranteed). This still unfortunately happens in Australia, 15 km away from a city centre.

    • In this case it is critical to establish that the premises have good wireless coverage, not just by visual observations (e.g. distance from a tower, obstacles), but by signal measurements.
In this knol:

  • We show it is possible to use the SMSLib library (with some extensions) as as a framework to interact with a wireless modem and gather signal coverage information.

  • We interpret the meaning of the measurement parameters provided by the modem.

  • We present and analyse measurements at two locations, and draw some basic conclusions about coverage parameter and Internet speeds.

SMSlib is a programmer's library for sending and receiving SMS messages by using a wireless modem connected to a computer. [1] Using SMSlib to gather signal quality information does not require using licenced software or special equipment. SMSlib is a powerful, versatile and well developed software package.


Physical setup used for measurements is shown in Fig. 1. NetBeans IDE is used to run the code. This is a matter of current personal choice -- any other IDE, including Eclipse, will work. Results are printed to the IDE output console, as well as to an Excel spreadsheet.

Figure 1
: Measurement setup. White USB stick is the modem used in the measurement.

The actual code used for the measurements presented here has been submitted to be considered for inclusion in future versions. [2] [3] [4] Other ways of interacting with the modem can be used to implement the general method discussed here.

Measurement parameters

Three parameters are used to measure signal quality: Received Signal Strength Indicator (RSSI), Signal-to-Noise Ratio (SNR), and Bit Error Rate (BER). Figure 2 shows how these parameters are related to different stages of signal processing. [5]

Figure 2: Simple wireless receiver block diagram

Received Signal Strength Indicator (RSSI)

RSSI provides a simple indication of signal fading and path loss, and provides the information on how strong the signal is at the receiver front end. If the signal strength is above a certain level, the communication link can be considered to be good. RSSI information is used by the base station for power control, hand-offs, and roaming. In the WCDMA wireless system, the base station uses dedicated pilot channel to monitor RSSI.

RSSI are quick measurements that are performed by averaging power readings. This measurement is not an accurate indicator as, in addition to the signal power, it also includes noise, interference, and other impairments.

Bit Error Rate (BER)

BER is the most useful parameter as it links the analogue properties of the physical world to the digital communication quality and our perception of it. However, the whole demodulation process needs to be completed in order to obtain this parameter, which may not be feasible for real-time feedback. 

Signal-to-Noise Ratio (SNR)

SNR and related parameters, such as:

Signal-to-Interference Ratio (SIR)
Signal-to-Interference-and-Noise Ratio (SINR)

are used at various stages of demodulation to gauge the quality of communication. These parameters split the useful power level and the noise/interference power level, which is not done in RSSI.

Modem specifics

All modem manufacturers are required to implement ETSI and 3GPP specifications covering, among many other aspects, the commands which the modem supports. ETSI is the European Telecommunications Standards Institute (, and 3GPP is the 3G Partnership Project ( They are both standardisation bodies for wireless cellular telecommunications.

There are several problems with the way in which the commands are implemented:

  • Manufacturers may nominally support a particular command, but choose to have the modem not provide any useful information in response to that command.
    • An example is the CSQ command [6] issued to Huawei E160X USB modem. In response to this command the modem is supposed to return the RSSI and BER values. While the RSSI value is returned, "99" is always return as the BER. This code means "not known or not detectable".

  • Manufacturers do not provide any information on how the responses to commands are calculated.
    • For example, we do not know how the number returned in response to the CSQ/RSSI command is calculated:
      • Where exactly in the circuit is it calculated?
      • How many averages are taken?

  • Manufacturers will implement other commands which are not specified in the standards, but which are very useful for testing and development.
    • One example is the CSNR command, which returns information about the SNR/SIR/SINR
    • The problem again is the lack of documentation. We do not know how the numbers are measured and calculated, and therefore we do not know what they mean.

Sample output

When the measurement code is run, an Excel file is produced with the measurement information recorded. Figure 3 shows sample output.

Figure 3: Sample output from measurement code

Meaning of the output is as follows:
  • Set 3G-ONLY mode: OK
    • The modem is instructed to only connect to a 3G network. "OK" is the response from the modem indicating success.
      • If the modem detects more than one network, it will connect to the one with the strongest detected signal.
      • We are interested in characterising the 3G network only, so therefore we have to ensure that the modem does not connect to a 2G network. This is especially important in areas with bad 3G coverage.
  • Range (RSSI),(BER): (0-31,99),(99)
    • (0-31,99) means that
      • RSSI response from the modem is encoded as one of numbers from 0 to 31, or as number 99. These numbers are converted to a dBm power level as per [6] (Section 8.5, p63).
    • (99) means that
      • BER responses from the modem will always be given as number 99, which means "not known or not detectable", again as per [6] (Section 8.5, p63).
  • Range (SNR-A),(SNR-B): (-145--60),(-32-0)
    • In response to the CSNR command, the modem responds with two numbers. Due to not knowing exactly how these numbers are measured and calculated (see Modem specifics), they have been termed SNR-A and SNR-B.
    • (-145--60) means that
      • SNR-A response from the modem will be a number from -145 to -60
    • (-32-0) means that:
      • SNR-B response from the modem will be a number from -32 to 0
  • Measurement column headers mean
    • Location  text label describing the measurement location
    • Stamp  time and date of the measurement
      • Measurement period can be set in the code as the number of minutes between two measurements. In this example a measurement period of 2 minutes is used.
      • Format is YYYY-MM-DD-HH-MM
    • Operator ⇀ network to which the modem is currently connected
      • Value between the quotation marks is the relevant one. The modem used will sometimes return a text string (e.g. "YESOPTUS"), and sometimes it will return the numerical code of the operator (e.g. "50502").
    • In 3G? ⇀ confirms that the modem is connected to a 3G network
      • Even though this preference is indicated at the start of the measurement process, it is good to check this at each measurement. If the signal level is low, the modem may connect back to a 2G network.
    • RSSI (dBm) ⇀ RSSI code returned from the modem and converted to dBm
    • SNR-A ⇀SNR-A value returned from the modem
      • Note that, unlike in the RSSI case, we defer explaining the meaning of SNR-A for later, subject to further investigation. This due to not knowing what the modem is exactly measuring in this case.
    • SNR-B ⇀ SNR-B value returned from the modem
      • Note that, unlike in the RSSI case, we defer explaining the meaning of SNR-B for later, subject to further investigation. This is due to not knowing what the modem is exactly measuring in this case.
  • Set ANY mode: OK
    • The modem is connected to switch to its own algorithm of determining which network to connect to. "OK" is the response from the modem indicating success in setting this preference.


Due to the current problems in interpreting the absolute meaning of some of the modem responses, measurements at two different locations were taken. Conclusions are drawn based on relative comparison between the two sets of data.

The measurements are taken in two locations:

    • This is a known good location, some 200 m from the cell tower. The measurement is done from inside a nearby building, in a setup that can be taken as a typical working setup.
    • The measurement file is available from here.
    • Summary:
      • Measurements started: 10 May 2010 at 08:35
      • Measurements stopped: 10 May 2010 at 16:35
      • Measurement interval: 1 minute (481 measurements)
      • Number of dropouts = 0
      • Average RSSI = -78.78 dBm (Min RSSI = -85 dBm, Max RSSI = -75 dBm)
      • Average SNR-A = -80.32 dBm (Min SNR-A = -87 dBm, Max SNR-A = -76 dBm)
      • Average SNR-B = -4.61 (Min SNR-B = -11, Max SNR-B = -2)

  • HOUSE-1
    • This is the problematic location where we are trying to ascertain the signal quality.
    • Measurement file is available from here.
    • Summary
      • Measurement started: 9 May 2010 at 14:30
      • Measurement stopped: 9 May 2010 at 22:30
      • Measurement interval = 1 minute (481 measurements)
      • Number of dropouts = 3
      • Average RSSI = -108.48 dBm (Min RSSI = -113 dBm, Max RSSI = -101 dBm)
      • Average SNR-A = -110.3 dBm (Min SNR-A = -145 dBm, Max SNR-A = -103 dBm)
      • Average SNR-B = -15.38 (Min SNR-B = -32, Max SNR-B = -9)

Interpreting SNR-A and SNR-B

Problems with interpreting the modem response to the CSNR command have been outlined above. Given the above results, however, the following guess regarding the meaning of the parameters can be proposed:

SNR-A is the useful signal level in dBm, and SNR-B shows how many dB's is this signal level below the noise floor. The signal is below the noise floor (this is presumably what the fact that SNR-B is negative means) since this is a wide-band 3G signal.

Note that this is subject to further investigation.


  • Wireless broadband modems are a popular way of connecting to the Internet
  • Signal coverage however is not always satisfactory thus resulting in poor connections
  • Without specialised equipment, an individual cannot easily ascertain the expected signal quality in a particular location
    • (Marketing) Information provided by the network operators is usually not of sufficiently good precision, especially for indoor locations
  • We have demonstrated that it is possible, with some extensions, to use the SMSlib library as a framework to interact with the modem and obtain signal coverage information
    • No special equipment or licenced software is required for this, and anybody can do it from any location
  • We have performed measurements at two locations, one reference and the other as the test location, and concluded:
    • In a typically good location an average RSSI of -78 dBm can be expected.
    • In a bad location, an average RSSI of -108 dBm can be expected.

Further work

Some of ideas for further work:

  • Perform further investigation on (the units of) SNR-A and SNR-B based on:
    • link budget calculations and predictions
    • comparisons with results obtained for a 2G network
  • Perform more measurements at various locations to establish more general trends
  • Introduce other data generalisation parameters, such as:
    • drop-out likelihood
    • min/max/average for various types of day (working day, weekend, public holiday, event day), and at different times of day (peak times, night time, etc)

Specific future actions:

  • Get exact distance and angle from the tower to the good signal position. Even though the tower is close, I might be getting a poor signal due to the tower antenna angle tilt.
  • Due to the power transmit being adjusted in CDMA systems, there might be a difference in the uplink and downlink power levels. This would result in the case of the tower being able to 'hear' the modem clearly, and thus reducing its output power. This would then result in the modem not getting a sufficiently strong signal. Investigate this.
  • Obtain the Cell ID of the tower in question were the signal reception is poor. The modem might be continuously switching between two towers. Try and work out the tower latitude and longitude from Cell ID to establish physical distance to the tower.
  • Obscure the modem with covers and/or a mesh. This would vary the signal level received and thus confirm the code logic. A properly positioned wire mesh could eliminate some of the interference.


Results presented here would not have eventuated had it not been for the generous help of Thanasis Delenikas, the developer of SMSLib, and Nicholas Romero ([7] and private communication).Thank you!


  1. SMSLib Project Page
  2. SMSLib Issue 348
  3. SMSLib Issue 349
  4. SMSLib Issue 360
  5. Huseyin Arslan, "Adaptation Techniques and Enabling Parameter Estimation Algorithms for Wireless Communication Systems, in "Adaptive Signal Processing in Wireless Communications", edited by Mohamed Ibnkahla, CRC Press, 2008.
  6. ETSI TS 100 916 v7.8.0 (3GPP TS 07.07 v7.8.0), "Digital cellular telecommunications system (Phase 2+); AT Command set for GSM Mobile Equipment (ME)",
  7. SMSLib Mail Archive


Comments are moderated, and will not be visible until one of the authors of this knol approves.

Article rating:
Your rating:


Activity for this knol

This week: