/ˌdʒiː ɛf ɛs ˈkeɪ/

n. "Gaussian-filtered continuous-phase FSK modulation for spectral containment in Bluetooth unlike squarewave MSK."

GFSK, short for Gaussian Frequency Shift Keying, applies Gaussian low-pass filtering (BT=0.5) to rectangular NRZ data before FSK modulation, smoothing frequency transitions to minimize spectral sidebands while maintaining constant envelope for nonlinear PA efficiency. Bluetooth Classic uses ±160kHz deviation at 1Mbps yielding 1MHz occupied BW, contrasting raw FSK's infinite tails—enables 79-channel FHSS packing within 2.4GHz ISM alongside WiFi.

Key characteristics of GFSK include: Gaussian Pre-Filtering (BT=0.3-0.5) smoothes NRZ edges reducing 99% BW from infinite; Continuous Phase avoids phase discontinuities unlike CPFSK/MSK; Constant Envelope enables Class-C/E PA unlike QAM; Modulation Index h=0.28-0.35 (Bluetooth) balances orthogonality vs bandwidth; Non-Coherent Demodulation FM discriminator vs MSK coherent sync.

Conceptual example of GFSK usage:

/* GFSK modulator BT=0.5 implementation */
#define BT     0.5f    // Gaussian BW*bit_time product
#define FDEV   160e3   // ±160kHz deviation (Bluetooth)
#define FSYM   1e6     // 1Mbps symbol rate

float gaussian_filter(float t, float bt) {
    // Gaussian pulse h(t) = exp(-(t*ln2/(2*sqrt(2)*bt*Ts))^2)
    float x = t * FSYM * log(2) / (2 * sqrt(2) * bt);
    return expf(-x*x);
}

void gfsk_modulate(float *samples, uint8_t *bits, int num_bits) {
    float phase = 0.0f;
    float freq_dev;
    
    for (int i = 0; i < num_bits; i++) {
        // NRZ → ±1, Gaussian filter
        float nrzi = (bits[i] == 1) ? 1.0f : -1.0f;
        freq_dev = FDEV * nrzi;
        
        // Integrate frequency → phase
        for (int j = 0; j < SAMPLES_PER_SYMBOL; j++) {
            phase += 2 * M_PI * freq_dev / FSYM;
            samples[j] = sinf(phase);
        }
    }
}

Conceptually, GFSK trades sharp spectral edges for smooth Gaussian rolloff—Bluetooth transmits 366μs packets per TDMA slot within AFH-selected channels, where FM limiters tolerate 10dB multipath unlike coherent QPSK. Spectral regrowth minimal at saturation enables 40dBm Class-E PAs; demodulators use zero-crossing discriminators tracking instantaneous frequency amid FHSS hops every 625μs.