George Nychis wrote:
Hi,
BER is defined as the % of bits that have errors to the total number
of bits. Therefore, you need to calculate the number of incorrect
bits. To do this you would need to know the correct bits to compare
your received bits to. You can then easily compute the number of
incorrect bits.
Therefore, if the input to gr.vector_source_b() is your input data,
you would compare it to the output of gr.vector_sink_b() and calculate
the bit difference. If 1 bit out of 10^3 bits are different, your BER
is 1/10^3. The more input, the more accurate your BER estimate is.
I don't think a BER calculator exists in GR, but it shouldn't be that
difficult. The block would take two input streams, one being the
correct data and the other being the decoded data. It could then
compare the two.
The only difficulty is the delay introduced by the flowgraph,
specifically through filters. You can brute force this by looking at the
output and figuring out the delay. I noticed, though, when I was working
on my dissertation, certain flow graphs would have an uncertain delay,
though I wasn't sure why (I think it was GMSK, too, which would have a 7
or 8 sample delay on any given run).
Or you could compare the two outside of GNU Radio pretty easily.
It's not clear to me if you're performing the modulation and
demodulation on the same machine. If so you have easy access to both
data sets. Otherwise, transfer the known data to the receiver in a
100% accurate method and then compare.
Much easier on the same machine. The BER block I wrote works well in
this case and automatically adjusts for the delay by looking for a start
packet. It's a bit crude and awkward to use the block, which is why I
haven't checked it into the project yet. The results, though, were
_very_ good. Within a few tenths of a dB to theory. GMSK had a problem
at SNRs lower than about 5 dB.
Tom
- George
irene159 wrote:
Hi all,
I'm currently working on a GSMK modem, and I would like to calculate
the BER
of the link. I send data using gr.vector_source_b( ) connected to a GMSK
modulator/demodulator and receive the signal in gr.vector_sink_b( ).
1) How can I measure BER from the vector_source and vector_sink ?
2) Does a BER calculator recovering from clock shifting (bit lost by
clock
sliding) exist ?
Thanks !
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio