Pulse shaping filter for FSK

After a BPSK modulation we have the upsampling and the pulse shaping filter. But for a FSK, do we have upsampling and pulse shaping filter, or just the pulse shaping filter?

• In a modern implementation you would create the FSK signal in discrete time at a low intermediate frequency, then upconvert to RF in the analog front end.
– MBaz
Nov 8, 2020 at 17:31

Most likely yes. FSK is already generated using many samples per symbol. Look at Matlab fskmod function.

Pulse shaping with FSK is routinely done. We see this most often in pulse shaped variants of Minimum-Shift Keying (MSK) which is FSK with the frequency symbols spaced at minimum separation while maintaining orthogonality ($$\Delta f=1/(2T)$$, where $$T$$ is a symbol period and $$\Delta F$$ is the frequency separation of the tones used).

Straight MSK has no pulse shaping, and for this the frequency versus time represents rectangular pulses as the frequency transitions from one to the other. Gaussian-MSK (GMSK) is a very popular waveform and good example of pulse shaping with FSK. Here the frequencies are instead formed as Gaussian shaped pulses. The symbols are first represented as rectangular pulses which are then passed through a FIR filter with Gaussian shaped coefficients with a time duration in the filter of one symbol period (or multiple periods for partial response signaling where intentional ISI is introduced to improve spectral efficiency as further described below). The output of the filter represents frequency versus time and those samples can be used as the Frequency Control Word to an Numerically Controlled Oscillator to complete a GMSK modulator.

Further such an implementation is very convenient for partial-response signaling with GMSK (as is often done) where the spacing between symbols is less than a symbol period thus increasing spectral efficiency (more data in the same bandwidth) at the expense of receiver complexity due to the intentional inter-symbol interference created; since the Gaussian filter and therefore the impulse response of each symbol is one symbol long. Simply space the unit samples representing data at the input to the Gaussian Filter closer together and the convolution property of the filter will properly combine the partial response signals.

Of related interest, very conveniently, such a Gaussian filter can be implemented with no multipliers, as can the NCO, resulting in a very efficient modulator solution when multiplier resources are a premium. For more details on this see the following two posts:

Gaussian FIR filter with no multipliers?

Simplest All Digital GMSK Modulator

In BPSK, you need one pulse shaping function. On the other hand, M-FSK needs M pulse shaping functions corresponding to each symbol. Let $$g(t)$$ is the pulse shaping function for BPSK. In M-FSK, you can say that $$g_m(t)=g(t)cos(2\pi f_H m t)$$. Here,$$g_m(t)$$ is the pulse shaping function corresponding to the m-th FSK symbol and $$f_H$$ is the frequency hop between the two adjacent symbols in frequency.