예제 #1
0
            start = time.time()
            for i in range(kaisu):
                message = Message(K)
                message.MakeMessage()

                encoder0 = Encoder(K, N, message.message, path, False)
                encoder0.MakeCodeworde()

                bsc = BSC(P)
                bsc.input = encoder0.codeword
                bsc.Transmission()
                output = bsc.output

                decoder0 = Decoder(K, N, output, path, False)
                decoder0.DecodeMessage(P)

                error = np.bitwise_xor(message.message, decoder0.hat_message)
                eroorcount += np.count_nonzero(error)

                frameerrorcout += 0 if np.count_nonzero(error) == 0 else 1
                print(i, "/", kaisu, "回目, ",
                      0 if np.count_nonzero(error) == 0 else 1)
            end = time.time()

            print("送信:", K * kaisu, "復号誤り:", eroorcount)
            print("FER: ", frameerrorcout / kaisu)
            print("BER: ", eroorcount / (K * kaisu))
            print("実行時間: ", end - start)

    if len(sys.argv) == 1:
예제 #2
0
            start = time.time()
            for i in range(kaisu):
                message = Message(K)
                message.MakeMessage()

                encoder0 = Encoder(K, N, message.message, path, False)
                encoder0.MakeCodeworde()

                bec = BEC(e)
                bec.input = encoder0.codeword
                bec.Transmission()
                output = bec.output

                decoder0 = Decoder(K, N, output, "BEC", path, False)
                decoder0.DecodeMessage(e)

                error = np.bitwise_xor(message.message, decoder0.hat_message)
                eroorcount += np.count_nonzero(error)

                frameerrorcout += 0 if np.count_nonzero(error) == 0 else 1
                print(i, "/", kaisu, "回目, ",
                      0 if np.count_nonzero(error) == 0 else 1)
            end = time.time()

            print("送信:", K * kaisu, "復号誤り:", eroorcount)
            print("FER: ", frameerrorcout / kaisu)
            print("BER: ", eroorcount / (K * kaisu))
            print("実行時間: ", end - start)

    if len(sys.argv) == 1: