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: