Skip to content
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

interpolator/decimator blocks #67

Closed
Tracked by #46
ivan-cukic opened this issue May 17, 2023 · 0 comments · Fixed by fair-acc/gnuradio4#141
Closed
Tracked by #46

interpolator/decimator blocks #67

ivan-cukic opened this issue May 17, 2023 · 0 comments · Fixed by fair-acc/gnuradio4#141
Assignees

Comments

@ivan-cukic
Copy link
Contributor

ivan-cukic commented May 17, 2023

Interpolator/decimating functionality:

struct node { // [..]
    constexpr static tag_propagation_policy_t  tag_policy = tag_propagation_policy_t::TPP_ALL_TO_ALL;
    A<uint64_t, "numerator", Doc<"add some doc">> numerator = 1_UZ;
    A<uint64_t, "denumerator", Doc<"add some doc">> denumerator = 1_UZ;
    A<uint64_t, "stride", Doc<"add some doc">> stride = 1_UZ;
  // [..]
};
// [..]
ENABLE_REFLECTION_FOR_TEMPLATE_FULL((typename T, typename... Arguments), (fair::graph::node<T, Arguments...>), numerator, denumerator, stride, unique_name, name, meta_information);

std::size_t samples_to_process = 0; -> number input samples
std::size_t number_output_samples = out::available()...

enforce usage of process_bulk(.... )
Need to adjust input_spans and writers_tuple sizes and to respect the required ratio:
In case requested_work is smaller than minimum required input samples -> round up to the next compatible value that is still consistent with the required ration and available output buffer space.

Notes:

  • computation of outgoing "samp_rate" depends on num, den and stride -> helper function to be executed in settings forward/user-block impl

Related PRs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: QA-Accepted/Merged (∞)
Development

Successfully merging a pull request may close this issue.

3 participants