Creation of a FSK waveform.

Namespace: dsp::telecom

Prototype

sptr<WaveForm> waveform_fsk(unsigned int M=2, float index=0.4, const ShapingFilterSpec &filter=nrz())

Parameters

MNumber of possible values for each symbol.
indexModulation index.
filtreShaping filter.

Description

FSK is for Frequency Shift Keying. The main parameter of this modulation is the modulation index, which is the ratio between the maximal excursion (that is, twice the deviation) and the symbol rate: \[ h = \frac{2 \Delta f}{f_{symb}} \]

the instantaneous frequency varying between \(f_c - \Delta f\) and \(f_c + \Delta f\).

Example


  // 2-FSK, indice de modulation = 4
  soit w = forme_onde_fsk(2, 4);

  // 16 bits aléatoires
  soit bs = randstream(16);

  // Fréquence d'échantillonnage  = 10 kHz
  // Fréquence intermédiaire      = 500 Hz
  // Fréquence symbole            = 0.1 kHz
  // -> Déviation = fsymb * h / 2 = 200 Hz
  soit mod = modulateur_création({w, 10e3, 500, 0.1e3});

  soit x = mod->step(bs);

  Figures f;
  f.subplot().plot(bs.array(), "hbo", "Train binaire");
  f.subplot().plot(real(x), "", "Modulation FSK");
  f.subplot().plot_psd(x, 10e3);

See also

waveform_psk(), waveform_qam()