Πώς να εφαρμόσετε τη συνέλιξη στο MATLAB χωρίς τη χρήση της συνάρτησης

Κοντινό πλάνο της μαθηματικής εξίσωσης

Το MATLAB περιέχει μια προ-ενσωματωμένη συνάρτηση συνέλιξης.

Πίστωση εικόνας: Thinkstock Images/Comstock/Getty Images

Η συνέλιξη είναι μια μαθηματική πράξη που συνδυάζει δύο συναρτήσεις σε σχέση με την επικάλυψη μιας συνάρτησης καθώς μετατοπίζεται σε μια άλλη. Αν και το MATLAB περιέχει μια προκατασκευασμένη συνάρτηση συνέλιξης, είναι δυνατό να υπολογίσετε μόνοι σας το διακριτό ολοκλήρωμα συνέλιξης. Η διακριτή συνέλιξη δύο συναρτήσεων f και g ορίζεται ως το άθροισμα στην περιοχή από 0 έως j του f (j) * g (k-j).

Βήμα 1

Ορίστε δύο διανύσματα, τα f και g, που περιέχουν τις δύο συναρτήσεις που θέλετε να συνδυάσετε. Τα μήκη των f και g δεν χρειάζεται να είναι ίσα. Το μήκος του αποτελέσματος της συνέλιξης, k, θα είναι κατά ένα μικρότερο από το άθροισμα του μήκους των f και g:

Το βίντεο της ημέρας

m = μήκος (f); n = μήκος (g); k = m + n - 1;

Βήμα 2

Ορίστε το εύρος j στο οποίο θα συμβεί η συνέλιξη. Η τιμή του j είναι το εύρος όπου οι δείκτες των δύο συναρτήσεων που πρόκειται να συνεκλωθούν, f (j) και g (k+1-n), είναι νόμιμοι. Η τιμή του 1 που προστίθεται στο k είναι για να ληφθεί υπόψη το γεγονός ότι το MATLAB αρχίζει να ευρετηριάζει διανύσματα στο 1 αντί στο 0:

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

Βήμα 3

Προκατανομή χώρου για το αποτέλεσμα της συνέλιξης:

my_result = μηδενικά (k);

Βήμα 4

Γράψτε έναν βρόχο for για επανάληψη μέσω των τιμών του k:

για result_index = 1:k

Βήμα 5

Υπολογίστε τη συνέλιξη για όλες τις τιμές του j:

my_result (k) = άθροισμα (f(j) .* g (k-j+1));

Βήμα 6

Κλείστε τον βρόχο for με την εντολή "end".