Convolution (FPScript)

21.09.2021

Calcule le produit de convolution de deux signaux.

Syntaxe

Convolution(Signal1, Signal2 [ , Mode = CONVOLUTION_NONCIRCULAR ])

 

La syntaxe de la fonction Convolution se compose des éléments suivants :

Section

Description

Signal1

Le signal qui est convolué avec le second signal.

Les structures de données autorisées sont Séries de données, Matrice de données, Signal et Série de signaux. Tous les types de données numériques sont autorisés.

Les valeurs invalides ne sont pas autorisées dans cet argument.

Des restrictions supplémentaires s'appliquent à la composante X.Les valeurs doivent avoir un espacement positif constant.

Pour les types de données complexes, un nombre est formé.

Si l'argument est une liste, alors la fonction est exécutée pour chaque élément de la liste et le résultat est également une liste.

Signal2

Le signal qui est convolué avec le premier signal.

Les structures de données autorisées sont Séries de données, Matrice de données, Signal et Série de signaux. Tous les types de données numériques sont autorisés.

Les valeurs invalides ne sont pas autorisées dans cet argument.

Des restrictions supplémentaires s'appliquent à la composante X.Les valeurs doivent avoir un espacement positif constant.

Pour les types de données complexes, un nombre est formé.

Si l'argument est une liste, alors la fonction est exécutée pour chaque élément de la liste et le résultat est également une liste.

Mode

Précise le mode de calcul.

L'argument Mode peut avoir les valeurs suivantes :

Constante

Signification

CONVOLUTION_CIRCULAR

Produit de convolution circulaire pour les signaux périodiques.

CONVOLUTION_NONCIRCULAR

Produit de convolution non circulaire pour les signaux transitoires.

Si l'argument est une liste, alors son premier élément est pris. S'il s'agit à nouveau d'une liste, le processus est répété.

Si l'argument n'est pas spécifié, il est défini à la valeur par défaut CONVOLUTION_NONCIRCULAR .

Remarques

Le résultat est toujours du type de données Virgule flottante de 64 bits.

L'unité du résultat est la même que le produit des unités de Signal1 et Signal2. Le produit de convolution pour deux séries de données s et g est défini comme suit :

et N, le nombre de valeurs dans s et g.

Le calcul s'effectue dans le domaine fréquentiel dans tous les cas selon la formule suivante :

IRFFTn(*FFTn(Signal1) * FFTn(Signal2 ))

Pour les arguments bidimensionnels, le calcul est effectué colonne par colonne, et le résultat est également bidimensionnel. Si l'un des arguments a une composante X, cela s'applique également au résultat. Cette composante contient alors le décalage temporel τ du produit de convolution. Note : Si l'autre argument n'a pas de composante X, le même échantillonnage est utilisé pour cet argument que celui utilisé pour l'argument avec la composante X.

Pour la convolution circulaire, le calcul est effectué en supposant qu'une ou plusieurs périodes complètes des signaux à analyser sont stockées dans Signal1 et Signal2. Dans ce cas, le nombre de lignes de Signal1 et Signal2 doit correspondre.

La convolution non circulaire est basée sur l'hypothèse que les signaux en dehors des sections couvertes par les données Signal1 et Signal2 ont une valeur nulle. Un nombre suffisant de zéros est donc ajouté aux ensembles de données avant la transformation dans le domaine des fréquences. Le produit de la convolution est calculé pour toutes les valeurs τ pour lesquelles la convolution peut avoir une valeur non égale à zéro, c'est-à-dire pour lesquelles il y a toujours un chevauchement des deux signaux.

L'illustration suivante montre la convolution d'un signal cosinus wobulé avec la réponse impulsionnelle d'un filtre passe-bas pour toutes les valeurs τpositives :

Disponible dans

FlexPro Basic, Professional, Developer Suite

Exemples

Dim Signal1 = Signal(0.5 * Square(2. * PI * 1.0 * (1000, 0.0, 0.001), 0.5) + 0.5, (1000, 0.0, 0.001))
Dim Signal2 = Signal(0.5 * Square(2. * PI * 1.0 * ((1000, 0.0, 0.001) + 0.5), 0.5) + 0.5, (1000, 0.0, 0.001))
Convolution(Signal1, Signal2, CONVOLUTION_NONCIRCULAR)
 

Produit de convolution non circulaire de deux signaux rectangulaires.

Voir aussi

Fonction CCF

Objet d'analyse Convolution

Littérature

[1] "Oppenheim, A. V. and Schafer, R. W.": "Discrete-Time Signal Processing, 2nd Edition", page 570 - 73. "Prentice Hall, New Jersey",1999.ISBN 0-13-754920-2.

[2] "H. D. Lüke": "Signalübertragung (Signal Transmission)", page 79 - 81. "Springer-Verlag Berlin, Heidelberg, New York",1985.ISBN 3-540-15526-0.

Partager l’article ou envoyer par mail :

Vous serez probablement intéressé par les articles suivants :