>> Tecnologia eletrônica >  >> Lar inteligente >> Vida Inteligente

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


Convolução é uma operação matemática que combina duas funções em relação à sobreposição de uma função à medida que 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 f e g é definida como a soma no intervalo de 0 a j de f(j) * g(k-j).

Etapa 1


Defina dois vetores, f e g, contendo as duas funções que você deseja convoluir. Os comprimentos de f e g 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:

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

Etapa 2


Defina o intervalo j sobre o qual a convolução ocorrerá. O valor de j é o intervalo onde os subscritos das duas funções a serem convoluídas, f(j) eg(k+1-n), são válidos. O valor de 1 adicionado a k deve levar em conta 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é-aloque espaço para o resultado da convolução:

meu_resultado =zeros(k);

Etapa 4


Escreva um laço for para iterar pelos valores de k:

para índice_resultado =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".