def _proj_sub_FourierSSP(n, N, sublen=3):
    tot_len = (((2 * sublen) * N) + 1)
    FB = np.zeros((((2 * sublen) + 1), tot_len))
    FB[0:sublen, (sublen * n):(sublen * (n + 1))] = np.eye(sublen)
    FB[(sublen, (sublen * N))] = (1 / N)
    FB[(sublen + 1):, (tot_len - np.arange((sublen * (n + 1)), (sublen * n), (- 1)))] = np.eye(sublen)
    return FB.T
def _proj_sub_FourierSSP(n, N, sublen=3):
    tot_len = (((2 * sublen) * N) + 1)
    FB = np.zeros((((2 * sublen) + 1), tot_len))
    FB[0:sublen, (sublen * n):(sublen * (n + 1))] = np.eye(sublen)
    FB[(sublen, (sublen * N))] = (1 / N)
    FB[(sublen + 1):, (tot_len - np.arange((sublen * (n + 1)), (sublen * n), (- 1)))] = np.eye(sublen)
    return FB.T