I made this change:
diff --git a/src/float_to_bits.c b/src/float_to_bits.c index 08fad54..4547ffe 100644 --- a/src/float_to_bits.c +++ b/src/float_to_bits.c @@ -113,7 +113,7 @@ int main(int argc, char **argv) exit(1); } else if (rc == 0) break; - rc = process_sym_fl(0.3f, fl); + rc = process_sym_fl(0.0f, fl); sym_int2bits(rc, bits); //printf("%2d %1u %1u %f\n", rc, bits[0], bits[1], fl); if (opt_verbose)
Which improved decoding rate on correctly tuned captures. I think this 0.3 offset is an oversight that will generally increase BER.
In other news, I have gotten my own GPU (openCL) assisted demodulator working, I am thinking about decoding multiple carriers concurrently with this code, but I think the gnu_radio demodulator has an edge with regards to BER, especially if the offset is set to 0.0f :-)
Cheers, Frank
Hi,
diff --git a/src/float_to_bits.c b/src/float_to_bits.c index 08fad54..4547ffe 100644 --- a/src/float_to_bits.c +++ b/src/float_to_bits.c @@ -113,7 +113,7 @@ int main(int argc, char **argv) exit(1); } else if (rc == 0) break;
rc = process_sym_fl(0.3f, fl);
rc = process_sym_fl(0.0f, fl); sym_int2bits(rc, bits); //printf("%2d %1u %1u %f\n", rc, bits[0], bits[1], fl); if (opt_verbose)
Applied.
In other news, I have gotten my own GPU (openCL) assisted demodulator working, I am thinking about decoding multiple carriers concurrently with this code, but I think the gnu_radio demodulator has an edge with regards to BER, especially if the offset is set to 0.0f :-)
In my experience with OsmoGMR, the actual demod isn't all that CPU intensive. The channelization and resampling to a multiple of symbol rate is what's expensive.
A few things I don't like in the current demod : - Don't use the FCCH to properly lock to carrier - Only works for continuous carrier .. can't possibly use it for DMO or even uplink I think.
If yours could lift those limitation that'd be great :p
Cheers,
Sylvain
On Sun, Nov 11, 2012 at 12:05:28PM +0100, Frank A. Stevenson wrote:
rc = process_sym_fl(0.3f, fl);
rc = process_sym_fl(0.0f, fl);
I think I put it there intentionally as the signal I was looking at that time had some offset. But I'm not 100% sure if I remeber correctly, it's been some time..
In any case, it was just a local hack, AFAIR.