Come applicare la convoluzione in MATLAB senza utilizzare la funzione
La convoluzione è un'operazione matematica che unisce due funzioni relative alla sovrapposizione di una funzione mentre viene spostata su un'altra. Sebbene MATLAB contenga una funzione di convoluzione predefinita, è possibile calcolare da soli l'integrale di convoluzione discreto. 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 inferiore alla somma della lunghezza di f e g:
m =lunghezza(f); n =lunghezza(g); k =m + n - 1;
Passaggio 2
Definire l'intervallo j su cui si verificherà la convoluzione. Il valore di j è l'intervallo in cui gli indici delle due funzioni da convolvere, f(j) e g(k+1-n), sono legali. Il valore di 1 aggiunto a k tiene conto del fatto che MATLAB inizia a indicizzare i vettori a 1 anziché a 0:
j =max(1,k+1-n):min(k,m)
Passaggio 3
Preallocare spazio per il risultato della convoluzione:
mio_risultato =zeri(k);
Passaggio 4
Scrivi un ciclo for per scorrere i valori di k:
per indice_risultato =1:k
Passaggio 5
Calcola la convoluzione per tutti i valori di j:
mio_risultato(k) =somma(f(j) .* g(k-j+1));
Passaggio 6
Chiudi il ciclo for con il comando "end".