コード例 #1
0
ファイル: PS3_viterbi.py プロジェクト: Edward-Wei/mit-courses
    print 'Testing without adding noise...'
    if (message == decoded).all() == True: 
        print 'Successfully decoded no-noise Test 0: congratulations!'
        print
    else:
        print 'Oops... error in decoding no-noise Test', i
        print 'Decoded as ', decoded
        print 'Correct is', message
        sys.exit(1)

    # second batch of test cases: different constraint lengths, generators
    nbits = 29
    message = numpy.random.random_integers(0,1,nbits)
    for (constraint_len, glist) in ((3, (7,5)), (4, (0xD,0xE))):
        i = i + 1
        print 'TEST', i
        d = ViterbiDecoder(constraint_len, glist)
        received = PS3_tests.convolutional_encoder(message, constraint_len, glist)
        decoded = numpy.array(d.decode(received, debug=True))
        if (message == decoded).all() == True: 
            print 'Successfully decoded no-noise Test', i, ': congratulations!'
            print
        else:
            print 'Oops... error in decoding no-noise Test', i
            print 'Decoded as', decoded
            print 'Correct is', message
            sys.exit(1)

    # now try some tests with noise
    PS3_tests.test_hard_metrics(ViterbiDecoder)
コード例 #2
0
    print 'Testing without adding noise...'
    if (message == decoded).all() == True: 
        print 'Successfully decoded no-noise Test 0: congratulations!'
        print
    else:
        print 'Oops... error in decoding no-noise Test', i
        print 'Decoded as ', decoded
        print 'Correct is', message
        sys.exit(1)

    # second batch of test cases: different constraint lengths, generators
    nbits = 29
    message = numpy.random.random_integers(0,1,nbits)
    for (constraint_len, glist) in ((3, (7,5)), (4, (0xD,0xE))):
        i = i + 1
        print 'TEST', i
        d = ViterbiDecoder(constraint_len, glist)
        received = PS3_tests.convolutional_encoder(message, constraint_len, glist)
        decoded = numpy.array(d.decode(received, debug=True))
        if (message == decoded).all() == True: 
            print 'Successfully decoded no-noise Test', i, ': congratulations!'
            print
        else:
            print 'Oops... error in decoding no-noise Test', i
            print 'Decoded as', decoded
            print 'Correct is', message
            sys.exit(1)

    # now try some tests with noise
    PS3_tests.test_hard_metrics(ViterbiDecoder)