tampon_création

A partir d'un flux de données entrant, découpé en paquet de dimensions quelconques, produit un flux de données sous forme de paquets de dimension fixe.

Espace de nom : tsd

Prototype

sptr<Sink<T, entier>> tampon_création(entier N, fonction<void(const Vecteur<T> &)> callback)

Paramètres

Ndimension des paquets de sortie
callbackFonction utilisateur qui sera appelée à chaque fois qu'un nouveau paquet de dimension \(N\) est disponible.

Retourne

Un puit de donnée acceptant des vecteurs de type T.

Description

A partir d'un flux de données entrant, découpé en paquet de dimensions quelconques, ce bloc produit un flux de données sous forme de paquets de dimension fixe.

Exemple : préparation des paquets pour une FFT


  soit t = tampon_création<float>(512,
      // Définition de la callback
      [](const Vecf &x)
      {
        // Ici, on est certain d'avoir 512 échantillons
        assertion(x.rows() == 512);
        soit X = fft(x);
      });

  // 10000 échantillons à traiter
  Vecf x(10000);

  // x = ...

  // Traite les échantillons, par paquets de 512
  t->step(x);


Notez que 10000 n'étant pas un multiple de 512, les derniers échantillons ne sont pas traités (ils le seront si la méthode t->step()) est appelée à nouveau avec d'autres échantillons).