This makes Amplitude Modulated Pulse Train, which can be regarded as the discretized wave of the signal. Pulse Train can be defined by frequency and duty cycle, which can be temporarily changed, referring to PWM.
Dependents: Interference_Simple
AMPulseTrain.cpp
- Committer:
- aktk
- Date:
- 2020-01-06
- Branch:
- 35e9675a
- Revision:
- 5:77ac0df7c3a1
- Parent:
- 1:19c3a52c80c3
- Child:
- 8:1f88fb3a4c57
File content as of revision 5:77ac0df7c3a1:
#include "AMPulseTrain.h" AMPulseTrain::AMPulseTrain( /// Carrier Pulse Train PulseTrain * const arg_carrier, /// Initial AM Signal expression AMSignal * const arg_signal ): Carrier(arg_carrier), Signal(arg_signal) { setFrequency_Carrier(Carrier->getFrequency()); } uint16_t AMPulseTrain::getClockperiod_us() { return Carrier->getClockperiod_us(); } void AMPulseTrain::incrementClock() { Carrier->incrementClock(); } void AMPulseTrain::attachCallback_asClock( Callback<void(bool, AMPulseTrain*)> arg_callback ) { m_callback_asClock = arg_callback; Carrier->attachCallback_asClock(callback(this, &ulseTrain::CallbackWrapper_asClock)); } void AMPulseTrain::CallbackWrapper_asClock(bool arg_pulsestate) { m_callback_asClock(arg_pulsestate, this); } void AMPulseTrain::attachCallback_asPulseEdge( Callback<void(bool, AMPulseTrain*)> arg_callback ) { m_callback_asPulseEdge = arg_callback; Carrier->attachCallback_asPulseEdge(callback(this, &ulseTrain::CallbackWrapper_asPulseEdge)); } void AMPulseTrain::CallbackWrapper_asPulseEdge(bool arg_pulsestate) { m_callback_asPulseEdge(arg_pulsestate, this); } void AMPulseTrain::attachAMSignalExpression( Callback<uint16_t(AMPulseTrain*)> arg_callback ) { m_AMSignalExpression = arg_callback; Signal->attachAMSignalExpression( callback(this, &ulseTrain::CallbackWrapper_AMSignalExpression) ); } uint16_t AMPulseTrain::CallbackWrapper_AMSignalExpression(AMSignal* arg_signal) { return m_AMSignalExpression(this); }