Como aplicar convolução no MATLAB sem usar a função

Close da equação matemática

MATLAB contém uma função de convolução pré-construída.

Crédito da imagem: Thinkstock Images / Comstock / Getty Images

Convolução é uma operação matemática que combina duas funções relativas à sobreposição de uma função quando ela é deslocada sobre outra. Embora o MATLAB contenha uma função de convolução pré-construída, é possível calcular você mesmo a integral de convolução discreta. A convolução discreta de duas funções feg é definida como a soma no intervalo de 0 a j de f (j) * g (k-j).

Passo 1

Defina dois vetores, feg, contendo as duas funções que você deseja convolver. Os comprimentos de feg não precisam ser iguais. O comprimento do resultado da convolução, k, será um a menos que a soma do comprimento de f e g:

Vídeo do dia

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

Passo 2

Defina o intervalo j no qual ocorrerá a convolução. O valor de j é o intervalo onde os subscritos das duas funções a serem convolvidas, f (j) e g (k + 1-n), são válidos. O valor de 1 adicionado a k é para explicar o fato de que o MATLAB começa a indexar vetores em 1 em vez de 0:

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

etapa 3

Pré-alocar espaço para o resultado da convolução:

meu_resultado = zeros (k);

Passo 4

Escreva um loop for para iterar por meio de valores de k:

para result_index = 1: k

Etapa 5

Calcule a convolução para todos os valores de j:

meu_resultado (k) = soma (f (j). * g (k-j + 1));

Etapa 6

Feche o loop for com o comando "end".