-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP Channel Estimation #8
Merged
Merged
Changes from 1 commit
Commits
Show all changes
35 commits
Select commit
Hold shift + click to select a range
8235f53
implement argument parsing for IQ stream
marenz2569 a513161
move current decoder to bit_stream_decoder
marenz2569 9ef1196
implement reading IQ and hard decision symbol mapper
marenz2569 5e91c93
uplink sequence burst detection
marenz2569 fe70e99
implement first version of synchronization of bursts. very unperforma…
marenz2569 a99c463
add parsing stub for supplementary llc pdu
marenz2569 109e26c
fix upper mac parsing logic. add lower mac parsing for Normal Uplink …
marenz2569 ce6949a
use std::function to abstract and delay processing of upper mac in up…
marenz2569 c64bdfd
implement StreamingOrderedOutputThreadPoolExecutor
marenz2569 00a8bd6
remove duplicate code
marenz2569 63cc74e
add example for all different tetra RCPC punctering schemes
marenz2569 3853c6b
Use different viterbi decoder
marenz2569 4a7b1e9
add test for viterbi decoder
marenz2569 ad2eade
remove old code
marenz2569 c87e0d8
fix memory accumalation
marenz2569 0760983
update to newer version of viterbi decoder library. use sse4.1
marenz2569 a8ec51c
streaming thread pool executor wait_lok instead of lock and less threads
marenz2569 ebf0998
clang-format. add pthread names
marenz2569 cb239fa
update flake.lock to 23.05
marenz2569 38e9308
implement LLC basic link pdus with fcs
marenz2569 31946c5
implement a crude way to stop program on CTRL-C or EOF
marenz2569 feba058
optimize conv for detection
marenz2569 5c9bed1
improve performance by a bit
marenz2569 2057a1b
add more performance improvements
marenz2569 722a1fa
Refactor lower mac coding
marenz2569 53830b8
precompute descrambling table
marenz2569 643fd8b
fix bug in thread pool executor
marenz2569 83f80cc
move to raw pointers in performance critical regions
marenz2569 2d34a8e
l2/lower_mac: use fixed size buffer for descrambler result
marenz2569 ec9e2ef
l2/lower_mac: use fixed size buffer for reed muller 3014 result
marenz2569 10f9181
l2/lower_mac: use fixed size buffer for deinterleaver result
marenz2569 80a9b32
utils/bit_vector: do less copying and more unsafe pointer handling. s…
marenz2569 e85e832
update debug print
marenz2569 633aa81
update debug print
marenz2569 1389d55
fix descrambling precomputation
marenz2569 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
#include <functional> | ||
#include <iostream> | ||
#include <vector> | ||
|
||
auto puncture(std::size_t num_bits, std::vector<int> P, std::function<int(int)> i_from_j) -> std::vector<int> { | ||
auto t = P.size() - 1; | ||
|
||
auto period = 8; | ||
|
||
std::vector<int> res(num_bits * 4, 0); | ||
|
||
for (auto j = 1; j <= res.size(); j++) { | ||
auto i = i_from_j(j); | ||
auto k = period * ((i - 1) / t) + P[i - t * ((i - 1) / t)]; | ||
if (k - 1 < res.size()) | ||
res[k - 1] = j; | ||
} | ||
|
||
return res; | ||
} | ||
|
||
auto print(std::vector<int> const& res) -> void { | ||
for (auto i = 0; i < res.size();) { | ||
auto j = i; | ||
std::cout << " "; | ||
for (; j < i + 16; j++) { | ||
std::cout << res[j] << " "; | ||
} | ||
std::cout << std::endl; | ||
i = j; | ||
} | ||
} | ||
|
||
auto main(int argc, char** argv) -> int { | ||
auto rate_2_3 = puncture(4, {0, 1, 2, 5}, [](int j) { return j; }); | ||
auto rate_1_3 = puncture(4, {0, 1, 2, 3, 5, 6, 7}, [](int j) { return j; }); | ||
auto rate_292_432 = puncture(11 * 4, {0, 1, 2, 5}, [](int j) { return j + (j - 1) / 65; }); | ||
auto rate_148_432 = puncture(3 * 4, {0, 1, 2, 3, 5, 6, 7}, [](int j) { return j + (j - 1) / 35; }); | ||
|
||
std::cout << "Rate 2/3:" << std::endl; | ||
print(rate_2_3); | ||
|
||
std::cout << "Rate 1/3:" << std::endl; | ||
print(rate_1_3); | ||
|
||
std::cout << "Rate 292/432:" << std::endl; | ||
print(rate_292_432); | ||
|
||
std::cout << "Rate 148/432:" << std::endl; | ||
print(rate_148_432); | ||
} |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pls keep it uniform
const std::vector<>&
orstd::vector<> const&