GNU Radio's OWC Package
LED_Nonlinearity_impl.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/* gr-owc OOT module for optical wireless communications.
3 * gr-owc is compatible with GNU Radio v3.10
4 *
5 * Copyright 2024 Kunal Sangurmath from The Ubiquitous Communications and Networking(UCAN) Lab, University of Massachusetts, Boston.
6 *
7 * This is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 3, or (at your option)
10 * any later version.
11 *
12 * This software is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this software; see the file COPYING. If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street,
20 * Boston, MA 02110-1301, USA.
21 *
22 */
23
24#ifndef INCLUDED_OWC_LED_NONLINEARITY_IMPL_H
25#define INCLUDED_OWC_LED_NONLINEARITY_IMPL_H
26
28
29namespace gr {
30namespace owc {
31
33private:
34 float d_L;
35 float d_k;
36 float d_x0;
37
38public:
39 LED_Nonlinearity_impl(float L, float k, float x0);
41
42 void set_Maximum(float L) { d_L = L; }
43 float Maximum() { return d_L; }
44
45 void set_Steepness(float k) { d_k = k; }
46 float Steepness() { return d_k;}
47
48 void set_Inflextion_Point(float x0) { d_x0 = x0; }
49 float Inflextion_Point() { return d_x0;}
50
51 // Where all the action really happens
52 int work(int noutput_items, gr_vector_const_void_star &input_items,
53 gr_vector_void_star &output_items);
54};
55
56} // namespace owc
57} // namespace gr
58
59#endif /* INCLUDED_OWC_LED_NONLINEARITY_IMPL_H */
int work(int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
float Inflextion_Point()
Definition LED_Nonlinearity_impl.h:49
LED_Nonlinearity_impl(float L, float k, float x0)
float Maximum()
Definition LED_Nonlinearity_impl.h:43
void set_Maximum(float L)
Definition LED_Nonlinearity_impl.h:42
void set_Inflextion_Point(float x0)
Definition LED_Nonlinearity_impl.h:48
void set_Steepness(float k)
Definition LED_Nonlinearity_impl.h:45
float Steepness()
Definition LED_Nonlinearity_impl.h:46
<+description of block+>
Definition LED_Nonlinearity.h:38
Definition Hermitian_Symmetry_i_o_same_vec_size_cplus.h:31
Definition Hermitian_Symmetry_i_o_same_vec_size_cplus.h:30