GNU Radio's DPD Package
LMS_postdistorter_impl.h
Go to the documentation of this file.
1
/* -*- c++ -*- */
2
/*
3
* Copyright 2020 gr-dpd author.
4
*
5
* This is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation; either version 3, or (at your option)
8
* any later version.
9
*
10
* This software is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this software; see the file COPYING. If not, write to
17
* the Free Software Foundation, Inc., 51 Franklin Street,
18
* Boston, MA 02110-1301, USA.
19
*/
20
21
#ifndef INCLUDED_DPD_LMS_POSTDISTORTER_IMPL_H
22
#define INCLUDED_DPD_LMS_POSTDISTORTER_IMPL_H
23
24
#include <
dpd/LMS_postdistorter.h
>
25
#include <armadillo>
26
using namespace
arma
;
27
28
namespace
gr
{
29
namespace
dpd {
30
31
class
LMS_postdistorter_impl
:
public
LMS_postdistorter
32
{
33
private
:
34
std::vector<int> d_dpd_params;
35
int
K_a, K_b, L_a, L_b, M_b;
36
int
M;
37
int
d_iter_limit;
38
std::string str;
39
int
iteration;
40
41
cx_mat w_iMinus1;
42
const
int
sreg_len = 50;
43
gr_complexd sreg[50];
44
const
gr_complexd* ptr_sreg = sreg;
45
gr_complexd pa_input, error;
46
47
std::vector<gr_complexd> taps;
48
49
public
:
50
LMS_postdistorter_impl
(
const
std::vector<int>& dpd_params,
51
int
iter_limit,
52
std::string method);
53
~
LMS_postdistorter_impl
();
54
55
// Least Squares Estimation utility
56
cx_mat ls_estimation(cx_mat A, gr_complexd y);
57
// Genrates shift-structured GMP vector
58
void
gen_GMPvector(
const
gr_complexd*
const
in,
59
int
item,
60
int
K_a,
61
int
L_a,
62
int
K_b,
63
int
M_b,
64
int
L_b,
65
cx_colvec& GMP_vector);
66
// Where all the action really happens
67
int
work(
int
noutput_items,
68
gr_vector_const_void_star& input_items,
69
gr_vector_void_star& output_items);
70
};
71
72
}
// namespace dpd
73
}
// namespace gr
74
75
#endif
/* INCLUDED_DPD_LMS_POSTDISTORTER_IMPL_H */
LMS_postdistorter.h
arma
gr::dpd::LMS_postdistorter
LMS based Algorithm implemented to estimate the coefficients of the behaviorial model (GMP) of the Po...
Definition:
LMS_postdistorter.h:48
gr
Definition:
gain_phase_calibrate.h:14
gr::dpd::LMS_postdistorter_impl
Definition:
LMS_postdistorter_impl.h:31
lib
LMS_postdistorter_impl.h
Generated by
1.8.13