MATLAB é um software usado para a simulação de engenharia , processamento de sinais , operações matemáticas e análise de dados. A convolução é uma operação matemática que combina duas funções em conjunto . MATLAB fornece métodos para convolving dois sinais no tempo , no tempo ou no domínio da freqüência . Você pode usar funções embutidas para convolve sinais de tempo em MATAB , ou escrever seu próprio código para ajudar você a entender a operação de convolução . Convolução
A operação de convolução é definido como o integral , ou a soma em casos discretos , ao longo da gama da função f ( t ) * g ( tT ) em relação a T. Enquanto se deslocam sobre o intervalo de uma função f , cada ponto é multiplicado por uma segunda função g . No domínio do tempo , convolução é uma operação intensiva de computação , no entanto, depois de transformar em domínio da freqüência usando uma transformada de Fourier , convolução simplifica para multiplicações
função interna
.
o " conv () ", ou a variante bidimensional " conv2 ()," funções podem ser utilizadas de forma fácil e eficiente convolve aos sinais em MATLAB. Normalmente é assumido que os sinais estão no tempo ou no espaço - domínio , ao contrário de domínio de frequências . Os dois primeiros são os argumentos de dois sinais a serem convolved , ou um sinal e um filtro . O terceiro argumento é um argumento de forma que define o tamanho do produto. As opções válidas são "full ", " mesmo ", ou " válido "
mixed_signal = conv ( signal1 , SIGNAL2 , "mesmo" ); . New_image = conv2 ( imagem1 , imagem2 ' completo '); .
Time- Domain
Embora realizando convolução no domínio do tempo , pode ser útil para entender como funciona a operação de convolução
% para dois sinais 1- D, F e gmy_length = comprimento ( f ) + comprimento ( g ) - 1; result = zeros ( my_length , 1);
para i = 1: my_lengthfor j = 1 : comprimento ( f ) se ( ( i - j 1 ) > 0 && ( i - j +1 ) < comprimento ( g ) ) resultado ( i ) = f ( j ) * g ( i- j +1) ; endendend
Frequency -Domain
sinais no domínio do tempo pode ser transformado para o domínio da freqüência usando a transformada de Fourier . MATLAB implementa uma transformada de Fourier rápida na função " fft ()" . No domínio da freqüência , dois sinais podem ser misturados usando multiplicação ponto -wise usando o operador
% para dois sinais , f e GF = fft ( f) "*. "; . G = fft ( g ); U = F * G; . u = ifftshift ( ifft (U) );