MATLAB er en programvare som brukes for prosjektering simulering , signalbehandling, matematiske operasjoner og dataanalyse . Konvolusjon er en matematisk operasjon som blander to funksjonene sammen . MATLAB gir metoder for konvolvere to tid signaler i tid eller frekvens - domene. Du kan bruke innebygde funksjoner for å convolve tid signaler i MATAB , eller skriv din egen kode for å hjelpe deg å forstå konvolusjon operasjonen . Convolution
konvolusjon driften er definert som integrert , eller summen i diskrete tilfeller over området av funksjonen f ( T) * g ( tT ) med hensyn til T. Mens flytte over rekke en funksjon f, blir hvert punkt multiplisert med en andre funksjonen g . I tiden - domene, er konvolusjon en beregning intensiv drift ; . Men etter transformerer til frekvensdomenet ved hjelp av en Fourier transform , forenkler konvolusjon til multiplications
innebygd funksjon
" conv ( ) , " eller de to- dimensjonale varianten " conv2 ( ) , " funksjoner kan brukes til å enkelt og effektivt convolve til signaler i MATLAB . Det er vanlig antatt at signalene er i tids- eller rom - domenet , i motsetning til frekvensdomenet . De første to argumenter er de to signaler som skal vridde , eller et signal, og et filter. Det tredje argumentet er en form argument som definerer størrelsen på produksjonen . Gyldige alternativer er "full ", " samme " eller "gyldig "
mixed_signal = conv ( signal1 , signal2 , ' samme '); . New_image = conv2 ( image1 , image2 , ' full ' ) ;
time- Domain
Selv utføre konvolusjon i time- domene, kan det være nyttig å forstå hvordan de konvolusjonsteknikker drift verk < . br >
% for to 1 - D signaler , f og gmy_length = lengde ( f) + lengde ( g ) - 1; resultat = zeros ( my_length , 1 ) ;
for i = 1 : my_lengthfor j = 1: lengde ( f) if ( (i- j 1 ) > 0 && (i- j 1 ) < lengde (g) ) Resultater (i) = f ( j ) * g ( i- j +1 ) ; endendend
frekvens - domain
Time- domene signaler kan bli forvandlet til frekvensdomenet ved hjelp av Fourier transform . MATLAB implementerer en rask Fourier transform i " FFT ( ) "-funksjonen . I frekvensdomenet , kan to signalene blandes hjelp av pek -messig multiplikasjon med operatøren
% For to signaler , f og gF = fft ( f) "* . "; . G = fft ( g ) , U = F * G; . u = ifftshift ( ifft (U ));