nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
qam.hpp
Go to the documentation of this file.
1
3// toolboxes/comm/include/nk/comm/modulation/qam.hpp
4//
5// PAM / rectangular QAM modulators + demodulators, plus modnorm.
6
7#pragma once
8
9#include <memory_resource>
10#include <nk/value/value.hpp>
11
12#include <string>
13
14namespace nk::comm {
15
18
19
34Value pammod(const Value &x, int M, double ini_phase,
35 const std::string &symbol_order,
36 std::pmr::memory_resource *mr = nullptr);
37
48Value pamdemod(const Value &y, int M, double ini_phase,
49 const std::string &symbol_order,
50 std::pmr::memory_resource *mr = nullptr);
51
67Value qammod(const Value &x, int M, const std::string &symbol_order,
68 bool unit_power,
69 std::pmr::memory_resource *mr = nullptr);
70
82Value qamdemod(const Value &y, int M, const std::string &symbol_order,
83 bool unit_power,
84 std::pmr::memory_resource *mr = nullptr);
85
100Value modnorm(const Value &ref, const std::string &type, double target,
101 std::pmr::memory_resource *mr = nullptr);
102
103
105} // namespace nk::comm
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value modnorm(const Value &ref, const std::string &type, double target, std::pmr::memory_resource *mr=nullptr)
Constellation normalisation factor (factor = modnorm(ref, type, target)).
Value pammod(const Value &x, int M, double ini_phase, const std::string &symbol_order, std::pmr::memory_resource *mr=nullptr)
M-ary PAM modulator (y = pammod(x, M, ini_phase, symbol_order)).
Value qamdemod(const Value &y, int M, const std::string &symbol_order, bool unit_power, std::pmr::memory_resource *mr=nullptr)
Rectangular M-ary QAM demodulator (x = qamdemod(y, M, symbol_order, unit_power)).
Value pamdemod(const Value &y, int M, double ini_phase, const std::string &symbol_order, std::pmr::memory_resource *mr=nullptr)
M-ary PAM demodulator — nearest-amplitude decision (x = pamdemod(y, M, ini_phase, symbol_order)).
Value qammod(const Value &x, int M, const std::string &symbol_order, bool unit_power, std::pmr::memory_resource *mr=nullptr)
Rectangular M-ary QAM modulator (y = qammod(x, M, symbol_order, unit_power)).