A convolução de dois sinais de tempo no MATLAB

O MATLAB oferece funções no domínio do tempo ou frequência.

Convolução

A operação convolução é definida como a integral ou soma em casos discretos, ao longo de um intervalo de funções f (T) * g (tT) em relação a T. Ao mover o intervalo de uma função f, cada ponto é multiplicado por um segunda função em g. No domínio do tempo, a convolução é uma operação de computação intensiva, no entanto, depois de transformá-la no domínio da frequência por transformação de Fourier, a convolução é simplificada para multiplicações.

Função integrada

As funções "conv (), ou sua variante bidimensional" conv2 () ", podem ser usadas com facilidade e eficiência para transmitir sinais no MATLAB, geralmente é assumido que os sinais estão no domínio temporal ou espacial, ao contrário do domínio do Os dois primeiros argumentos são os dois sinais a serem convolvidos, ou um sinal e um filtro. O terceiro argumento é um argumento que define o tamanho da saída. As opções válidas são "full", "same" ou "valid". "(" completo ", " igual "ou" válido ").

mixed_signal = conv (signal1, signal2, 'same'); new_image = conv2 (image1, image2, 'full');

Domínio do tempo

Realizar a convolução no domínio do tempo pode ser útil para entender como essa operação funciona:

% por dois sinais 1-D, fyg my_length = comprimento (f) + comprimento (g) - 1; resultado = zeros (my_length, 1);

para i = 1: my_length para j = 1: length (f) if ((i-j + 1)> 0 && (i-j + 1) <comprimento (g)) resultado (i) = f (j) * g (i-j + 1); extremidade final

Domínio de Freqüência

Os sinais no domínio do tempo podem ser transformados no domínio da frequência usando a transformação de Fourier. O MATLAB implementa uma transformação rápida de Fourier usando a função "ffft ()". No domínio da frequência, dois sinais podem ser misturados usando uma multiplicação de pontos pelo operador ". *".

% para dois sinais f e g F = fft (f); G = fft (g); U = F. * G; u = ifftshift (ifft (U));