Come applicare convoluzione in MATLAB senza utilizzare la funzione

May 28

Come applicare convoluzione in MATLAB senza utilizzare la funzione


Convoluzione è una operazione matematica che unisce due funzioni relative alla sovrapposizione di una funzione mentre viene spostato rispetto ad un altro. Sebbene MATLAB contiene una funzione pre-costruita convoluzione, è possibile calcolare la convoluzione discreta stessi. La convoluzione discreto di due funzioni f, g è definito come la somma nel range da 0 a j di f (j) * g (kj).

istruzione

1 Definire due vettori, F e G, che contengono le due funzioni che si desidera 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;

2 Definire l'intervallo j su cui si verificherà la convoluzione. Il valore di j è l'intervallo in cui indici delle due funzioni da convoluta, f (j) e g (k + 1-n), sono legali. Il valore di 1 aggiunto K è per tenere conto del fatto che MATLAB inizia vettori di indicizzazione a 1 invece di 0:

j = max (1, k + 1-n): min (k, m)

3 spazio Preallocare per il risultato della convoluzione:

my_result = zeri (k);

4 Scrivi un ciclo for per iterare valori di k:

per result_index = 1: k

5 Calcolare la convoluzione per tutti i valori di j:

my_result (k) = somma (. f (j) * g (k-j + 1));

6 Chiudere il ciclo for con il comando "fine".