foldning er en matematisk operation , der blander to funktioner i forhold til overlap af én funktion , som det er flyttet over en anden . Selvom MATLAB indeholder en præ-bygget convolution funktion, er det muligt at beregne den diskrete foldningsintegralet selv. Den diskrete foldning af to funktioner f og g er defineret som summen over området 0 til j for f ( j ) * g ( kj ) . Instruktioner
1
Definer to vektorer , F og G , som indeholder de to funktioner , du ønsker at convolve . Længderne af f og g behøver ikke at være lige. Længden af resultatet af foldningen , k , vil være en mindre end summen af længden af f og g :
m = længde ( f) n = længde ( g) k = m + n - 1 ,
2
Definer intervallet j over hvilken convolution vil forekomme. Værdien af j er det område , hvor sænket for de to funktioner, der skal foldes , f ( j) og g ( k +1- n ) , er lovlige . Værdien af 1 tilføjet til k er at tage højde for det faktum, at Matlab begynder indeksering vektorer ved 1 snarere end 0:
j = max ( 1 , k +1- n ) : min ( k , m ) < br >
3
Preallocate plads til resultatet af convolution :
my_result = nuller ( k ),
4
Skriv en for-løkke til at gentage gennem værdier af k :
for result_index = 1 : k
5
Beregn convolution for alle værdier af j : Hej
my_result ( k) = sum ( f ( j ) * g ( k- j +1) ) .
6
Luk for loop med " ende" kommandoen
< . br >