Connectez-vous via MCP →

Entrez le calcul

Formule

Publicité

Résultats

Convolution circulaire

31, 31, 28

Première séquence 1,2,3
Deuxième séquence 4,5,6
Valeur maximale 31
Valeur minimale 28

À 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.

Publicité
Deux séquences disposées sur des cercles alignant les échantillons pour la convolution circulaire
La convolution circulaire enroule l'indice avec un modulo N, alignant les échantillons sur un anneau.

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.

Grille étape par étape montrant la multiplication et la somme échantillon par échantillon pour la convolution circulaire
Chaque sortie \(y[i]\) est une somme de produits d'échantillons alignés, calculée avec une indexation circulaire.

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.

Dernière mise à jour: