// demodulate array of samples // _q : continuous-phase frequency demodulator object // _y : input sample array [size: _n x 1] // _n : input sample array length // _s : output symbol array // _nw : number of output symbols written void cpfskdem_demodulate(cpfskdem _q, float complex * _y, unsigned int _n, unsigned int * _s, unsigned int * _nw) { // iterate through each sample calling type-specific demodulation function unsigned int i; unsigned int num_written = 0; for (i=0; i<_n; i++) { unsigned int nw; _q->demodulate(_q, _y[i], &_s[num_written], &nw); // update number of symbols written num_written += nw; } // set output number of bits written *_nw = num_written; }
// demodulate array of samples // _q : continuous-phase frequency demodulator object // _y : input sample array [size: _k x 1] unsigned int cpfskdem_demodulate(cpfskdem _q, float complex * _y) { return _q->demodulate(_q, _y); }