À quoi sert ce calculateur
Le calculateur de convolution circulaire détermine la convolution circulaire (ou cyclique) de deux séquences à temps discret — une opération fondamentale en traitement numérique du signal (DSP). Contrairement à la convolution linéaire, la convolution circulaire « enroule » les séquences autour d'une période fixe N : c'est précisément ce qui se produit lorsqu'on multiplie les transformées de Fourier discrètes (TFD) de deux signaux avant de revenir dans le domaine temporel. Saisissez vos séquences et l'outil vous renvoie aussitôt la séquence de sortie obtenue, ainsi que ses valeurs maximale et minimale pour une analyse immédiate.
Les données à saisir
- Première séquence : votre signal d'entrée x, saisi sous forme de nombres séparés par des virgules (par exemple
1, 2, 3, 4). - Deuxième séquence : le second signal h, lui aussi séparé par des virgules (par exemple
1, 1, 1).
Si les deux séquences n'ont pas la même longueur, le calculateur complète la plus courte par des zéros jusqu'à atteindre N = la longueur de la plus longue. Les deux sont alors considérées comme périodiques, de période N.
La formule
La convolution circulaire se définit ainsi :
$$y[n] = \sum_{k=0}^{N-1} x[k] \cdot h\big[(n - k) \bmod N\big]$$
La différence essentielle avec la convolution linéaire tient à l'indice modulo N. Lorsque \((n - k)\) devient négatif, l'indice « repart » à la fin de la séquence au lieu de donner un zéro. C'est pourquoi le résultat comporte toujours exactement N échantillons — soit la même longueur que la plus longue entrée.
Exemple détaillé
Prenons x = [1, 2, 3, 4] et h = [1, 1, 1, 1] (toutes deux de longueur N = 4). Calculons chaque sortie :
- \(y[0] = 1\cdot 1 + 2\cdot 1 + 3\cdot 1 + 4\cdot 1 = 10\)
- \(y[1] = 1\cdot 1 + 2\cdot 1 + 3\cdot 1 + 4\cdot 1 = 10\)
- \(y[2] = 10\), \(y[3] = 10\)
Résultat : [10, 10, 10, 10], avec un maximum de 10 et un minimum de 10. Comme h ne contient que des 1, chaque sortie est égale à la somme de x — une vérification de cohérence bien pratique.
Questions fréquentes
En quoi est-ce différent de la convolution linéaire ? La convolution linéaire produit une séquence de longueur (len(x) + len(h) − 1), sans enroulement. La convolution circulaire conserve la longueur N et replie le débordement vers le début, ce qui correspond au filtrage fondé sur la TFD.
Et si mes séquences n'ont pas la même longueur ? La plus courte est complétée par des zéros pour atteindre la longueur N de la plus longue ; les deux sont ainsi alignées avant la convolution.
Puis-je utiliser des nombres négatifs ou décimaux ? Oui. Les entrées sont interprétées comme des nombres décimaux : des valeurs telles que -1.5, 0.25, 3 fonctionnent parfaitement.