Nwlapcug.com


Come applicare la convoluzione in MATLAB senza utilizzare la funzione

Come applicare la convoluzione in MATLAB senza utilizzare la funzione


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".