GNU Radio's DPD Package
MP_model_PA_impl.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2020 Alekh Gupta
4  *
5  * SPDX-License-Identifier: GPL-3.0-or-later
6  */
7 
8 #ifndef INCLUDED_DPD_MP_MODEL_PA_IMPL_H
9 #define INCLUDED_DPD_MP_MODEL_PA_IMPL_H
10 
11 #include <dpd/MP_model_PA.h>
12 #include <math.h>
13 #include <algorithm>
14 #include <armadillo>
15 using std::vector;
16 using namespace arma;
17 
18 namespace gr {
19 namespace dpd {
20 
22 {
23 private:
24  // No. of channels or order of PA model
25  int K_a;
26  // No. of taps or memory-depth
27  int L_a;
28  std::string Mode_val;
29  cx_fmat coeff;
30 
31 public:
32  MP_model_PA_impl(int Order,
33  int Mem_Depth,
34  std::string Mode,
35  const std::vector<gr_complex>& Coeff);
37 
38  // Where all the action or processing really happens
39  int work(int noutput_items,
40  gr_vector_const_void_star& input_items,
41  gr_vector_void_star& output_items);
42  // Copies the GRC block coefficients parameters into class variable coeff
43  void initialise_Coefficients(const std::vector<gr_complex>& Coeff);
44  // Generates a shift-structured MP model based vector
45  void gen_MP_vector(
46  const gr_complex* in, int item, int K_a, int L_a, cx_fcolvec& MP_vector);
47 };
48 
49 } // namespace dpd
50 } // namespace gr
51 
52 #endif /* INCLUDED_DPD_MP_MODEL_PA_IMPL_H */
Definition: gain_phase_calibrate.h:14
Definition: MP_model_PA_impl.h:21
Implementation of Memory Polynomial model based Power Amplifier. (Complex input, Complex output) ...
Definition: MP_model_PA.h:53