#include "bfsk.hpp" #include #include std::vector bfskModulate(const std::vector &data){ int spb=(int)(SAMPLE_RATE/BFSK_BAUD); size_t tb=data.size()*8; size_t ts=tb*spb; std::vector out(ts*2,0.0f); double phase0=0.0,phase1=0.0; double inc0=2.0*M_PI*BFSK_FREQ0/(double)SAMPLE_RATE; double inc1=2.0*M_PI*BFSK_FREQ1/(double)SAMPLE_RATE; size_t idx=0; for(auto byteVal:data){ for(int b=0;b<8;b++){ int bit=(byteVal>>b)&1; for(int s=0;s bfskDemodulate(const std::vector &monoData){ int spb=(int)(SAMPLE_RATE/BFSK_BAUD); size_t tb=monoData.size()/spb; size_t tbytes=tb/8; std::vector res(tbytes,0); double inc0=2.0*M_PI*BFSK_FREQ0/(double)SAMPLE_RATE; double inc1=2.0*M_PI*BFSK_FREQ1/(double)SAMPLE_RATE; size_t bitIdx=0; for(size_t b=0;bstd::fabs(sum0))?1:0; size_t bytePos=bitIdx/8; int bitPos=bitIdx%8; if(bytePos