GNU Radio's SATELLITES Package
manchester_sync_impl.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2023 Daniel Estevez <daniel@destevez.net>.
4  *
5  * This file is part of gr-satellites
6  *
7  * SPDX-License-Identifier: GPL-3.0-or-later
8  */
9 
10 #ifndef INCLUDED_SATELLITES_MANCHESTER_SYNC_IMPL_H
11 #define INCLUDED_SATELLITES_MANCHESTER_SYNC_IMPL_H
12 
14 #include <volk/volk_alloc.hh>
15 
16 namespace gr {
17 namespace satellites {
18 
19 template <class T>
21 {
22 private:
23  volk::vector<T> d_diffs_0;
24  volk::vector<T> d_diffs_1;
25  volk::vector<float> d_abs;
26 
27  static inline void compute_diff(T* out, const T* in, int block_size);
28  static inline void compute_abs(float* out, const T* in, int block_size);
29 
30 public:
31  manchester_sync_impl(int block_size);
33 
34  int work(int noutput_items,
35  gr_vector_const_void_star& input_items,
36  gr_vector_void_star& output_items) override;
37 };
38 
39 } // namespace satellites
40 } // namespace gr
41 
42 #endif /* INCLUDED_SATELLITES_MANCHESTER_SYNC_IMPL_H */
Definition: manchester_sync_impl.h:21
int work(int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) override
Detects phase of a Manchester clock and integrates symbols.
Definition: manchester_sync.h:37
Definition: ax100_decode.h:17