diff --git a/bench/cpu/benchmark.cc b/bench/cpu/benchmark.cc index 3f1de2d..d450fba 100644 --- a/bench/cpu/benchmark.cc +++ b/bench/cpu/benchmark.cc @@ -17,28 +17,28 @@ BENCHMARK(BM_map_bpsk); static void BM_demap_bpsk(benchmark::State& state) { std::vector bpsk = { - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i) + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 } }; for (auto _ : state) { @@ -50,29 +50,29 @@ BENCHMARK(BM_demap_bpsk); static void BM_demap_bpsk_diff(benchmark::State& state) { std::vector bpsk = { - (-SQRT2_2 + SQRT2_2i), // last SOF symbol - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i) + { -SQRT2_2, SQRT2_2 }, // last SOF symbol + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 } }; for (auto _ : state) { @@ -84,28 +84,28 @@ BENCHMARK(BM_demap_bpsk_diff); static void BM_derotate_bpsk(benchmark::State& state) { std::vector pi2_bpsk = { - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i) + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 } }; std::vector bpsk(64); @@ -120,10 +120,10 @@ static void BM_pl_descrambler(benchmark::State& state) // Vector with arbitrary QPSK symbols and max length int nsyms = MAX_PLFRAME_PAYLOAD; std::vector qpsk_syms(nsyms); - constexpr gr_complex qpsk_lut[4] = { (+SQRT2_2 + SQRT2_2i), - (-SQRT2_2 + SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), - (+SQRT2_2 - SQRT2_2i) }; + constexpr gr_complex qpsk_lut[4] = { { SQRT2_2, SQRT2_2 }, + { -SQRT2_2, SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 } }; for (int i = 0; i < nsyms; i++) { qpsk_syms[i] = qpsk_lut[i % 4]; } diff --git a/lib/pi2_bpsk.cc b/lib/pi2_bpsk.cc index 3691a3d..a3d3aaf 100644 --- a/lib/pi2_bpsk.cc +++ b/lib/pi2_bpsk.cc @@ -23,13 +23,13 @@ void map_bpsk(uint64_t code, gr_complex* out, unsigned int N) constexpr gr_complex pi2_bpsk_map[2][2] = { // even index here (odd index mapping from the standard) { - (SQRT2_2 + SQRT2_2i), // bit 0 - (-SQRT2_2 - SQRT2_2i) // bit 1 + { SQRT2_2, SQRT2_2 }, // bit 0 + { -SQRT2_2, -SQRT2_2 } // bit 1 }, // odd index here (even index mapping from the standard) { - (-SQRT2_2 + SQRT2_2i), // bit 0 - (SQRT2_2 - SQRT2_2i) // bit 1 + { -SQRT2_2, SQRT2_2 }, // bit 0 + { SQRT2_2, -SQRT2_2 } // bit 1 } }; @@ -55,8 +55,8 @@ uint64_t demap_bpsk(const gr_complex* in, unsigned int N) * rotated pi/2 BPSK symbol. */ constexpr gr_complex rot[2] = { - (SQRT2_2 - SQRT2_2i), // rotation factor for even indexes - (-SQRT2_2 - SQRT2_2i) // rotation factor for odd indexes + { SQRT2_2, -SQRT2_2 }, // rotation factor for even indexes + { -SQRT2_2, -SQRT2_2 } // rotation factor for odd indexes }; if (N > 64) { @@ -182,8 +182,8 @@ void derotate_bpsk(const gr_complex* in, float* out, unsigned int N) { // Refer to the notes in the implementation of demap_bpsk. constexpr gr_complex rot[2] = { - (SQRT2_2 - SQRT2_2i), // rotation factor for even indexes - (-SQRT2_2 - SQRT2_2i) // rotation factor for odd indexes + { SQRT2_2, -SQRT2_2 }, // rotation factor for even indexes + { -SQRT2_2, -SQRT2_2 } // rotation factor for odd indexes }; if (N > 64) { diff --git a/lib/pl_defs.h b/lib/pl_defs.h index 00f762d..e9ceab6 100644 --- a/lib/pl_defs.h +++ b/lib/pl_defs.h @@ -30,7 +30,6 @@ // Math macros #define SQRT2_2 0.7071067811865476 -#define SQRT2_2i 0.7071067811865476j namespace gr { namespace dvbs2rx { diff --git a/lib/pl_frame_sync.cc b/lib/pl_frame_sync.cc index f078d48..df9047e 100644 --- a/lib/pl_frame_sync.cc +++ b/lib/pl_frame_sync.cc @@ -36,15 +36,18 @@ frame_sync::frame_sync(int debug_level, uint8_t unlock_thresh) { /* SOF and PLSC matched filter (correlator) taps: the folded (or reversed) * version of the target SOF and PLSC symbols */ - d_sof_taps = { (-1.0j), (-1.0j), (-1.0j), (-1.0j), (+1.0j), (+1.0j), (+1.0j), - (+1.0j), (-1.0j), (+1.0j), (+1.0j), (+1.0j), (-1.0j), (+1.0j), - (+1.0j), (-1.0j), (-1.0j), (+1.0j), (-1.0j), (-1.0j), (+1.0j), - (-1.0j), (+1.0j), (+1.0j), (-1.0j) }; - d_plsc_taps = { (-1.0j), (+1.0j), (+1.0j), (-1.0j), (-1.0j), (-1.0j), (+1.0j), - (-1.0j), (-1.0j), (+1.0j), (+1.0j), (+1.0j), (+1.0j), (+1.0j), - (-1.0j), (-1.0j), (-1.0j), (-1.0j), (+1.0j), (+1.0j), (-1.0j), - (+1.0j), (+1.0j), (-1.0j), (+1.0j), (-1.0j), (+1.0j), (-1.0j), - (+1.0j), (+1.0j), (-1.0j), (-1.0j) }; + d_sof_taps = { { 0, -1.0 }, { 0, -1.0 }, { 0, -1.0 }, { 0, -1.0 }, { 0, 1.0 }, + { 0, 1.0 }, { 0, 1.0 }, { 0, 1.0 }, { 0, -1.0 }, { 0, 1.0 }, + { 0, 1.0 }, { 0, 1.0 }, { 0, -1.0 }, { 0, 1.0 }, { 0, 1.0 }, + { 0, -1.0 }, { 0, -1.0 }, { 0, 1.0 }, { 0, -1.0 }, { 0, -1.0 }, + { 0, 1.0 }, { 0, -1.0 }, { 0, 1.0 }, { 0, 1.0 }, { 0, -1.0 } }; + d_plsc_taps = { { 0, -1.0 }, { 0, 1.0 }, { 0, 1.0 }, { 0, -1.0 }, { 0, -1.0 }, + { 0, -1.0 }, { 0, 1.0 }, { 0, -1.0 }, { 0, -1.0 }, { 0, 1.0 }, + { 0, 1.0 }, { 0, 1.0 }, { 0, 1.0 }, { 0, 1.0 }, { 0, -1.0 }, + { 0, -1.0 }, { 0, -1.0 }, { 0, -1.0 }, { 0, 1.0 }, { 0, 1.0 }, + { 0, -1.0 }, { 0, 1.0 }, { 0, 1.0 }, { 0, -1.0 }, { 0, 1.0 }, + { 0, -1.0 }, { 0, 1.0 }, { 0, -1.0 }, { 0, 1.0 }, { 0, 1.0 }, + { 0, -1.0 }, { 0, -1.0 } }; std::reverse(d_sof_taps.begin(), d_sof_taps.end()); std::reverse(d_plsc_taps.begin(), d_plsc_taps.end()); assert(d_sof_taps.size() == SOF_CORR_LEN); diff --git a/lib/qa_pi2_bpsk.cc b/lib/qa_pi2_bpsk.cc index d3c25fd..45e0244 100644 --- a/lib/qa_pi2_bpsk.cc +++ b/lib/qa_pi2_bpsk.cc @@ -20,15 +20,15 @@ BOOST_AUTO_TEST_CASE(test_sof_map_demap) map_bpsk(sof_big_endian, sof_bpsk.data(), SOF_LEN); std::vector expected = { - (+SQRT2_2 + SQRT2_2i), (+SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (-SQRT2_2 + SQRT2_2i), (+SQRT2_2 + SQRT2_2i), (-SQRT2_2 + SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (+SQRT2_2 - SQRT2_2i), (+SQRT2_2 + SQRT2_2i), - (+SQRT2_2 - SQRT2_2i), (+SQRT2_2 + SQRT2_2i), (-SQRT2_2 + SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (-SQRT2_2 + SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (+SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (-SQRT2_2 + SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (-SQRT2_2 + SQRT2_2i), (+SQRT2_2 + SQRT2_2i), - (-SQRT2_2 + SQRT2_2i), (+SQRT2_2 + SQRT2_2i), (-SQRT2_2 + SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (-SQRT2_2 + SQRT2_2i) + { SQRT2_2, SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, SQRT2_2 }, { SQRT2_2, SQRT2_2 }, { -SQRT2_2, SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { SQRT2_2, SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { SQRT2_2, SQRT2_2 }, { -SQRT2_2, SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { -SQRT2_2, SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { -SQRT2_2, SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { -SQRT2_2, SQRT2_2 }, { SQRT2_2, SQRT2_2 }, + { -SQRT2_2, SQRT2_2 }, { SQRT2_2, SQRT2_2 }, { -SQRT2_2, SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { -SQRT2_2, SQRT2_2 } }; BOOST_CHECK_EQUAL_COLLECTIONS( @@ -41,10 +41,10 @@ BOOST_AUTO_TEST_CASE(test_sof_map_demap) BOOST_AUTO_TEST_CASE(test_pi2bpsk_to_bpsk) { // Binary sequence: 0, 0, 1, 1 - std::vector pi2_bpsk_syms = { (SQRT2_2 + SQRT2_2i), - (-SQRT2_2 + SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i) }; + std::vector pi2_bpsk_syms = { { SQRT2_2, SQRT2_2 }, + { -SQRT2_2, SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 } }; std::vector expected_bpsk_syms = { +1, +1, -1, -1 }; std::vector out_bpsk_syms(4); derotate_bpsk(pi2_bpsk_syms.data(), out_bpsk_syms.data(), pi2_bpsk_syms.size()); @@ -62,7 +62,7 @@ BOOST_AUTO_TEST_CASE(test_mapping_range) map_bpsk(0x8000000000000000, bpsk.data(), 1); // Expect the second element to remain null - std::vector expected = { (-SQRT2_2 - SQRT2_2i), 0 }; + std::vector expected = { { -SQRT2_2, -SQRT2_2 }, 0 }; BOOST_CHECK_EQUAL_COLLECTIONS( bpsk.begin(), bpsk.end(), expected.begin(), expected.end()); @@ -86,29 +86,29 @@ BOOST_AUTO_TEST_CASE(test_demapping_range) // symbols mapped from an all-ones bit sequence. This configuration // (including the last SOF symbol) allows for differential demapping. std::vector symbols = { - (-SQRT2_2 + SQRT2_2i), // last SOF symbol - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), - (-SQRT2_2 - SQRT2_2i), (SQRT2_2 - SQRT2_2i), (-SQRT2_2 - SQRT2_2i), - (SQRT2_2 - SQRT2_2i) + { -SQRT2_2, SQRT2_2 }, // last SOF symbol + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, + { -SQRT2_2, -SQRT2_2 }, { SQRT2_2, -SQRT2_2 }, { -SQRT2_2, -SQRT2_2 }, + { SQRT2_2, -SQRT2_2 } }; // Demap a single symbol: diff --git a/lib/qa_pl_frame_sync.cc b/lib/qa_pl_frame_sync.cc index d269820..3c9566b 100644 --- a/lib/qa_pl_frame_sync.cc +++ b/lib/qa_pl_frame_sync.cc @@ -138,7 +138,7 @@ BOOST_DATA_TEST_CASE_F(F, test_sof_detection, bdata::xrange(n_plsc_codewords), p // Process one more symbol (e.g., the first payload symbol). The // almost-locked status should remain, but the symbol should not lead to a // cross-correlation peak. - is_peak = p_frame_sync->step(1j); + is_peak = p_frame_sync->step({ 0, 1.0 }); BOOST_CHECK_EQUAL(is_peak, false); BOOST_CHECK_EQUAL(p_frame_sync->is_locked_or_almost(), true); @@ -184,7 +184,7 @@ BOOST_DATA_TEST_CASE_F(F, // Process one more symbol (e.g., the first payload symbol). It should not // lead to a cross-correlation peak. - is_peak = p_frame_sync->step(1j); + is_peak = p_frame_sync->step({ 0, 1.0 }); BOOST_CHECK_EQUAL(is_peak, false); } @@ -247,7 +247,7 @@ BOOST_FIXTURE_TEST_CASE(test_locking_unlocking, F) // At this point, the frame synchronizer expects the third PLHEADER. If the // PLHEADER doesn't come, and if the unlock_thresh parameter is set to 1, // the frame synchronizer should unlock. - volk::vector non_plheader(PLHEADER_LEN, 1j); + volk::vector non_plheader(PLHEADER_LEN, { 0, 1.0 }); for (int i = 0; i < PLHEADER_LEN; i++) p_frame_sync->step(non_plheader[i]); diff --git a/lib/qa_pl_freq_sync.cc b/lib/qa_pl_freq_sync.cc index 86d9d67..a4d8f29 100644 --- a/lib/qa_pl_freq_sync.cc +++ b/lib/qa_pl_freq_sync.cc @@ -253,7 +253,7 @@ BOOST_DATA_TEST_CASE_F( { (-M_PI / 2), (-3 * M_PI / 4), (M_PI / 2), (3 * M_PI / 4), (M_PI - 1e-5) }), phase_0) { - volk::vector pilot_blk(PILOT_BLK_LEN, (+SQRT2_2 + SQRT2_2i)); + volk::vector pilot_blk(PILOT_BLK_LEN, { SQRT2_2, SQRT2_2 }); // Add frequency offset and a non-zero initial phase volk::vector rotated(PILOT_BLK_LEN); @@ -287,7 +287,7 @@ BOOST_DATA_TEST_CASE_F( uint8_t n_pilot_blks = 3; uint32_t plframe_len = PLHEADER_LEN + (n_slots * SLOT_LEN) + (n_pilot_blks * PILOT_BLK_LEN); - volk::vector pilot_blk(PILOT_BLK_LEN, (+SQRT2_2 + SQRT2_2i)); + volk::vector pilot_blk(PILOT_BLK_LEN, { SQRT2_2, SQRT2_2 }); volk::vector plframe(plframe_len); memcpy(plframe.data(), plheader.data(), PLHEADER_LEN * sizeof(gr_complex)); for (int i = 0; i < n_pilot_blks; i++) {