Funzioni > Vettore e matrice > Altre funzioni per gli array > Convoluzione e correlazione incrociata
  
Convoluzione e correlazione incrociata
convolve(S, K, [BC], [OV]) - Esegue la convoluzione tra 2 vettori (1D) o 2 matrici (2D) con una fase arbitraria.
La convoluzione nel tempo corrisponde alla moltiplicazione in frequenza e viceversa, ed è utile per i filtri digitali.
crosscorr(S, K, [BC], [OV]) - Esegue la correlazione incrociata tra 2 vettori (correlazione 1D) o 2 matrici (correlazione 2D) con una fase arbitraria.
La correlazione equivale alla convoluzione con una sequenza invertita nel tempo. È spesso utilizzata per trovare la risposta all'impulso di un sistema.
La funzione crosscorr può essere utilizzata per correlare immagini.
La funzione crosscorr è la combinazione delle funzionalità delle funzioni obsolete correl e correl2d.
Argomenti
S è un vettore o una matrice che rappresenta il segnale di input. Gli elementi dell'array possono avere valori reali o complessi.
K è un vettore o una matrice che rappresenta il kernel. Gli elementi dell'array possono avere valori reali o complessi.
BC (facoltativo) è un argomento intero che determina il tipo di convoluzione da eseguire specificando come gestire i limiti della matrice durante le correlazione.È possibile impostare BC su 0 (default), 1, 2 o 3, con i significati riportati di seguito.
0: Lineare (o con riempimento di zero) - I pixel oltre i limiti della matrice sono trattati come zeri.
1: Circolare (o disposizione periodica) - I pixel oltre i limiti della matrice sono trattati come una continuazione periodica della matrice.
2: Riflesso - I pixel oltre i limiti della matrice sono trattati come se fossero riflessi da specchi lungo i bordi della matrice.
3: Continuazione - I pixel oltre i limiti della matrice sono considerati come ultimo valore all'interno della matrice.
OV (facoltativo) è un valore intero o un vettore di due interi che determina se viene applicato uno spostamento del secondo segnale. Si utilizza per specificare la sovrapposizione di riga e colonna (correlazione di fase) iniziale della matrice del kernel K con la matrice del segnale di input S. Il primo elemento del vettore specifica la sovrapposizione di riga e il secondo specifica la sovrapposizione di colonna.
La sovrapposizione minima non può essere minore di 1 e la sovrapposizione massima non può essere maggiore delle dimensioni del kernel.
Per una correlazione di fase zero, la sovrapposizione deve essere definita in modo tale che, presumendo che il kernel sia una matrice dispari, l'origine del kernel si trovi al centro del kernel. Per un caso come questo i due parametri di sovrapposizione devono essere impostati rispettivamente sul numero di righe e sul numero di colonne del kernel meno la rispettiva metà.
Per la correlazione incrociata monodimensionale, la sovrapposizione di riga è impostata su 1.
Per la correlazione incrociata bidimensionale, la sovrapposizione di default è quella riportata di seguito.
Row_overlap = K_rows − K_rows/2
Column_overlap = K_columns − K_columns/2