# Spectrum of FSK signal

I have implemented a simple V.23-like FSK modem in C here.

The peculiarity of the chosen modulation is such that 0's and 1's are sent as tones of two different frequencies (2100 Hz and 1300 Hz respectively) and the duration of each symbol is 1/1200th of a second, which is between one and two full periods of the symbol tone frequency.

The band-pass filter that I used in the receiver is from about 875 Hz to about 2350 Hz. This range was determined empirically.

The question is, how do you calculate this frequency range for a signal like that from the tone frequencies and symbol duration?

EDIT: A similarity with amplitude modulation has been suggested, where the modulated signal falls into the band from Fcarrier - Message Bandwidth to Fcarrier + Message Bandwidth Hz.

If I try to apply this logic directly to my case, then I should expect the bandwidth of my FSK signal to be the union of:

F1 - bit rate to F1 + bit rate
F0 - bit rate to F0 + bit rate

Or, if I plug in the numbers, the union of:

1300-1200=100 to 1300+1200=2500
2100-1200=900 to 2100+1200=3300

Or, simply, from 100 to 3300 Hz.

If I look at the spectrum of my FSK signal, however, it looks like it's roughly contained in the band from 2100-1200=900 to 1300+1200=2500 Hz instead of from 1300-1200=100 to 2100+1200=3300 Hz. Can this empirical result be explained and proven?

EDIT2: Here's the spectrum as I'm seeing it in Audacity: • -1 The calculation of the spectrum of a frequency-modulated signal has been well-studied: searching for "FSK spectrum" on Google throws up over 700,000 hits, many tutorial in nature. As even the beginning sentences of most of the hits on the first page say, the calculation requires quite a bit of work. The final answer depends a lot on details that you do not provide in your description, such as, is the FSK signal continuous-phase, what is the transfer function of the bandpass filter, etc. Yes, someone could read your C code and figure out the details, but why should we bother? – Dilip Sarwate Jul 4 '12 at 12:23
• @DilipSarwate You could ask, if you're interested. And if you are, the phase is continuous. The filter is FIR, 1 for the frequencies in the pass band, 0 elsewhere. The reason why I'm asking is because this is a special case and there's probably a relatively simple logic leading to the answer, not requiring to understand the general case and then specialize it. Could you provide a relevant link other than just pointing at Google? I can see a lot of related stuff there too. – Alexey Frunze Jul 4 '12 at 12:39
• You have an FIR filter that gives you a brick-wall frequency response, passing all frequencies between 875 Hz and 2350 Hz with unit gain and blocking all other frequencies? Run as quickly as you can to the nearest Patent Office and file your patent application! – Dilip Sarwate Jul 4 '12 at 12:44
• @DilipSarwate You're not being constructive. Pedantic, sure. – Alexey Frunze Jul 4 '12 at 12:52
• If I get your question right, you'd like to determine the signal bandwidth before the bandpass filter anyway. Otherwise the answer simply is "825 Hz to about 2350 Hz" – Deve Jul 4 '12 at 12:57