> Hi list,
>
> There is a function called 'ber' in receive_path.py in the python bert
> example.
>
> def ber(self):
> return (1.0-self._ber.density())/3.0
>
> From where does the 3 originate? Some lines above, there is this comment:
> # Descramble BERT sequence. A channel error will create 3 incorrect bits
> self._descrambler = gr.descrambler_bb(0x8A, 0x7F, 7) # CCSDS 7-bit
> descrambler
>
> But from my tests I see that
> 1 bit error in -> 7 bit errors out
> 2 consecutive bit errors in -> 2 errors in the output
> 3 consecutive bit errors in -> 7 errors in the output
> 4 consecutive bit errors in -> 4 errors in the output
> ...
> And so forth up to 7 (Length of the lfsr)
>
> The reason I ask is that if I want to change the scrambler and/or the
> modulation, I assume that this "magic number" will change as well.
If you want a good BER measurement, I wouldn't use the method that you
describe here.
Since, as you've noted, the errors propagate through the shift
register and generate more errors than the number of errors at the
input, it seems more like an error generator than an error counter.
Though, on a side note, it is strange you are getting 7 bits in error
when you only have 1 bit in error going in. This really should be
limited to 3 as the comment suggests.
The benefit to this approach is self-synchronization, but you lose out
on an accurate bit error measurement.
Without knowing more about the type of system you are going to be
testing, I can't comment on how I'd change the measurement or
evaluation of the bits produced by your modem. Sorry.
Hope this was helpful - though I somewhat doubt it.
Brian
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
No comments:
Post a Comment