Durante la convolución en una señal, ¿por qué necesitamos voltear la respuesta al impulso durante el proceso?
convolution
impulse-response
winuall
fuente
fuente
Respuestas:
Adaptado de una respuesta a una pregunta diferente (como se menciona en un comentario) con la esperanza de que esta pregunta no sea planteada repetidamente por Community Wiki como una de las preguntas principales ...
Desglosamos la señal de entradaX en una suma de señales de pulso de unidad escalada. La respuesta del sistema a la señal de pulso de la unidad
⋯ , 0 , 0 , 1 , 0 , 0 , ⋯ es la respuesta al impulso o la respuesta al pulso
Del mismo modo, el valor de entrada único o crea x [ 1 ] ( ⋯ , 0 , 0 , 0 , 1 , 0 , ⋯ ) = ⋯ 0 , 0 , 0 , x [ 1 ] , 0 , ⋯ crea una respuesta 0 , x [ 1 ] h [ 0 ] , x [ 1x [ 1 ]
fuente
Aquí hay un ejemplo de C / C ++ que muestra que la convolución se puede hacer sin usar la respuesta de impulso en reversa. Si inspecciona la
convolve_scatter()
función, no se niega ninguna variable en ninguna parte. Esta es una convolución de dispersión donde cada muestra de entrada se dispersa (suma) a múltiples muestras de salida en la memoria, utilizando pesos dados por la respuesta al impulso. Esto es un desperdicio porque las muestras de salida deberán leerse y escribirse varias veces.Normalmente, la convolución se realiza como convolución de reunión , como en
convolve_gather()
. En este método, cada muestra de salida se forma por separado, reuniendo (sumando) muestras de entrada, con la respuesta de impulso invertida como los pesos. La muestra de salida reside en el registro de un procesador utilizado como acumulador mientras se hace esto. Normalmente, este es el método de elección, porque solo habrá una escritura de memoria por cada muestra filtrada. Ahora hay más lecturas de memoria de la entrada, pero solo tantas como lecturas de memoria de la salida en el método de dispersión.Convoluciona las secuencias:
y usando ambos métodos de convolución salidas:
No puedo imaginar a nadie usando el método de dispersión, a menos que el filtro varíe en el tiempo, en cuyo caso los dos métodos producirán resultados diferentes y uno puede ser más apropiado.
fuente
Solo se 'voltea' para el cálculo puntual.
@Dilip explica lo que representa la integral / suma de convolución, pero para explicar por qué una de las dos funciones de entrada (a menudo
h(t)
) se invierte para fines de cálculo, considere un sistema de tiempo discreto con entradax[n]
y respuesta de impulsoh[n]
:Puede tomar su función de entrada
x[n]
, y para cada muestra que no sea cero *x[n]
calcule la respuesta de impulso escalada de la muestran
y así sucesivamente hasta que el cambio de tiempo seh[n]
reduzca a cero (suponiendo un causalh[n]
). Esto implicaría no 'voltear' (o más exactamente 'inversión de tiempo') de cualquierax[n]
oh[n]
. Sin embargo, al final tendría que agregar / superponer todos estos 'ecos' escalados + desplazados de la respuesta de impulso para cada no-cerox[n]
.x[0]
k
h[n]
x[n]
, Que esx[0]h[0]
. Luego,k
al aumentar en uno, se desplazaráh[n]
hacia la derecha un paso de tiempo, de modo que lah[n]
segunda entrada (h[1]
) de tiempo invertido ahora se colocará encimax[0]
, esperando ser multiplicada. Esto producirá la contribución deseadax[0]h[1]
en el momenton=1
, tal como se habría hecho en el método anterior.x[n]
h[n]
y[n]
fuente
En el índice c [n], la convolución de a [n] yb [n] es tal que:
"c [n] es una suma de todos los productos (a [k] b [m]) tal que m + k = n", entonces m = n - k o k = n - m, lo que significa que una de las secuencias tiene que ser volteado.
Ahora, ¿por qué la convolución se comporta de esta manera en primer lugar? Debido a su conexión con la multiplicación de polinomios.
Multiplicar dos polinomios da como resultado un nuevo polinomio con coeficientes. Los coeficientes del polinomio del producto definen el funcionamiento de la convolución. Ahora, en el procesamiento de señales, las funciones de transferencia: las transformadas de Laplace o las transformadas z son estos polinomios, y cada coeficiente corresponde a un retardo de tiempo diferente. Unir los coeficientes del producto y los multiplicandos da como resultado el hecho de que "la multiplicación en una representación corresponde a la convolución en la representación transformada".
fuente
Durante la convolución, no debe producirse ningún "giro" de la respuesta al impulso ...
Sin embargo, si desea evitar cualquier alteración de fase, puede convolucionar una señal con una respuesta de impulso y luego revertir la respuesta de impulso y volver a convolucionar para cancelar los efectos de fase.
En el procesamiento fuera de línea, podría revertir la señal con la misma facilidad después de la primera convolución para llegar a la misma conclusión (como sugieren los comentarios).
fuente
fuente