A Convolutional Encoder and Viterbi Decoder in Python/C++.
Project description
Convolutional Encoder and Viterbi Decoder
This project is a fork of https://github.com/xukmin/viterbi that introduces Python support, enabling effortless utilization of the Viterbi module within the Python environment.
Install
pip install viterbi
Usage
The following is a convolutional encoder with a constraint length of 7. The diagram indicates the binary values and polynomial form, indicating the left-most bit is the most-significant-bit (MSB). The generating polynomials are 1011011 and 1111001 can be alternatively expressed in octal as 133 and 171, respectively.
Expressed in code as:
from viterbi import Viterbi
dot11a_codec = Viterbi(7, [0o133, 0o171])
You can use the viterbi decoder like this:
from viterbi import Viterbi
dot11a_codec = Viterbi(7, [0o133, 0o171])
bits = [0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0]
output = dot11a_codec.encode(bits)
# [0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1]
dot11a_codec.decode(output)
# [0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0]
Using in C++
You can find the way to use the Viterbi decoder in C++ in the README of the original project.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for viterbi-0.0.3-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c15d161e12dffe3d8e7fb43ac77b0a121259836d5961473d3c20eb569e62b5e |
|
MD5 | 8ecb013379e705860efbe60678b7d7fe |
|
BLAKE2b-256 | 2dab0efbefe7b4f0b75fdb54973f3f1c7eb1ceff3301dd4b65d9f189113fd8f5 |
Hashes for viterbi-0.0.3-cp311-cp311-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d31fb7a5cd70bd8d1779882d19bbd7ba0e788e3c86212061f77ce6336c274ebc |
|
MD5 | f93e5e5372001cb0313dbc1ed2f975e7 |
|
BLAKE2b-256 | 7fcd601e15528612ccf93164db2ff76f933ec49edef6466635504336f95f9d59 |
Hashes for viterbi-0.0.3-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | baecf49582f563c611b3c026957b76139976b7df41ee8af9b086e5c760a7954f |
|
MD5 | 089a93c7fbe0db2efe8622b120471a0e |
|
BLAKE2b-256 | b9d60e3263f1fe783b9deee37b617bc5524ad942c0c0c5afd8a8ea7289c952b3 |
Hashes for viterbi-0.0.3-cp311-cp311-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b493b149d1f7be260deee9e093344e2a5b8fe9839b49671107fc607242d0e3f6 |
|
MD5 | d8b0adcc3aeabbbf52e4ed09bbbc369c |
|
BLAKE2b-256 | 58e1dea9dd47cecaca08720f2617d2a2493d043819980e840a264af3b9248747 |
Hashes for viterbi-0.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3277e08050fc3a81a77d5184e27844724082ab4a05190173c4d3546e799cf774 |
|
MD5 | ccb09fb39a9c6db18b3687cf64245043 |
|
BLAKE2b-256 | 76bb05a136f38e038944af2b0af26978e5e6dfb97acb8b1eef825d33c4d9cee8 |
Hashes for viterbi-0.0.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3571b8f2bc340c3d3f9487ab78a7863332b92e7c0ca8f3e592c5470469c7eb7f |
|
MD5 | f5d8004e7bc074e86f65b506472d3051 |
|
BLAKE2b-256 | 1c4de3a0accf3c603451e1040ccaef011cea0380e8d076b3243f71e04114fb76 |
Hashes for viterbi-0.0.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed816ba086fe0fa4c9701a903bb9a873ca5057a046835bec6edc6c33155da1c5 |
|
MD5 | 541817868d9cdf05c510b623b41b2076 |
|
BLAKE2b-256 | 93ef7b0e483481653edb557dc8ff5d8626d61ced286a434ea6efd8da8494bf5a |
Hashes for viterbi-0.0.3-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aac91ccd029325d0bc0f4e63e67e79e6b52574df907737a28b8ec578128f17d4 |
|
MD5 | f3a7f5cbef5d5f7425fd345afe22e932 |
|
BLAKE2b-256 | 834df23117ee511043c00c9ffd8a2c81c3076fa9357659102055de051a6c8c16 |
Hashes for viterbi-0.0.3-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db72f0d23e6d357299018c4a288db56ea2d053b14e0e2b8a5f382c649551e8e5 |
|
MD5 | ca5cf487a4e1316e06ba23513de2da7f |
|
BLAKE2b-256 | e4b59d2c3e2eaae160b190bcc35fda33da37f70062ae7f70942e867c44594d83 |
Hashes for viterbi-0.0.3-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c35ac6373bafcf2c140ff4283f3662ebd0601998ce84d40e118b0a35206311eb |
|
MD5 | 369c3045fce83322de7124002116d4b1 |
|
BLAKE2b-256 | 857d8025cd5b1fdd2ec34902b01e641029f29125bd0fddc6de4263465c450b90 |
Hashes for viterbi-0.0.3-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb5a278346e609903bb2e4a479f2e1581d1e19a5001ea639da58a4c14d9d8144 |
|
MD5 | 7bfa4a8f6952b5e5ce961ecb41cefbdf |
|
BLAKE2b-256 | c92370caa32fcd4cf3469b84ae051d6f9704ad23e8667195ad8c9b79a11930ff |
Hashes for viterbi-0.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c9268d467d3c9793d3635d941931954b7547f92a32fa411909987c41e97c38bb |
|
MD5 | 18aacbf89bc06207c88707c6afa2a5cc |
|
BLAKE2b-256 | 8a6f2c20c8a3c13007f762534a03279a5030d17d4fcd21bbbcf99bcc94b70d49 |
Hashes for viterbi-0.0.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0b38cfe94d20f3d3155ca056cba247357e7f2ae049fe72739f97007502cde2b |
|
MD5 | b40902051de2477dc5da8a37b5403b14 |
|
BLAKE2b-256 | a8272cc597817bb3689056b41614c39968161ff623ff186f3a1cff102f2acc78 |
Hashes for viterbi-0.0.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dcebc83bc6334831f4b8eed3a4207d81525220535e4dfe7d72abda250179b69b |
|
MD5 | 73adc41098140c1156f7c0039e389e27 |
|
BLAKE2b-256 | 9ce04f34c2cb870ce29bb175356936f281817fa1ef78cac12b9bcb5f9d534ebd |
Hashes for viterbi-0.0.3-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc598000c8d5ece63af7609a66380d9ef01788a40a8b72ac10aaa89147213dba |
|
MD5 | bdf2c621a66eb7115f15daf778016c5e |
|
BLAKE2b-256 | b2bc6c7099ef98fe29755ba7218ad4c7691402d533dfc40547f4e059c7c1366a |
Hashes for viterbi-0.0.3-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc6e1370827de6abe646e7df71a12234e08bcb63b528d4aa84d85986aa8a7502 |
|
MD5 | 6d36d090c7fb8666da4fac1213ae95ea |
|
BLAKE2b-256 | 00cbeae1d47f53367b39b414d6570dc9d2986ca0b2f729f2f97e03361856f94d |
Hashes for viterbi-0.0.3-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83f58867fb66232da94376970946981ef884ab64fa93ea61edf6cb4c00d387e8 |
|
MD5 | 883f24ea5aa993fc73f426706c96e896 |
|
BLAKE2b-256 | 2dccca4aac451c7954e1f212f55f765e34a688211524bcbe9f82a26e8ecd7644 |
Hashes for viterbi-0.0.3-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6894dca0dce4140ddf1cb5c81b91c96c11d825c47e3071469e9185cd634d4cd |
|
MD5 | f199a6113c8092aaa0ad77aafbc01c9a |
|
BLAKE2b-256 | 6b43407ffadbcc65a4320c2efb8ed3c277f97a4f88bc781400862a3788a9c6a9 |
Hashes for viterbi-0.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1af71cbd455ec2c4267f5f6aef6ebb7a48bcc443a55980423a958a05561d54dc |
|
MD5 | a1d40e7aa27cbd7b71007337d112ff89 |
|
BLAKE2b-256 | be7d5939278b957497642fc878c2838166d6dcc7be8ff67588829140db4d3fb6 |
Hashes for viterbi-0.0.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e682389a37c96a49e5ff9ad0ef3682f6aef90584d113be8e1ca3e140d2ca0af8 |
|
MD5 | 8392a0257a526ef279c87b8ae3de932f |
|
BLAKE2b-256 | 070680227fa81694e738cf488bc9fed200c4876f294f19d09ae2dbbf5dfed53f |
Hashes for viterbi-0.0.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a4ab80acfb1491e7308db019aaa4072ad2840ecac3d62b49e25492e32334b60 |
|
MD5 | a0ee7971fe482976653506e1cc98b551 |
|
BLAKE2b-256 | 434fb57f6227943b0ef3a9cb370713de9980ba20ddfbfd6d2b4cf8a266eebb2e |
Hashes for viterbi-0.0.3-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1591bdd81f12182c751b6cb3a8c27b36f6e894e8caaa7300697dc46641098f09 |
|
MD5 | 47bb43e62f53fe4dbb4f4c97e8512a52 |
|
BLAKE2b-256 | 5b4650a1524cc5cb2c8d86ec879a5cdc9f5eb1354e781aa528a17291cecb7c6a |
Hashes for viterbi-0.0.3-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 44d6b137e43771222ca7cd6af44e7bd4955ae6d28fa1bb2385574ea36bf945f0 |
|
MD5 | 848bdc8845bcc5955c0a351e25a768f0 |
|
BLAKE2b-256 | 020d6d9efd443b3256eb531624bb193243991c8be6b732c9e8ccca2006f9f800 |
Hashes for viterbi-0.0.3-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48d2b9586133ab238351d59f297d4fb57bf9527c5db37c1dcab3f065eaa88182 |
|
MD5 | 1d9307b2b885556a63cc64ce6b02c980 |
|
BLAKE2b-256 | 3c45cc7ea965ee1c7e941f309a1f325e22540e7a00c4ce67b869197215692aff |
Hashes for viterbi-0.0.3-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e08f30717b4bb5f718839ae1922efc03794014b62ac4a4ef0869c903b028b859 |
|
MD5 | 5109b4510f9a3a085ef088807e075ff4 |
|
BLAKE2b-256 | bae0730a5740e513ed477f2f82d8015a559fb148b88e689f9eb53fd6227be76b |
Hashes for viterbi-0.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 53b1ea21b3d74154aab70c9eb33a71c33dc807e0dc186b26591aa6a54690570c |
|
MD5 | 9f941ef5ab6f0f3b407ce787a9748a77 |
|
BLAKE2b-256 | 46158ea1745db99de11a4fdd402ccbaeddc80965ddafdb3d64cea97d4a18c7aa |
Hashes for viterbi-0.0.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db5be75c42154d129bb4429cdf615f2b7d32061c58a403a8079e69eccdf57884 |
|
MD5 | 6238d95c249a01e2859d1e1afa40f533 |
|
BLAKE2b-256 | 3f97ca798738ceb7199c63a2ae3b9420f9318d053504914c47f74c09efc1cf91 |
Hashes for viterbi-0.0.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 54af961520a2cd8e7fcbe7c73223bef0396c3b807f9936ba67419d9c4787899a |
|
MD5 | 19f45cfaad5ec777824f04dfcdff5d04 |
|
BLAKE2b-256 | c6fdc82bd36cd601cb4cd4e83a55fccacaa19c042bb7f239aaa1100d26de4a29 |
Hashes for viterbi-0.0.3-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5aaf09a356445585ceb55acab3125f79d784efa5a9675c3118640da8cb781175 |
|
MD5 | f61adb68a07b23a1adc1b107943c4beb |
|
BLAKE2b-256 | 70a37f57c9ed9b792c690876c0128fa1c6a43fd5f268254698229d2d6150431b |
Hashes for viterbi-0.0.3-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 450ae515b55157efb9148a0f62ba9f65705b272ffad2b9a112b0494b0cce3135 |
|
MD5 | 8e981a8935eee449cb267546bbcd1f73 |
|
BLAKE2b-256 | c1ae717e9c6fccdbea9dd454011cccdf8326e0442eed79cb4297e4d9feb13ed9 |
Hashes for viterbi-0.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6709ab498c366d4ac1968d85cffe2c7e0c3437b8843bd0a66ce074075de5c722 |
|
MD5 | 53be1f3960b4c7b471c167dff026fc0c |
|
BLAKE2b-256 | 8a900ef9cc15f20c9c897882d4e14b677165671be5ef2fc553e68f986fa19842 |
Hashes for viterbi-0.0.3-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95bcd02ce64d043748fa6a30430f09c6bf8e6a16c151d741a6e900305f70c00c |
|
MD5 | bf398aafa00201b4d9366a899dfe1b1c |
|
BLAKE2b-256 | fb3c95e0668acc9c451f86f58ad0193e4d921a32bc620179383196c63138858f |
Hashes for viterbi-0.0.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac27d84255ad88aa1f975559125d91693f8f32a95371d1486c9df627c43f3cb1 |
|
MD5 | e9951e53b3719259a7997f58471fc0f2 |
|
BLAKE2b-256 | 79caae42b23cb1b649c0de120fa31875e70120c271c674b347b12d3899e26b0f |
Hashes for viterbi-0.0.3-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f093ae8ce0d62c4c1fdb73666c0f59277f8a48f1dde67789ad861fad00381312 |
|
MD5 | 38105f037c33620223aa461e195e7991 |
|
BLAKE2b-256 | 5cdd53701e873b0dbb9a75340b857a5b58528c9a2ffb8736ef5b729bd60071ba |
Hashes for viterbi-0.0.3-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2bc529b34502535c6c55870a9868ec9a1587fea95fa9d5a00bfe01107ab5b2c3 |
|
MD5 | 5b7b083560fac43aecddfbc75c49eb7a |
|
BLAKE2b-256 | f25de75b93653a956664d5c32eb2a5f590b23e7c5b0695e57de7799d8080b05a |