Cómo trabajar y verificar integral de convolución y resumir los problemas

El dominio de integrales de convolución y sumas llega a través de la práctica. Aquí son soluciones detalladas de análisis a los problemas una integral de convolución y dos suma de convolución, cada uno seguido de verificaciones numéricos detallados, utilizando PyLab de la shell interactivo IPython (la versión QT en particular).

convolución en tiempo continuo

Aquí es un ejemplo integral de convolución empleando señales de medida semi-infinitos. Considere la convolución de x(t) = u(t) (Una función escalón unidad) y

(Un verdadero decaimiento exponencial a partir de t = 0). La figura proporciona un gráfico de las formas de onda.

[Ilustración de Mark Wickert, PhD]

El intervalo de soporte de salida es

Se necesitan dos casos (pasos) para formar la solución analítica válida en todo el eje del tiempo.

  • Caso 1: Utilizando la figura b, se puede ver claramente que para t lt; 0, se deduce que y(t) = 0.

  • Caso 2: Una vez más mirando a la figura b, se ve que para t ≥ 0, cierta superposición se produce siempre entre las dos señales del integrando. La salida integral de convolución es

Poner las dos piezas juntas, la solución analítica para y(t) es

Para verificar esta solución analítica, siga los mismos pasos que en el ejemplo anterior:

  1. Escribir una función de Python simple para trazar la solución analítica:

    en [133]: Def expo_conv (t, A, alfa): ...: y = ceros (len (t)) ...: para k, tk en enumerate (t): ...: si tk gt; = 0: ...: y [k] = A / alfa * (1 - exp (alfa * tk)) ...: retorno y
  2. Para la convolución numérica, el uso ssd.conv_integral (). En primer lugar, escribir código Python en la ventana de comandos para generar las señales x(t) y marido(t) Y luego llevar a cabo la convolución:

    en [135]: T = arange (4,14, 0,01) En [136]: Xc2 = ssd.step (t) En [137]: HC2 = ssd.step (t) * exp (-1 * t) En [138]: Yc2_num, tyc2 = ssd.conv_integral (xc2, t, HC2, t, ( `r`, `r`)) Soporte de salida: (-8,00, 5,99) En [143]: Subtrama (211) En [144]: Plot (t, expo_conv (t, 1,1)) En [149]: Subtrama (212) En [151]: Plot (tyc2, yc2_num) En [156]: Savefig ( `c2_outputs.pdf`)

    Observe que el argumento de la quinta conv_integral función es ( ‘R’,’r’). Para señales con extensión infinita a la derecha, cada ‘R’ cuenta la función que ambas señales son correctas; lados y para devolver sólo el apoyo intervalo válido bajo este supuesto.

    Los valores por defecto de ( ‘F’,’f’) medios de soporte finito para ambas señales a través de los ejes de tiempo de entrada t1 y t2 dada a la función.

    [Ilustración de Mark Wickert, PhD]

Una vez más, el acuerdo es excelente, por lo que la solución analítica se verifica.

Video: Señales y Sistemas. Ejemplo de convolución. Parte 1

Verificar la convolución discreta

Para el caso de la convolución discreta, aquí hay dos ejemplos suma de convolución. El primero emplea secuencias de extensión finita (señales) y el segundo emplea señales de medida semi-infinitos. Se encuentra con ambos tipos de secuencias en la resolución de problemas, pero las secuencias extensión finita es el punto de partida habitual cuando se está trabajando con la primera suma de convolución.

Dos secuencias de longitud finita

Tenga en cuenta la suma de convolución de las dos secuencias x[norte] y marido[norte], Que se muestra aquí, junto con la configuración de la suma de convolución.

[Ilustración de Mark Wickert, PhD]

Cuando la convolución de las secuencias de duración finita, que puede hacer la solución analítica casi por inspección o tal vez mediante el uso de una mesa (incluso una hoja de cálculo) para organizar los valores de secuencia para cada valor de norte, que produce una superposición diferente de cero entre marido[k] y x[norte - k].

El intervalo de apoyo a la salida sigue a la regla dada para el dominio de tiempo continuo. La salida y[norte] Comienza a la suma de las dos secuencia de arranque puntos de entrada y termina en la suma de secuencia de entrada puntos de finalización. Para el problema que nos ocupa, esto corresponde a y[norte] A partir de [0 + -1] = -1 y termina en [3 + 1] = 4.

En cuanto a la figura b, se puede ver que a medida norte aumenta desde norte lt; -1, primera superposición se produce cuando norte = -1. El último punto de solapamiento se produce cuando norte - 3 = 1 o norte = 4. Puede configurar una tabla de hoja de cálculo para evaluar los productos de suma de seis relacionados con el apoyo intervalo de salida.

[Ilustración de Mark Wickert, PhD]

Para verificar estos de mano (hoja de cálculo) los valores de cálculo, utilice las funciones de Python en ssd.py para realizar la suma de convolución. La función suma de convolución es Y, ny = ssd.conv_sum (x1, nx1, x2, NX2, extensión = ( ‘f’, ‘f’)).

en [208]: N = arange (-4,6) En [209]: Xd1 = 2 * ssd.drect (n, 4) En [210]: Hd1 = 1,5 * ssd.dimpulse (n) - 0,5 * ssd.drect (n + 1,3) En [211]: Yd1_num, nd1 = ssd.conv_sum (XD1, n, hd1, n) Soporte de salida: (-8, 10) En [212]: Vástago (ND1, yd1_num)

Ver la secuencia de salida resultados numérica trazada.

Video: Integral de Convolución (Explicada gráficamente)

[Ilustración de Mark Wickert, PhD]

Los resultados del cálculo numérico de hecho se corresponden con el cálculo manual.

Una finito y una secuencia de semi-infinita

Como un segundo ejemplo de trabajo con la convolución considerar una secuencia de impulsos de duración finita de 2METRO + 1 puntos convolucionada con la secuencia exponencial semi-infinita unnorte u[norte] (Un verdadero decaimiento exponencial a partir de norte = 0). Una gráfica de las formas de onda se da aquí.

[Ilustración de Mark Wickert, PhD]

Con la ayuda de la figura b, tiene tres casos a considerar en la evaluación de la convolución para todos los valores de norte. El intervalo de soporte para la convolución es

Estos son los pasos para cada caso:

  • Caso 1: A partir de la figura b, se ve que para norte + METRO lt; 0 o norte lt; -METRO no hay solapamiento entre las dos secuencias de la suma, por lo y[norte] = 0.

  • Caso 2: superposición parcial entre las dos secuencias se produce cuando norte + METRO ≥ 0 y norte - METRO ≤ 0 o -METROnorteMETRO. Los límites de suma comienzan a partir de k = 0 y terminan a las k = norte + METRO. Utilizando la fórmula de suma serie geométrica finita, la suma de convolución se evalúa como

    Video: Convolución 1

  • Caso 3: superposición completa se produce cuando norte - METRO gt; 0 o norte gt; METRO. Los límites de sumas menores de este caso van desde k = norte - METRO a k = norte + METRO. De nuevo, usando la fórmula suma serie geométrica finita, la suma de convolución se evalúa como

Poner las piezas juntas, la solución analítica completa para este problema es

Para comparar la solución analítica con la solución numérica, sigue los pasos de trazado de la función analítica contra una trama de la suma de convolución real:

  1. Escribir una función de Python para evaluar y[norte] Como una función a trozos:

    en [239]: Def expo_pulse_conv (n, a, M): ...: y = ceros (len (n)) ...: para k, nk en enumerate (n): ...: si nk gt; = -M y nk lt; = M: ...: y [k] = 2 * (1 - a ** (nk + M + 1)) / (1 - a) ...: nk elif gt; M: ...: y [k] = 2 * (a ** (NK-M) - a ** (nk + M + 1)) / (1 - a) ...: retorno y
  2. Encuentra la suma de convolución real mediante el uso de la función conv_sum () y luego el trazado de los resultados:

    en [255]: N = arange (-5,30) # n valores de x [n] & h [n] en [256]: Xd2 = 2 * ssd.drect (n + 4,9) # crear x [n] en [257]: HD2 = ssd.dstep (n) * 0,6 ** n # crean h [n] en [258]: Yd2_num, ND2 = ssd.conv_sum (xd2, n, HD2, n, ( `f` `r`)) Soporte de salida: (-10, 24) En [259]: Subtrama (211) En [260]: Tallo (n, expo_pulse_conv (n, 0.6,4)) # analyticalIn [265]: Subtrama (212) En [266]: Vástago (ND2, yd2_num) # numericalIn [271]: Savefig ( `d2_outputs.pdf`)

    Utilizar el argumento de la quinta conv_sum () funcionar para declarar la extensión de la segunda secuencia de entrada a derecha; caras ( ‘R’), en comparación con el valor por defecto de finito (`F`). Esta configuración garantiza que la función no devuelve resultados no válidos.

    [Ilustración de Mark Wickert, PhD]

Aquí, se ve que la solución analítica a trozos se compara favorablemente con el cálculo numérico suma de convolución directa.

Artículos Relacionados