Convoluzione è un'operazione matematica che unisce due funzioni relative la sovrapposizione di una funzione come viene spostato sopra un altro. Anche se MATLAB contiene una funzione di convoluzione pre-costruito, è possibile calcolare l'integrale di convoluzione discreta se stessi. La discreta convoluzione di due funzioni f e g è definita come la somma sopra la gamma 0 a j di f(j) * g(k-j).
Istruzioni
1
Definire due vettori, f e g, che contiene le due funzioni che si desidera di condensa. Le lunghezze di f e g non devono essere uguali. La lunghezza del risultato della convoluzione, k, sarà uno meno che la somma della lunghezza di f e g:
m = length(f);
n = length(g);
k = m + n - 1;
2
Definire la gamma j sopra cui si verificherà la convoluzione. Il valore di j è la gamma dove gli indici delle due funzioni per essere convoluzione, f(j) e g(k+1-n), sono legali. Il valore di 1 aggiunto alla k è per tenere conto del fatto che MATLAB inizia a indicizzare vettori a 1 invece di 0:
j = max(1,k+1-n):min(k,m)
3
Preallocare lo spazio per il risultato della convoluzione:
my_result = zeros(k);
4
Scrivere un ciclo for per scorrere i valori di k:
per result_index = 1: k
5
Calcolare la convoluzione per tutti i valori di j:
my_result(k) = sum(f(j). * g(k-j+1));
6
Chiudi il ciclo for con il comando "fine".