Skip to content

C++ modulation/demodulation algorithms to implement an acoustic data transmission channel

Notifications You must be signed in to change notification settings

dephonica/AcousticModem

Repository files navigation

ADSSS Modem

C++ modulation/demodulation algorithms to implement a data transmission channel between "smart" devices using an acoustic channel with an arbitrary, user-defined audio fragment acting as carrier sound.

Infographics for Acoustic Modem

Encoder usage

With carrier PCM data in memory:

std::vector<PCMTYPE> referencePcm;
// fill reference vector with PCM carrier data here
ADSSS::PcmHelpers::ReferenceSource referenceSource(referencePcmSamplerate, referencePcm);
ADSSS::Encoder encoder(referenceSource);
auto resultPcm = encoder.Go(payloadData);

Decoder usage

With encoded PCM data in memory:

std::vector<PCMTYPE> encodedPcm;
// fill encoded vector with PCM data here
ADSSS::PcmHelpers::ReferenceSource encodedSource(encodedPcmSamplerate, encodedPcm);
ADSSS::Decoder decoder(encodedSource);
auto decodedData = decoder.Go();

About

C++ modulation/demodulation algorithms to implement an acoustic data transmission channel

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published