RENEWLab
1.1.0
RENEW project
|
Go to the documentation of this file.
34 static inline double computeAbs(std::complex<double>
x) {
return std::abs(
x); }
39 return std::pow(std::abs(
x), 2);
62 static std::vector<std::complex<float>>
modulate(std::vector<uint8_t>,
int);
64 size_t fftSize,
size_t DataScNum,
66 static std::vector<size_t>
getNullSc(
size_t fftSize,
size_t DataScNum);
68 size_t fftSize,
size_t DataScNum,
71 size_t fftSize,
size_t DataScNum,
73 static std::vector<std::complex<float>>
FFT(
75 static std::vector<std::complex<float>>
IFFT(
76 const std::vector<std::complex<float>>&,
int,
float scale = 0.5,
77 bool normalize =
true);
85 static std::vector<T>
convolve(std::vector<T>
const& f,
86 std::vector<T>
const&
g) {
91 int const nf = f.size();
92 int const ng =
g.size();
93 int const n =
nf + ng - 1;
94 std::vector<T> out(n, 0);
95 for (
auto i(0);
i < n; ++
i) {
96 int const jmn = (
i >= ng - 1) ?
i - (ng - 1) : 0;
97 int const jmx = (
i <
nf - 1) ?
i :
nf - 1;
98 for (
auto j(jmn);
j <= jmx; ++
j) {
99 out[
i] += f[
j] *
g[
i -
j];
105 static std::vector<std::complex<float>>
csign(
108 return (__builtin_parity(
i &
j) != 0 ? -1 : 1);
111 std::vector<std::complex<float>>
const&, std::vector<float>
const&,
115 template <
typename T>
116 static T
findTone(std::vector<T>
const&,
double,
double,
size_t,
117 const size_t delta = 10);
119 std::vector<float>
const&,
double,
double,
size_t,
120 const size_t delta = 10);
127 std::vector<float>
const&
g);
129 std::vector<int16_t>
const&
g);
131 static std::vector<int32_t>
abs2_avx(
134 std::vector<std::complex<float>>
const& f,
const int dly,
135 const bool conj =
true);
137 std::vector<std::complex<int16_t>>
const& f,
const int dly,
138 const bool conj =
true);
147 std::vector<std::complex<float>>
const&
g,
const bool conj);
150 std::vector<std::complex<int16_t>>
const&
g,
const bool conj);
type
Definition: iris_py.py:333
static std::vector< std::complex< float > > correlate_avx(std::vector< std::complex< float >> const &f, std::vector< std::complex< float >> const &g)
static std::vector< float > correlate_avx_s(std::vector< float > const &f, std::vector< float > const &g)
static int find_beacon(const std::vector< std::complex< float >> &iq)
Definition: comms-lib.cc:114
static float measureTone(std::vector< std::complex< float >> const &, std::vector< float > const &, double, double, size_t, const size_t delta=10)
Definition: comms-lib.cc:317
static std::vector< std::complex< float > > auto_corr_mult_avx(std::vector< std::complex< float >> const &f, const int dly, const bool conj=true)
@ LTE_ZADOFF_CHU
Definition: comms-lib.h:49
static std::vector< float > hannWindowFunction(size_t)
Definition: comms-lib.cc:272
ModulationOrder
Definition: comms-lib.h:55
static double computeAbs(std::complex< double > x)
Definition: comms-lib.h:34
SequenceType
Definition: comms-lib.h:45
for nf
Definition: iris_py.m:282
static std::vector< std::complex< float > > FFT(const std::vector< std::complex< float >> &, int)
Definition: comms-lib.cc:435
static int findLTS(const std::vector< std::complex< float >> &iq, int seqLen)
Definition: comms-lib.cc:28
@ LTS_SEQ
Definition: comms-lib.h:47
static std::vector< float > magnitudeFFT(std::vector< std::complex< float >> const &, std::vector< float > const &, size_t)
Definition: comms-lib.cc:244
@ QPSK
Definition: comms-lib.h:55
static T findTone(std::vector< T > const &, double, double, size_t, const size_t delta=10)
Definition: comms-lib.cc:299
@ QAM16
Definition: comms-lib.h:55
static std::vector< int16_t > correlate_avx_si(std::vector< int16_t > const &f, std::vector< int16_t > const &g)
@ HADAMARD
Definition: comms-lib.h:52
static constexpr size_t kDefaultPilotScOffset
Definition: comms-lib.h:32
static constexpr size_t kPilotSubcarrierSpacing
Definition: comms-lib.h:31
pilot
Definition: plt_simp.py:99
static std::vector< std::vector< float > > getSequence(size_t type, size_t seq_len=0)
Definition: comms-lib.cc:516
@ LTS_SEQ_F
Definition: comms-lib.h:48
Author(s) pyhton object array This array decribes Iris board or a collection of Iris boards that belong to the same entity E g
Definition: iris_py.m:3
for j
Definition: ofdm_mimo.m:301
static size_t find_pilot_seq(const std::vector< std::complex< float >> &iq, const std::vector< std::complex< float >> &pilot, size_t seqLen)
Definition: comms-lib.cc:87
@ STS_SEQ
Definition: comms-lib.h:46
for i
Definition: rl_ofdm_calib.m:121
static int hadamard2(int i, int j)
Definition: comms-lib.h:107
static std::vector< std::complex< float > > getPilotScValue(size_t fftSize, size_t DataScNum, size_t PilotScOffset=kDefaultPilotScOffset)
Definition: comms-lib.cc:359
static double computeSquare(double x)
Definition: comms-lib.h:41
static float find_max_abs(const std::vector< std::complex< float >> &in)
Definition: comms-lib.cc:233
@ GOLD_IFFT
Definition: comms-lib.h:51
static double computePower(std::complex< double > x)
Definition: comms-lib.h:38
Definition: comms-lib.h:43
static std::vector< std::complex< float > > csign(const std::vector< std::complex< float >> &iq)
Definition: comms-lib.cc:209
iq
Definition: find_lts.py:149
Maybe you need to transpose bits_matrix before reshaping it to a vector
Definition: syms2bits.m:62
static double windowFunctionPower(std::vector< float > const &)
Definition: comms-lib.cc:288
@ QAM64
Definition: comms-lib.h:55
static std::vector< std::complex< float > > IFFT(const std::vector< std::complex< float >> &, int, float scale=0.5, bool normalize=true)
Definition: comms-lib.cc:404
static std::vector< size_t > getDataSc(size_t fftSize, size_t DataScNum, size_t PilotScOffset=kDefaultPilotScOffset)
Definition: comms-lib.cc:324
static int find_beacon_avx(const std::vector< std::complex< float >> &iq, const std::vector< std::complex< float >> &seq)
static std::vector< float > abs2_avx(std::vector< std::complex< float >> const &f)
static std::vector< std::complex< float > > modulate(std::vector< uint8_t >, int)
Definition: comms-lib.cc:454
sample frequency in MHz x
Definition: getRxVec.m:86
static std::vector< std::complex< float > > complex_mult_avx(std::vector< std::complex< float >> const &f, std::vector< std::complex< float >> const &g, const bool conj)
static std::vector< size_t > getNullSc(size_t fftSize, size_t DataScNum)
Definition: comms-lib.cc:344
static std::vector< T > convolve(std::vector< T > const &f, std::vector< T > const &g)
Definition: comms-lib.h:85
@ LTE_ZADOFF_CHU_F
Definition: comms-lib.h:50
static std::vector< size_t > getPilotScIndex(size_t fftSize, size_t DataScNum, size_t PilotScOffset=kDefaultPilotScOffset)
Definition: comms-lib.cc:385