nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
psk.hpp
Go to the documentation of this file.
1
3// toolboxes/comm/include/nk/comm/modulation/psk.hpp
4//
5// PSK / DPSK modulator and demodulator. Function-form (no
6// `comm.PSKModulator` System Object).
7
8#pragma once
9
10#include <memory_resource>
11#include <nk/value/value.hpp>
12
13#include <string>
14
15namespace nk::comm {
16
19
20
33Value pskmod(const Value &x, int M, double ini_phase,
34 const std::string &symbol_order,
35 std::pmr::memory_resource *mr = nullptr);
36
47Value pskdemod(const Value &y, int M, double ini_phase,
48 const std::string &symbol_order,
49 std::pmr::memory_resource *mr = nullptr);
50
65Value dpskmod(const Value &x, int M, double phase_rot,
66 const std::string &symbol_order,
67 std::pmr::memory_resource *mr = nullptr);
68
79Value dpskdemod(const Value &y, int M, double phase_rot,
80 const std::string &symbol_order,
81 std::pmr::memory_resource *mr = nullptr);
82
83
85} // namespace nk::comm
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value pskdemod(const Value &y, int M, double ini_phase, const std::string &symbol_order, std::pmr::memory_resource *mr=nullptr)
M-ary PSK demodulator — nearest-phase decision (x = pskdemod(y, M, ini_phase, symbol_order)).
Value pskmod(const Value &x, int M, double ini_phase, const std::string &symbol_order, std::pmr::memory_resource *mr=nullptr)
M-ary PSK modulator (y = pskmod(x, M, ini_phase, symbol_order)).
Value dpskdemod(const Value &y, int M, double phase_rot, const std::string &symbol_order, std::pmr::memory_resource *mr=nullptr)
Differential PSK demodulator — phase-difference decoder (x = dpskdemod(y, M, phase_rot,...
Value dpskmod(const Value &x, int M, double phase_rot, const std::string &symbol_order, std::pmr::memory_resource *mr=nullptr)
Differential PSK modulator (y = dpskmod(x, M, phase_rot, symbol_order)).