# Best Way to Extract Frequency from Signal [closed]

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:

1. being able to extract at least 16 different frequencies.
2. being able to do it fast (I must analyse at least 150 samples of 8 frequencies per second , and the goal is
3. do 450 samples of 16 frequencies per second

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.

Gsm problems:

1. 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.

2. 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.

3. 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:

1. the smallest amount of sample required from the signal (the smallest it is = I can send more byte's in a second)

2. the best suitable for the noisy environment.

3. 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:

1. I check fft algorithm - didn't got me far...

2. looked into MUSIC algorithm

3. 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

## closed as unclear what you're asking by Marcus Müller, Matt L., MBaz, lennon310, Stanley PawlukiewiczDec 21 '18 at 20:54

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

• Welcome to SE.SP! Do you know the frequencies you're looking for, so that it's just a presence / absence test? Or do you only know the number and need to find both the number and the frequencies? Please update your question with this info. – Peter K. Dec 20 '18 at 15:38
• @PeterK. I Know the frequencies I am looking for and it's just presence / absence test – dog scotter Dec 20 '18 at 15:40
• Are the frequencies from a constant set or each variable in value? Is the magnitude of each frequency signal a known constant value when present? At what rate can the presence/absence change? Is this rate constant? – hotpaw2 Dec 20 '18 at 18:36
• I think you need to have a look at how GSM compresses audio. I don't think you can really squeeze arbitrary content through it and get anything usable out of it. – JRE Dec 20 '18 at 20:39
• Hi dog scotter, yeah, it's a bit unclear what you're doing here. On one hand, you say you use GSM – which is a frequency hopping GMSK system, but on the other hand you say you transport data over that on 16 carriers. Something really makes no sense here. I think you could do yourself a big favor and describe your system and what you're trying to do much more extensively in your question! – Marcus Müller Dec 20 '18 at 21:01