# LibreCMC, Signals, Modulation

Studying Wi-Fi is rather fascinating because it is involves radio signals, signal modulation, and digital communication, which are all also interesting subjects. LibreCMC router firmware gives you a nice display containing much useful and interesting signal and modulation info for each associated station. Here is the whole page:

Here is the zoom in on the associated stations:

The second station is more interesting, so for educational purposes we explain each part:

• wlan0 – the wireless interface receiving the signal from the associated station
• ASI Downstairs – the name of the wireless network it is associated with
• 50:3E:AA:B4:9D:C9 – MAC address of the associated host
• 2001:470:b:469:c6a – The IPv6 address of the associated host
• -40 / -95 dBm – the signal to noise ratio. Signal is the level of useful signal being received (more precisely, dBm, which is the voltage level as a logarithmic comparison to the millivolt), and noise is the level of background signal being received (e.g., thermal noise, interference from other stations, and such like). We need the SNR to be as high as possible. In other words, the greater the difference in the signal value to the noise value, the more clear the communications are and ultimately the more data we are going to be able to move. Since we are dealing in negative values, we must remember that -40 is higher than -95. Since we are dealing with dBm values (already a ratio) we can simply take a difference to get an SNR of 35, which is a very good value.
• 144.4 Mbit/s – our maximum data transfer rate, i.e., max number of bits the current modulation mode will let us move per second. This would more logically be placed at the end.
• 20 Mhz – our bandwidth, i.e., the amount of frequency space we have decided to use for our communications
• MCS 15 – This is a abbreviated way of referring to the modulation being used, by referring to a row in the Modulation and Coding Index table:

Modulation refers to the scheme you use for changing your signal (more precisely, your carrier signal) to store information in it. You need to somehow change your signal in real time, to represent the ones and zeros you are trying to transmit across the air. There are quite a few ways to do this. In amplitude modulation, you raise and lower the strength of your signal slightly. In phase modulation, you modify the timing of your signal (rotating the phase).

MCS 15 refers to (somewhat confusingly) 3 modulation schemes, evidently 64-QAM 5/6 in this case. QAM refers to Quadrature Amplitude Modulation. Read the Wikipedia page for the full (and interesting) details, but basically it is a combination of amplitude modulation and phase modulation, using two signals that have been merged into one. The 64 part means the modulation scheme can communicate one of 64 different codes with its allowed combinations of amplitude and phase. The higher this number, the more data you can stuff into one modulation of your transmission, which is for the most part a very good thing. (Errors are, however, more likely when transmitting with denser codes.)

The 5/6 part, if I remember correctly is referring to the error correction. You use up some of your data bits for error correction. In this case, five of your six bit are meaningful data while one bit is for error correction.

You router is going to try to use the fastest (i.e., most dense) modulation scheme that it can, but if your SNR becomes too low, the faster modulation schemes will break down, and it will how to “shift down” to a slower modulation. This is why you (ideally) want your AP and your station radios to be using good high gain antennas, and to be kept close together, so SNR is kept high.

• Short GI – lets us know that we are using a short guard interval value (400 ns) rather than the longer 800 ns value. Guard interval is how long we wait in between sending our codes. Ideally you want the guard interval to be as small as possible, so you have more time for sending data. However, owing to the complexities of radio communication, it is difficult to keep the timing synchronized. With a short guard interval, signals are more likely to overlap each other, causing errors in the code stream.

The first line we read is the values for the receive channel, the next line is the values for the transmit channel.