Pourquoi la convolution circulaire est-elle utilisée dans DSP? Pourquoi pas la convolution linéaire?

8
  1. Pourquoi utilisons-nous la convolution circulaire dans DSP?

  2. Quelle est la principale raison solide de son utilisation dans le traitement numérique?

  3. Pourquoi le concept de convolution circulaire vient-il plus souvent que la convolution linéaire?

vishaln
la source
2
vous remarquerez que toutes vos réponses incluent une mention de la transformée de Fourier discrète qui est mise en œuvre le plus efficacement avec la FFT. la DFT étend par nature périodiquement les séquences de longueur finie qui lui sont transmises (ce qui est circulaire). la convolution circulaire est rarement le but . généralement la convolution linéaire est le but. mais en multipliant les DFTX[k] et H[k]ensemble, cela correspond à la convolution circulaire des deux séquences périodiquement étendues,x[n] et h[n]transmis aux DFT. le problème est alors en quelque sorte d'en faire une convolution linéaire.
robert bristow-johnson

Réponses:

8

Étant donné un système LTI à temps discret avec une réponse impulsionnelle h[n], on peut calculer sa réponse à n'importe quelle entrée x[n]par une somme de convolution :

(1)y[n]=x[n]h[n]=k=h[k]x[nk]

Sans autre précision, la définition ci-dessus concerne la convolution linéaire (convolution apériodique) entreh[n] et x[n], qui sont des séquences apériodiques en temps discret de longueur éventuellement infinie, sauf indication contraire. Ceci est différent d'une convolution circulaire qui est entre deux séquences périodiques de périodeNet calculé sur une seule période.

Vous pouvez calculer une convolution linéaire dans le domaine temporel par Eq.1, ou dans le domaine fréquentiel en utilisant la propriété DTFT (transformée de Fourier à temps discret) suivante:

(2)y[n]=x[n]h[n]Y(ejω)=X(ejω)H(ejω)

La DTFT est naturellement liée à la convolution linéaire, car elle traite des séquences apériodiques théoriquement existantes qui peuvent s'étendre de à reflété dans ses limites de la somme déterminante:

(3)X(ejω)=n=x[n]ejωn

Lorsque vous souhaitez effectuer un calcul à la main, en utilisant des expressions symboliques pour les signaux, telles que x[n]=anu[n] et h[n]=bnu[n], vous pouvez calculer les résultats dans les domaines temporel ou fréquentiel comme indiqué ci-dessus.

De plus, lorsque vous souhaitez calculer le même résultat à l'aide d'un ordinateur, vous pouvez utiliser l'approche du domaine temporel basée sur une récursivité LCCDE (pour les systèmes IIR) ou une somme de convolution finie directe (pour les systèmes FIR), MAIS l'approche du domaine fréquentiel a gagné '' t travailler avec DTFT; car c'est principalement un outil utilisé pour développer les mathématiques de la théorie des signaux et des systèmes, et il ne convient pas aux implémentations informatiques numériques, car sa variableωest un vrai nombre continu .

Ce qui est utilisé à la place est la DFT (transformée de Fourier discrète) définie comme

(4)X[k]=X(ejω)|ω=2πkN

k=0,1,...,N1 et Nest la longueur de la DFT, qui est alors appelée DFT à N pointsx[n].

L'Eq.4 implique que la séquence DFT X[k] est obtenu comme les échantillons uniformes du DTFT X(ejω), qui est une fonction périodique, d'où DFT X[k] est également périodique, mais nous ne considérons que sa première période à partir de k=0 à N1.

Étant donné que les séquences DFT sont intrinsèquement périodiques, leurs convolutions seront également périodiques (circulaires). Par conséquent, alors qu'une convolution linéaire entre les signaux apériodiquesx[n] et y[n] est impliqué par l'expression I-DTFT

y[n]=IDTFT{X(ejω)H(ejω)}
à la place, une convolution circulaire entre deux séquences périodiques est impliquée par l'expression I-DFT
y~[n]=IDFT{X[k]H[k]}

Donc, étant donné que nous voulons calculer une convolution linéaire entre deux séquences apériodiques x[n] et h[n] de longueurs Lx et Lh respectivement, en utilisant le domaine de fréquence par leur N points DFT, X[k] et H[k], nous devons en fait calculer une convolution circulaire entre les extensions périodiques des signaux x~[n] et h~[n] des périodes N.

La clé est de choisir une longueur appropriée Ndes DFT, qui doivent être suffisamment longues pour éviter tout repliement de domaine temporel de la séquencey~[n], retourné par le calcul IDFT:

(5)y~[n]=r=y[nrN]

y[n] est le résultat de la convolution linéaire qui serait retournée par la DTFT inverse théorique et y~[n] est le résultat périodique de la convolution périodique (circulaire) impliquée par la DFT inverse.

Notez que si l'un des signaux est de longueur infinie, il n'est PAS possible de calculer leur convolution linéaire en utilisant l'approche DFT, commeNirait à l'infini, pratiquement impossible. La mise en œuvre d'une convolution linéaire via DFT comprend alors les étapes suivantes:

  1. Choisissez N selon les critères suivants:

    NLx+Lh1
    ce qui garantit une reconstruction sans alias du signal inverse y[n] de son DFT Y[k] de la convolution circulaire calculée via X[k]H[k].

  2. Calculer les DFT à N points X[k] et H[k] de x[n] et h[n].

  3. Calculer Y[k]=X[k]H[k]

  4. Calculer la DFT inverse du point N de Y[k] pour produire la sortie y[n]

Fat32
la source
2

Répondre à vos questions:

  1. Pourquoi utilisons-nous la convolution circulaire dans DSP?

Dans le DSP, nous traitons normalement des séquences discrètes de longueur finie (même si le signal étudié est infini, nous ne pouvons en analyser qu'une partie finie à la fois). Quand il s'agit de traiter un signal, la façon de le traiter doit être implémentable dans un périphérique logique discret (à savoir un périphérique qui ne peut pas stocker de valeurs continues car ces valeurs sont infinies et il a une quantité limitée de mémoire, de stockage, etc.). Cela explique pourquoi la transformée de Fourier à temps discret (DTFT) qui transforme une séquence de temps discrète en une séquence de fréquence continue ne peut pas être implémentée dans le matériel. La convolution linéaire dans le temps équivaut à la multiplication de 2 séquences DTFT, mais comme DTFT ne peut pas être implémenté dans le matériel, ce n'est pas le moyen d'obtenir une convolution linéaire.La transformée de Fourier discrète (DFT), d'autre part, transforme une séquence temporelle discrète en une séquence de fréquence discrète, ce qui permet de l'implémenter dans le matériel. Pourtant, la multiplication de 2 séquences DFT équivaut à une convolution circulaire en principe(la convolution linéaire peut également être obtenue si les séquences temporelles sont préalablement remplies avec suffisamment de zéros, voir l'explication ci-dessous). La raison pour laquelle la multiplication de 2 séquences DFT est équivalente à une convolution circulaire et non linéaire vient du fait que la DFT pour une séquence de durée finie est équivalente à la série de Fourier discrète (DFS) de cette même séquence de longueur finie périodiquement étendue (concaténation de la séquence de longueur de temps fini infiniment dans l'axe du temps) prise sur une période. Le DFS est également périodique dans le domaine fréquentiel, donc la convolution linéaire ne s'y applique pas (voir 8.2.5 et 8.6.5 de la 3ème édition du traitement du signal temporel discret d'Oppenheim)

  1. Quelle est la principale raison solide de son utilisation dans le traitement numérique?

Il est obtenu par multiplication DFT et DFT est facilement implémenté dans le matériel. De plus, des algorithmes très efficaces tels que la FFT existent pour calculer la DFT

  1. Pourquoi le concept de convolution circulaire vient-il plus souvent que la convolution linéaire?

Cela dépend de l'application. La convolution circulaire peut également produire la convolution linéaire. Par exemple, disons que nous travaillons avec le signal A de longueur N et le signal B également de longueur N (cela peut également être fait pour différentes longueurs). La convolution circulaire sera de longueur N. Afin d'obtenir une convolution linéaire, A et B doivent être remplis de zéros jusqu'à ce qu'ils atteignent une longueur d'au moins 2 * N - 1. Ensuite, appliquez la DFT sur les deux, multipliez-les et appliquez l'inverse DFT vous donnera la convolution linéaire

VMMF
la source
1

Voici un peu d'intuition:

Lorsque vous traitez des signaux numériquement, vous avez toujours affaire à un signal fini. En effet, vous ne pouvez traiter que sur une quantité finie de points de données.

Le problème est cependant que lorsque vous effectuez des transformations dans le domaine fréquentiel à l'aide de la DFT, par définition, un signal ne peut pas être fini. Par conséquent, lorsque vous effectuez une opération DFT, il y a une altération implicite de votre signal d'être finie, d'être périodique, même si votre signal n'est pas périodique.

Cette périodicité du signal conduit à la nécessité d'utiliser la convolution de manière circulaire.

Makoto
la source
1

La DFT / FFT est un "marteau" de calcul utile, mais tous ses vecteurs de base de transformation sont circulaires (périodiques entiers) en ouverture, et peuvent être étendus à l'infini en tant que fonctions périodiques, ce que certains utilisateurs confondent avec la nature de leurs données d'entrée.

Si vous effectuez une mise à zéro suffisante, la convolution circulaire produit le même résultat que la convolution linéaire, mais à un coût de calcul légèrement plus élevé que la circulaire.

hotpaw2
la source