Création d'une forme d'onde de type modulation de phase.

Espace de nom : tsd::telecom

Prototype

sptr<FormeOnde> forme_onde_psk(unsigned int M, const SpecFiltreMiseEnForme &filtre=nrz())

Paramètres

MNombre de bits / symbole.
filtreFiltre de mise en forme (par défaut : NRZ)

Retourne

Pointeur vers une forme d'onde abstraite (FormeOnde).

Description

Création d'une forme d'onde M-PSK. Le résultat peut être utilisé pour créer un modulateur (modulateur_création()) ou un démodulateur (démodulateur_création()).

Avertissement
\(M\) doit être une puissance de 2.


Exemple 1 : tracé de quelques constellations PSK


  Figures f;
  pour(auto M: {2, 4, 8, 16})
  {
    soit w = forme_onde_psk(M);
    soit constel = w->constellation();
    f.subplot().plot_iq(constel, "o", w->desc());
  }

Exemples de formes d'ondes PSK : BPSK, QPSK, 8PSK, 16PSK :

Exemple 2 : Taux d'erreur binaires théoriques


  soit w2 = forme_onde_psk(2),
       w4 = forme_onde_psk(4),
       w8 = forme_onde_psk(8);

  soit EbN0 = linspace(-2, 15, 20);
  soit ber2  = w2->ber(EbN0),
       ber4  = w4->ber(EbN0),
       ber8  = w8->ber(EbN0);

  Figure f;
  f.plot(EbN0, ber2, "-ob", "bpsk");
  f.plot(EbN0, ber4, "-g",  "qpsk");
  f.plot(EbN0, ber8, "-rs", "8psk");
  f.titres("BER théorique PSK", "Eb/N0", "Taux d'erreur binaire");
  f.axes().def_echelle("lin", "log");

Taux d'erreur binaire :

Voir aussi

forme_onde_qam(), forme_onde_qpsk()