Hvordan søke konvolusjon i MATLAB uten å bruke funksjons
Konvolusjon er en matematisk operasjon som kombinerer to funksjoner i forhold til overlappingen av en funksjon som den er forskjøvet over en annen. Selv om MATLAB inneholder en pre-bygget konvolusjon funksjon, er det mulig å beregne den diskrete convolution integral selv. Den diskrete konvolvering av to funksjoner f og g er definert som summen over området 0 til j av f (j) * g (kj).
Bruksanvisning
1 Definer to vektorer, f og g, som inneholder de to funksjonene du vil Slør. Lengden av f og g behøver ikke å være like. Lengden av resultatet av konvolusjonen, k, vil være en mindre enn summen av lengden av f og g:
m = lengde (f);
n = lengde (g);
k = m + n - 1;
2 Definer j over hvilket konvolusjon vil oppstå. Verdien av j er området hvor indeksene for de to funksjonene som skal konvolveres, f (j) og g (k + 1-n), er lovlig. Verdien av en lagt til k er å ta hensyn til det faktum at MATLAB begynner indeksering vektorer på en heller enn 0:
j = max (1, k + 1-n): min (k, m)
3 Preallocate plass for resultatet av konvolusjonen:
my_result = zeros (k);
4 Skriv en for loop for å iterere gjennom verdier av k:
for result_index = 1: k
5 Beregn konvolusjon for alle verdier av j:
my_result (k) = sum (f. (j) * g (k-j + 1));
6 Lukk for loop med "slutt" kommandoen.