nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
analog.hpp
Go to the documentation of this file.
1
3// toolboxes/comm/include/nk/comm/modulation/analog.hpp
4//
5// Analog modulators (PM / AM / FM / SSB / MSK).
6
7#pragma once
8
9#include <memory_resource>
10#include <nk/value/value.hpp>
11
12namespace nk::comm {
13
16
17
33Value pmmod(const Value &x, double fc, double fs, double phasedev,
34 double ini_phase,
35 std::pmr::memory_resource *mr = nullptr);
36
52Value ammod(const Value &x, double fc, double fs, double ini_phase,
53 double carr_amp,
54 std::pmr::memory_resource *mr = nullptr);
55
70Value fmmod(const Value &x, double fc, double fs, double freqdev,
71 double ini_phase,
72 std::pmr::memory_resource *mr = nullptr);
73
89Value pmdemod(const Value &y, double fc, double fs, double phasedev,
90 double ini_phase, std::pmr::memory_resource *mr = nullptr);
91
107Value fmdemod(const Value &y, double fc, double fs, double freqdev,
108 double ini_phase, std::pmr::memory_resource *mr = nullptr);
109
126Value amdemod(const Value &y, double fc, double fs, double ini_phase,
127 double carr_amp, std::pmr::memory_resource *mr = nullptr);
128
143Value ssbdemod(const Value &y, double fc, double fs, double ini_phase,
144 std::pmr::memory_resource *mr = nullptr);
145
161Value ssbmod(const Value &x, double fc, double fs, double ini_phase,
162 bool upper,
163 std::pmr::memory_resource *mr = nullptr);
164
178Value mskmod(const Value &x, int nSamp, double ini_phase,
179 std::pmr::memory_resource *mr = nullptr);
180
199Value mskdemod(const Value &y, int nSamp, double ini_phase,
200 double *phase_out = nullptr,
201 std::pmr::memory_resource *mr = nullptr);
202
203
205} // namespace nk::comm
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value ssbdemod(const Value &y, double fc, double fs, double ini_phase, std::pmr::memory_resource *mr=nullptr)
Single-sideband demodulator — inverse of ssbmod (x = ssbdemod(y, fc, fs, ini_phase)).
Value mskdemod(const Value &y, int nSamp, double ini_phase, double *phase_out=nullptr, std::pmr::memory_resource *mr=nullptr)
Minimum-shift-keying demodulator (differential variant) (z = mskdemod(y, nSamp [, ini_phase])).
Value fmmod(const Value &x, double fc, double fs, double freqdev, double ini_phase, std::pmr::memory_resource *mr=nullptr)
Frequency modulator (y = fmmod(x, fc, fs, freqdev, ini_phase)).
Value mskmod(const Value &x, int nSamp, double ini_phase, std::pmr::memory_resource *mr=nullptr)
Minimum-shift-keying modulator (differential variant) (y = mskmod(x, nSamp, ini_phase)).
Value pmdemod(const Value &y, double fc, double fs, double phasedev, double ini_phase, std::pmr::memory_resource *mr=nullptr)
Phase demodulator — inverse of pmmod (x = pmdemod(y, fc, fs, phasedev, ini_phase)).
Value ssbmod(const Value &x, double fc, double fs, double ini_phase, bool upper, std::pmr::memory_resource *mr=nullptr)
Single-sideband modulator (y = ssbmod(x, fc, fs, ini_phase, upper)).
Value pmmod(const Value &x, double fc, double fs, double phasedev, double ini_phase, std::pmr::memory_resource *mr=nullptr)
Phase modulator (y = pmmod(x, fc, fs, phasedev, ini_phase)).
Value fmdemod(const Value &y, double fc, double fs, double freqdev, double ini_phase, std::pmr::memory_resource *mr=nullptr)
Frequency demodulator — inverse of fmmod (x = fmdemod(y, fc, fs, freqdev, ini_phase)).
Value amdemod(const Value &y, double fc, double fs, double ini_phase, double carr_amp, std::pmr::memory_resource *mr=nullptr)
Amplitude demodulator — inverse of ammod (x = amdemod(y, fc, fs, ini_phase, carramp)).
Value ammod(const Value &x, double fc, double fs, double ini_phase, double carr_amp, std::pmr::memory_resource *mr=nullptr)
Amplitude modulator (y = ammod(x, fc, fs, ini_phase, carr_amp)).