예제 #1
0
def gfdm_demodulate_block(R, H, K, M, L):
    D_0 = gfdm_transform_input_to_fd(R)
    D_1 = gfdm_extract_subcarriers(D_0, K, M, L)
    D_2 = gfdm_filter_subcarriers(D_1, H, K, M, L)
    D_3 = gfdm_superposition_subcarriers(D_2, K, M, L)
    D_4 = gfdm_transform_subcarriers_to_tdomain(D_3, K, M, L)
    return get_data_stream(D_4)
예제 #2
0
def gfdm_demodulate_block(R, H, K, M, L):
    D_0 = gfdm_transform_input_to_fd(R)
    D_1 = gfdm_extract_subcarriers(D_0, K, M, L)
    D_2 = gfdm_filter_subcarriers(D_1, H, K, M, L)
    D_3 = gfdm_superposition_subcarriers(D_2, K, M, L)
    D_4 = gfdm_transform_subcarriers_to_tdomain(D_3, K, M, L)
    return get_data_stream(D_4)
예제 #3
0
def gfdm_demodulate_block_sic(R, H, K, M, L, J=0):
    H_sic = gfdm_get_ic_f_taps(H / float(K), M)
    D_0 = gfdm_transform_input_to_fd(R)
    D_1 = gfdm_extract_subcarriers(D_0, K, M, L)
    D_2 = gfdm_filter_subcarriers(D_1, H, K, M, L)
    D_3 = gfdm_superposition_subcarriers(D_2, K, M, L)
    D_4 = gfdm_transform_subcarriers_to_tdomain(D_3, K, M, L)
    for j in xrange(J):
        D_5 = gfdm_map_subcarriers(D_4, K, M, L)
        D_6 = gfdm_remove_sc_interference(D_3, D_5, K, M, L, H_sic)
        D_4 = gfdm_transform_subcarriers_to_tdomain(D_6, K, M, L)
    return get_data_stream(D_4)
예제 #4
0
def gfdm_demodulate_block_sic(R, H, K, M, L, J=0):
    H_sic = gfdm_get_ic_f_taps(H/float(K), M)
    D_0 = gfdm_transform_input_to_fd(R)
    D_1 = gfdm_extract_subcarriers(D_0, K, M, L)
    D_2 = gfdm_filter_subcarriers(D_1, H, K, M, L)
    D_3 = gfdm_superposition_subcarriers(D_2, K, M, L)
    D_4 = gfdm_transform_subcarriers_to_tdomain(D_3, K, M, L)
    for j in xrange(J):
        print 'IC iter', j
        D_5 = gfdm_map_subcarriers(D_4, K, M, L)
        D_6 = gfdm_remove_sc_interference(D_3, D_5, K, M, L, H_sic)
        D_4 = gfdm_transform_subcarriers_to_tdomain(D_6, K, M, L)
    return get_data_stream(D_4)