I want to send signal that compound from 16 different frequency over GSM.
The problem is the GSM network is very noisy and I have only 400-3400 hz frequency available for use.
I try using fft algorithm for extracting the 16 frequencies but it can't handle the noise properly...
What is the best algorithm to go for my purpose? I need:
- being able to extract at least 16 different frequencies.
- being able to do it fast (I must analyse at least 150 samples of 8 frequencies per second , and the goal is
- do 450 samples of 16 frequencies per second
------- Added --------------------------
The goal is transport data over gsm (at 1200 bps minimum and the actual goal is 5200 bps), this mean that I need to modulate binary data over sound waves so it's will be transportable over gsm.
The idea is just use cellphone to transmit the data with dose encoded waves I created.
We have a lot of noise, we have 6 passes that each one add some noise (sound over trrs to cell phone, cell phone tocell tower , enter the gsm network, exit the gsm network, tower to cell phone , cell phone over trrs). so the end results on the outer side is noisy.
The Telephony operators add filters on the gsm network to reduce noise, this filters looks on anything that dousn't look like human voice and trim it off the signal.
the bandwidth is 400hz-3400hz only so small bandwidth.
Now there is 3 main digital encoding methods over analog. ASK, FSK, PSK. AFK is not usable here because of the noise I described in the gsm section. (the amplitude disrupt severely) PSK we have problems of sync and noise. FSK looks like the most suitable for the this purpose because of it's ability to handle noise properly.
Now we have the issue of the bit-rate. I want to use narrow fsk, so I will able to send at least a byte (8 bit) per sample (sample = the minimum samples we need to properly check which of the 8 frequencies exists in this part of the signal) The problems I have is I cant demodulate properly the fsk over the GSM in a proper rate.
So the question is what is the best algorithm for a noisy environment to check the existence/absents of specific frequency in a signal where the importent parameters are:
the smallest amount of sample required from the signal (the smallest it is = I can send more byte's in a second)
the best suitable for the noisy environment.
can handle with the most frequencies (if I can send 32bit - 32 frequencies with the algorithm it's better then an 8 bit.... + keep in mind that it's full duplex = we receive and transmit the same amount of bit (in 8 bit case we have 16 frequencies in the signal 8 belong to the sender and 8 to the receiver) from each direction so 32 bit actual mean is 32*2 frequencies on the signal where each side need only 32 bit (the sender read only the receiver frequencies and the receiver read only the sender frequencies).
What I did so far:
I check fft algorithm - didn't got me far...
looked into MUSIC algorithm
looked into the Goertzel algorithm.
There is probably a better algorithm to deal with this problem, hope some one here can point me to the correct direction