Cómo aplicar la convolución en MATLAB sin usar la función

Primer plano de la ecuación matemática

MATLAB contiene una función de convolución prediseñada.

Credito de imagen: Thinkstock Images / Comstock / Getty Images

La convolución es una operación matemática que combina dos funciones en relación con la superposición de una función a medida que se desplaza sobre otra. Aunque MATLAB contiene una función de convolución prediseñada, es posible calcular la integral de convolución discreta usted mismo. La convolución discreta de dos funciones f y g se define como la suma en el rango de 0 a j de f (j) * g (k-j).

Paso 1

Defina dos vectores, f y g, que contengan las dos funciones que desea convolucionar. Las longitudes de f y g no tienen que ser iguales. La longitud del resultado de la convolución, k, será uno menos que la suma de las longitudes de f y g:

Video del día

m = longitud (f); n = longitud (g); k = m + n - 1;

Paso 2

Defina el rango j sobre el cual ocurrirá la convolución. El valor de j es el rango donde los subíndices de las dos funciones a convolucionar, f (j) y g (k + 1-n), son legales. El valor de 1 agregado a k es para tener en cuenta el hecho de que MATLAB comienza a indexar vectores en 1 en lugar de 0:

j = máximo (1, k + 1-n): mínimo (k, m)

Paso 3

Asigne previamente espacio para el resultado de la convolución:

mi_resultado = ceros (k);

Etapa 4

Escriba un bucle for para iterar a través de los valores de k:

para índice_resultado = 1: k

Paso 5

Calcule la convolución para todos los valores de j:

mi_resultado (k) = suma (f (j). * g (k-j + 1));

Paso 6

Cierre el ciclo for con el comando "end".