Springe zum Inhalt Informatikonline.net Logo

Faltung und Kreuzkorrelation

Copyright: Sebastian Tilders
Lizenz: GPL-v3

Beschreibung:
convolute(...) führt für rev = True eine diskrete Faltung und für rev = False eine Kreuzkorrelation durch.

#### Copyright: Sebastian Tilders
#### License: GPL-v3 (https://www.gnu.org/licenses/gpl-3.0.en.html)
def extendAndReverseList(l1, l2):
    for i in range(2):
        l2.reverse();
        for i in range(len(l1)-1):
            l2.append(0);

def convolute(list1, list2, rev = True):
    if rev is True:
        list1.reverse();
    extendAndReverseList(list1,list2);
    res = [];
    for i in range(len(list2)-len(list1)+1):
        sum = 0;
        for j in range(len(list1)):
            sum += list1[j] * list2[j];
        res.append(sum);
        list2.pop(0);
    return res;