Come applicare la convoluzione in MATLAB senza usare la funzione
La convoluzione è un'operazione matematica che fonde due funzioni rispetto alla sovrapposizione di una funzione mentre viene spostata sull'altra. Anche se MATLAB contiene una funzione di convoluzione predefinita, è possibile calcolare l'integrale di convoluzione discreta da soli. La convoluzione discreta di due funzioni f e g è definita come la somma nell'intervallo da 0 a j di f(j) * g(k-j).
Passaggio 1
Definisci due vettori, f e g, contenenti le due funzioni che vuoi convolvere. Le lunghezze di f e g non devono essere uguali. La lunghezza del risultato della convoluzione, k, sarà uno in meno della somma delle lunghezze di f e g:
m = length(f); n = length(g); k = m + n - 1;
Passaggio 2
Definisci l'intervallo j su cui avverrà la convoluzione. Il valore di j è l'intervallo dove gli indici delle due funzioni da convolvere, f(j) e g(k+1-n), sono legali. Il valore 1 aggiunto a k tiene conto del fatto che MATLAB inizia l'indicizzazione dei vettori a 1 invece che a 0:
j = max(1,k+1-n):min(k,m)
Passaggio 3
Prealloca lo spazio per il risultato della convoluzione:
my_result = zeros(k);
Passaggio 4
Scrivi un ciclo for per iterare attraverso i valori di k:
for result_index = 1:k
Passaggio 5
Calcola la convoluzione per tutti i valori di j:
my_result(k) = sum(f(j) .* g(k-j+1));
Passaggio 6
Chiudi il ciclo for con il comando "end".