Délais entier (décalage du signal) ou fractionnaire (basé sur la FFT).

Espace de nom : tsd::fourier

Prototype

Vecteur<T> délais(const Vecteur<T> &x, float τ)

Paramètres

xSignal à retarder ou avancer dans le temps.
τDélais à appliquer, en nombre d'échantillons (peut être positif ou négatif, et n'est pas forcément un nombre entier).

Retourne

Signal décalé dans le temps.

Description

Réalise un délais entier (décalage du signal) ou fractionnaire (basé sur la FFT) : \[ y_k = x_{k-\tau} \]

Le délais peut être positif (pour retarder le signal), ou négatif (pour avancer le signal).

Note
Si le délais passé en paramètre est un entier, un simple décalage est effectué. Sinon, le délais est appliqué dans le domaine fréquentiel (après avoir complété le signal d'entrée avec des zéros afin d'atténuer les effets de bords dus à la périodicité de la FFT) : \[ Y_n = X_n \cdot e^{\frac{-2\pi\mathbf{i}\tau \cdot n}{N}} \]


Exemple


  // Signal test : gaussienne
  soit x = siggauss(20);

  // Délais de 1 échantillons
  soit x1 = délais(x, 1),
  // Délais de 1.5 échantillons
       x2 = délais(x, 1.5),
  // Avance de 1  échantillons
       x3 = délais(x, -1);

  Figure f;
  f.plot(x,  "b-o", "x");
  f.plot(x1, "g-o", "x1 (+1)");
  f.plot(x2, "m-o", "x2 (+1,5)");
  f.plot(x3, "c-o", "x3 (-1)");