Signal analysis tutorial (introduction)
First we did an introduction to Arduino, showing how to read and write an EEPROM.
Now therefore we will talk about signal analysis.
It usually starts like this: "Oh well... this is a interesting signal" xD The example I will show is the typical case of anyone who plays with signals, radio, etc... one day just by chance encounters "something" striking in his spectrogram, FFT or speaker and with time and inclination to investigate it. :-)
This day it fell to the ISM band LPD433, is a UHF band (433050-434790 MHz) designed for communication between integrated circuits over short distances and low power (1 - 10mW).
What we can find there?
Everything. Mainly amateurs (is a shared band) but in this band is allowed the use unlicensed devices that meet the LPD433 norm, such as for example: car keys, pagers, telemetry, etc.
To catch the signal, we must be ready at the right time or will need a program recording when the SQL opens (squelch)
But if we look for a particular signal without loss, we will need a good hard drive and record on raw continually until the signal appears, if it ever does.
In this case the signal was repetitive and constant (in fact it is a hassle) so it's easy to record it. Once we recorded it the next step is the signal analysis. I recommend the following software, which is very complete and advanced, but it may be difficult for begginers: Signals Analyzer
It is advisable to have a few differents programs, each one have its strengths.
Calm down, we will read the image from top to bottom, the first step is below, which is the audio file (wav file) open with the program. The signal is clear, so we can select it and extend it with the magnifying glass button.
In the second step, we can see the signal. It looks like a OOK repeated on identical blocks of data. Now we select one of the data blocks and click the copy button, which will create a new temporal file with the selected section. In the third step, if is a OOK signal, we can see in our spectrogram the signal details reducing the value of the FFT and dividing the size. The result... oh yes, it seem packets.
Now the last step, we apply a series of filters and we give a value to the payload, it seems to make sense, we shall see the detail of the analysis. And we will see the same, but in other software: "GoldWave".
Your mission is not so much signal analysis, but rather the sound file processing, from my point of view they are two software that are highly complementary. But as this case is very simple GoldWave could do the whole process. The process is much simpler; enlarge the signal with the mouse wheel and reverse the signal. Well done! :-D
Now we see a stream of ones and zeros, the first task is to split it in blocks using your intent and personal experience and try to find meaning in HEX, DEC, ASCII, ITA2, do bruteforce with XOR, etc.
If we split it in blocks of four or eight bits we will have one bit alone, this is good because it could be a parity bit. We can convert all blocks to hexadecimal, and good, we can say that is not text, it must be a header and a set of figures. Maybe will be a telemetry?
At this point it is logical to think that six zeros followed could well be a padding of the header, but then it would have very little room for data, so we can split into blocks of 8 bits and as header we can take the first two blocks and the rest as data padding with another block at the end of 8 bits.
Here we have something good, two possibilities:
1. Three numbers:
- Or two numbers:
As it is not clear what may be, at this point it's best to look for devices that work on 433Mhz and uses a structure similar to our capture. The result is clear, weather stations :-P
There is none of the models that appear on the Internet, but the structure seems always the same, the temperature tenfold in a field followed by relative humidity.
¿82 -> 8.2ºC in summer? ... In your dreams!. :-D
By the way, yes, I left a extra unused bit in the temperature field, I guess the negative temperature values will be put this bit value to 1. When we are in temperatures below zero i will update this entry. Be good guys. ;-)