I have a quadrature (IQ - 0..255) data byte stream that I receive from an rtl-sdr dongle as IQIQIQIQ.....
That means that negative values are < 128 and positive values >= 128
I am attempting to decode a 2FSK signal:
To normalize the data I do the following and get a resulting complex number with values ranging between -1 and 1 ... (more or less)
Real = (I - 127.4) * 1/128
Imag = (Q - 127.4) * 1/128
The scope plot correspond to the data that I get from a CC1101 tranceiver with an Arduino: 00000000011101110100010001110111010001000111011101000100010001110100010001000111011101000
This is the parameters for the CC1101 (SmartRF Studio)
The project is for a USB receiver to receive and identify signals from pager buttons. Unfortunately the CC1101 only works well for about 60% of the pagers. That is why I want to use a RTL-SDR dongle and do my own demodulation.
GNURadio is great but it is a few hundered MB there is no minimal install ;-(
I would like to use the Goertzel algorithm to demodulate but it requires Real(float) input (not complex). If this is possible I could translate and compile the source to C or Delphi and create an executable that is maybe 1MB is size and a lot easier to deploy.
How do I prepare/use this data for the Goertzel algorithm? Here is the prototype of the Goertzel C# code posted in another thread, that I want to use.
float goertzel(int numSamples,int TARGET_FREQUENCY,int SAMPLING_RATE, float* data)
It requires the data as an array of float. float* data https://dsp.stackexchange.com/questions/23749/normalizing-the-magnitude-of-goertzel-filter-c
From reading the code I can see that it is not an array containing complex numbers (just an array of float) and I don't know how to get my IQ data into the format required by the Goertzel algorithm.
Finally my appologies and thanks to Marcus Müller (answered below) who spent a lot of time and effort to answer my original post in great detail, which had some incorrect, incomplete and confusing information, which I have now updated to be more complete.