¿Por qué se usa la convolución circular en DSP? ¿Por qué no convolución lineal?

8
  1. ¿Por qué estamos usando convolución circular en DSP?

  2. ¿Cuál es la razón sólida principal para su uso en el procesamiento digital?

  3. ¿Por qué el concepto de convolución circular es más frecuente que la convolución lineal?

vishaln
fuente
2
notará que todas sus respuestas incluyen una mención de la Transformada discreta de Fourier que se implementa de manera más eficiente con la FFT. el DFT extiende periódicamente las secuencias de longitud finita que se le pasan (que es circular). la convolución circular rara vez es el objetivo . Por lo general, la convolución lineal es el objetivo. pero al multiplicar las DFT y juntas, eso corresponde a la circunvolución circular de las dos secuencias extendidas periódicamente, y pasaron a las DFT. El problema es, de alguna manera, convertir esto en una convolución lineal. X[k]H[k]X[norte]h[norte]
robert bristow-johnson

Respuestas:

8

Dado un sistema LTI de tiempo discreto con respuesta de impulso , se puede calcular su respuesta a cualquier entrada mediante una suma de convolución :h[norte]X[norte]

(1)y[norte]=X[norte]h[norte]=k=-h[k]X[norte-k]

Sin nada declaró además, por encima de definición es para la convolución lineal (convolución aperiódica) entre y , que son secuencias de tiempo discreto aperiódicas de longitud posiblemente infinito, a menos que se indique lo contrario. Esto es diferente de una convolución circular que se encuentra entre dos secuencias periódicas del período y se calcula en un solo período.h[norte]X[norte]norte

Puede calcular una convolución lineal en el dominio del tiempo por la ecuación 1, o en el dominio de la frecuencia utilizando la siguiente propiedad DTFT (transformada de Fourier de tiempo discreto):

(2)y[norte]=X[norte]h[norte]Y(mijω)=X(mijω)H(mijω)

DTFT está naturalmente relacionado con la convolución lineal, ya que trata con secuencias aperiódicas teóricamente existentes que pueden extenderse de a reflejadas en sus límites de la suma definitoria: -

(3)X(mijω)=norte=-X[norte]mi-jωnorte

Cuando desee realizar un cálculo a mano, utilizando expresiones simbólicas para señales, como y , puede calcular los resultados a tiempo o dominios de frecuencia como se describe anteriormente. X[norte]=unanortetu[norte]h[norte]=sinortetu[norte]

Además, cuando desee calcular el mismo resultado utilizando una computadora, puede usar el enfoque de dominio de tiempo basado en una recursión LCCDE (para sistemas IIR) o suma de convolución finita directa (para sistemas FIR), PERO el enfoque de dominio de frecuencia ganó ' t trabajar con DTFT; ya que es principalmente una herramienta utilizada para desarrollar la matemática de la teoría de señales y sistemas, y no es adecuada para implementaciones de computadora digital, ya que su variable es un número continuo real .ω

Lo que se usa en su lugar es la DFT (transformada discreta de Fourier) definida como

(4)X[k]=X(mijω)El |ω=2πknorte

donde y es la longitud de la DFT, que luego se llama como una DFT de punto N de la señal .k=0 0,1,...,norte-1norteX[norte]

La ecuación 4 implica que la secuencia DFT se obtiene como las muestras uniformes de la DTFT , que es una función periódica, por lo tanto, DFT también es periódica pero solo nosotros considere su primer período de a .X[k]X(mijω)X[k]k=0 0norte-1

Como las secuencias DFT son inherentemente periódicas, sus convoluciones también serán periódicas (circulares). Por lo tanto, mientras que una convolución lineal entre las señales aperiódicas e está implícita en la expresión I-DTFT cambio, una convolución circular entre dos secuencias periódicas está implícita en la expresión I-DFTX[norte]y[norte]

y[norte]=yo-reTFT{X(mijω)H(mijω)}
y~[norte]=yo-reFT{X[k]H[k]}

Entonces, dado que queremos calcular una convolución lineal entre dos secuencias aperiódicas y de longitudes y respectivamente, usando el dominio de frecuencia por sus DFT de punto , y , en realidad tenemos para calcular una convolución circular entre las extensiones periódicas de las señales y de los períodos de .X[norte]h[norte]LXLhnorteX[k]H[k]X~[norte]h~[norte]norte

La clave está en elegir una longitud adecuada de las DFT, que debe ser lo suficientemente larga para evitar cualquier alias de dominio de tiempo de la secuencia , devuelta por el cálculo IDFT:nortey~[norte]

(5)y~[norte]=r=-y[norte-rnorte]

donde es el resultado de la convolución lineal que devolvería la DTFT inversa teórica y es el resultado periódico de la convolución periódica (circular) implicada por la DFT inversa.y[norte]y~[norte]

Tenga en cuenta que si cualquiera de las señales es de longitud infinita, entonces NO es posible calcular su convolución lineal utilizando el enfoque DFT, ya que iría al infinito, prácticamente imposible. La implementación de una convolución lineal a través de DFT tiene los siguientes pasos:norte

  1. Elija N de acuerdo con los siguientes criterios: que garantiza una reconstrucción sin alias de la señal inversa partir de su DFT de la convolución circular calculada a través de .

    norteLX+Lh-1
    y[norte]Y[k]X[k]H[k]

  2. Calcule los DFT de punto N y de y .X[k]H[k]X[norte]h[norte]

  3. CalculeY[k]=X[k]H[k]

  4. Calcule el DFT inverso de punto N de para producir la salidaY[k]y[norte]

Grasa32
fuente
2

Respondiendo a sus preguntas:

  1. ¿Por qué estamos usando convolución circular en DSP?

En DSP normalmente tratamos con secuencias discretas de longitud finita (incluso si la señal en estudio es infinita, solo podemos analizar una porción finita de la misma a la vez). Cuando se trata de procesar una señal, la forma de procesarla debe ser implementable en un dispositivo lógico discreto (es decir, un dispositivo que no puede almacenar valores continuos porque estos valores son infinitos y tiene una cantidad finita de memoria, almacenamiento, etc.). Esto explica por qué la Transformación de Fourier en tiempo discreto (DTFT) que transforma una secuencia de tiempo discreta en una secuencia de frecuencia continua no se puede implementar en el hardware. La convolución lineal en el tiempo es equivalente a la multiplicación de DTFT de 2 secuencias, pero como DTFT no se puede implementar en hardware, esta no es la forma de obtener una convolución lineal.La Transformada de Fourier discreta (DFT), por otro lado, transforma una secuencia de tiempo discreta en una secuencia de frecuencia discreta y esto permite que se implemente en el hardware. Sin embargo, multiplicar 2 secuencias DFT es equivalente a convolución circular en principio(la convolución lineal también se puede obtener si las secuencias de tiempo se rellenan previamente con suficientes ceros, consulte la explicación a continuación). La razón por la cual multiplicar 2 secuencias DFT es equivalente a una convolución circular y no lineal proviene del hecho de que DFT para una secuencia de longitud de tiempo finita es equivalente a la serie discreta de Fourier (DFS) de esa misma secuencia de longitud de tiempo finita extendida periódicamente (concatenando el secuencia de longitud de tiempo finita infinitamente en el eje de tiempo) tomada durante un período. El DFS también es periódico en el dominio de la frecuencia, por lo que la convolución lineal no se aplica allí (ver 8.2.5 y 8.6.5 del procesamiento de señal de tiempo discreto de Oppenheim, tercera edición)

  1. ¿Cuál es la razón sólida principal para su uso en el procesamiento digital?

Se obtiene por multiplicación DFT y DFT se implementa fácilmente en hardware. Además, existen algoritmos muy eficientes como FFT para calcular el DFT

  1. ¿Por qué el concepto de convolución circular es más frecuente que la convolución lineal?

Eso depende de la aplicación. La convolución circular también puede producir la convolución lineal. Por ejemplo, digamos que estamos trabajando con la señal A de longitud N y la señal B también de longitud N (también se puede hacer para diferentes longitudes). La convolución circular será de longitud N. Para obtener una convolución lineal, tanto A como B deben rellenarse con ceros hasta que alcancen una longitud de al menos 2 * N - 1. Luego, aplique el DFT en ambos, multiplíquelos y aplique inversa DFT te dará la convolución lineal

VMMF
fuente
1

Aquí hay un poco de intuición:

Cuando manejas señales digitalmente, siempre estás tratando con una señal finita. Esto se debe a que solo puede procesar en una cantidad finita de puntos de datos.

Sin embargo, el problema es que cuando realiza transformaciones en el dominio de frecuencia utilizando el DFT, por definición, una señal no puede ser finita. Por lo tanto, al realizar una operación DFT, hay una alteración implícita en su señal de ser finita a ser periódica, incluso si su señal no es periódica.

Esta periodicidad de la señal lleva a la necesidad de usar convolución de manera circular.

Makoto
fuente
1

El DFT / FFT es un "martillo" computacional útil, pero todos sus vectores de base de transformación son circulares (enteros periódicos) en apertura, y pueden extenderse infinitamente como funciones periódicas, que algunos usuarios confunden con la naturaleza de sus datos de entrada.

Si hace cero-pad en una cantidad suficiente, la convolución circular produce el mismo resultado que la convolución lineal, pero a un costo computacional ligeramente mayor que el circular.

hotpaw2
fuente