コード例 #1
0
    if args.code_rate == 2:
        generator_matrix = np.array([[args.enc1, args.enc2]])
    elif args.code_rate == 3:
        generator_matrix = np.array([[args.enc1, args.enc2, args.enc3]])

    elif args.code_rate == 4:
        generator_matrix = np.array(
            [[args.enc1, args.enc2, args.enc3, args.enc4]])
    else:
        print 'Not supported!'
        sys.exit()
    feedback = args.feedback

    print '[testing] Convolutional Code Encoder: G: ', generator_matrix, 'Feedback: ', feedback, 'M: ', M

    trellis1 = cc.Trellis(M, generator_matrix,
                          feedback=feedback)  # Create trellis data structure

    SNRS, test_sigmas = get_test_sigmas(args.snr_test_start, args.snr_test_end,
                                        args.snr_points)

    tic = time.time()
    tb_depth = args.tb

    def turbo_compute((idx, x)):
        '''
        Compute Turbo Decoding in 1 iterations for one SNR point.
        '''
        np.random.seed()
        message_bits = np.random.randint(0, 2, args.block_len)

        coded_bits = cc.conv_encode(message_bits, trellis1)
コード例 #2
0
    print args
    print '[ID]', args.id
    return args


if __name__ == '__main__':
    args = get_args()

    M = np.array([args.M
                  ])  # Number of delay elements in the convolutional encoder
    generator_matrix = np.array([[args.enc1, args.enc2]
                                 ])  # Encoder of convolutional encoder
    feedback = args.feedback  # Feedback of convolutional encoder

    print '[testing] Turbo Code Encoder: G: ', generator_matrix, 'Feedback: ', feedback, 'M: ', M
    trellis1 = cc.Trellis(M, generator_matrix, feedback=feedback)
    trellis2 = cc.Trellis(M, generator_matrix, feedback=feedback)
    interleaver = RandInterlv.RandInterlv(args.block_len, 0)
    p_array = interleaver.p_array
    codec = [trellis1, trellis2, interleaver]

    snrs, test_sigmas = get_test_sigmas(args.snr_test_start, args.snr_test_end,
                                        args.snr_points)
    turbo_res_ber, turbo_res_bler = [], []

    tic = time.time()

    def turbo_compute((idx, x)):
        '''
        Compute Turbo Decoding in 1 iterations for one SNR point.
        '''