Esempio n. 1
0
def OC(Window_Type, percent, *args, **kwargs):
    # See: http://www.recordingblogs.com/sa/tabid/88/Default.aspx?topic=Overlap+correlation
    r = percent / 100
    N = 1024
    if kwargs == {}:
        if Window_Type == "coswind":
            dummy, w = Window.coswind(N)
        elif Window_Type == "gausswind":
            dummy, w = Window.gausswind(N)
        elif Window_Type == "gengausswind":
            if len(args) == 2:
                dummy, w = Window.gengausswind(N, args[1], args[2])
            else:
                raise TypeError("2 Adidional args are needed but not given")
        elif Window_Type == "genhamwind":
            if len(args) == 2:
                dummy, w = Window.genhamwind(N, args[1], args[2])
            else:
                raise TypeError("2 Adidional args are needed but not given")
        elif Window_Type == "hamwind":
            dummy, w = Window.hamwind(N)
        elif Window_Type == "hanwind":
            dummy, w = Window.hanwind(N)
        elif Window_Type == "partzwind":
            dummy, w = Window.partzwind(N)
        elif Window_Type == "rectwind":
            dummy, w = Window.rectwind(N)
        elif Window_Type == "triwind":
            dummy, w = Window.triwind(N)
        elif Window_Type == "Tukeywind":
            dummy, w = Window.Tukeywind(N)
    elif kwargs['WindowSet'] == 'window':
        w = Window_Type
    else:
        (dummy, w) = Window.hanwind(N)
    oc_num = []
    for idx in range(int(r * len(w))):
        oc_num = np.append(oc_num, w[idx] * w[idx + (1 - r) * len(w)])
    oc = oc_num.sum() / np.sum(w**2)
    return (oc)