MATLAB inneholder en forhåndsbygd konvolusjonsfunksjon.
Bildekreditt: Thinkstock Images/Comstock/Getty Images
Konvolusjon er en matematisk operasjon som blander to funksjoner i forhold til overlappingen av en funksjon når den flyttes over en annen. Selv om MATLAB inneholder en forhåndsbygd konvolusjonsfunksjon, er det mulig å beregne den diskrete konvolusjonsintegralen selv. Den diskrete konvolusjonen av to funksjoner f og g er definert som summen over området 0 til j av f (j) * g (k-j).
Trinn 1
Definer to vektorer, f og g, som inneholder de to funksjonene du vil konvolvere. Lengdene til f og g trenger ikke å være like. Lengden på resultatet av konvolusjonen, k, vil være én mindre enn summen av lengden av f og g:
Dagens video
m = lengde (f); n = lengde (g); k = m + n - 1;
Steg 2
Definer området j som konvolusjonen skal skje over. Verdien av j er området der subscripts av de to funksjonene som skal konvolveres, f (j) og g (k+1-n), er lovlige. Verdien av 1 lagt til k er for å gjøre rede for det faktum at MATLAB begynner å indeksere vektorer ved 1 i stedet for 0:
j = maks (1,k+1-n):min (k, m)
Trinn 3
Forhåndstildel plass for resultatet av konvolusjonen:
mitt_resultat = nuller (k);
Trinn 4
Skriv en for-løkke for å iterere gjennom verdiene av k:
for resultatindeks = 1:k
Trinn 5
Beregn konvolusjonen for alle verdiene av j:
mitt_resultat (k) = sum (f(j) .* g (k-j+1));
Trinn 6
Lukk for-løkken med "slutt"-kommandoen.