Cómo solicitar una convolución en MATLAB sin usar la función

Escrito por Chris Daniels ; última actualización: February 01, 2018
Thinkstock Images/Comstock/Getty Images

La convolución es una operación matemática que mezcla dos funciones relativas a la superposición de una función que se encuentra encima de otra. Aunque MATLAB contiene una función convolutiva integrada, es posible que puedas calcular la integral de convolución discreta. La convolución discreta de dos funciones f y g está definida como la suma del rango 0 a j, de f(j) * g(k-j).

Define dos vectores f y g, conteniendo dos funciones que quiera convolucionar. La longitud 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 la longitud de f y g:

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

Define el rango j donde la convolución ocurrirá. El valor de j es el rango donde los subíndices de dos funciones convolucionarán, f(j) y g(k+1-n) son legales. El valor de 1 sumado a k es para considerar el hecho de que MATLAB empieza a indexar vectores en 1 en vez de en 0:

j = max(1,k+1-n):min(k,m)

Preasigna espacio para el resultado de la convolución:

my_result = zeros(k);

Escribe un for loop (para cerrar la repetición) a través de los valores de k:

por (índice de resultado) result_index = 1:k

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

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

Cierra el for loop con el comando "end" (terminar).

×