[linux-dvb] Why is it called BER?

Morgan Tørvolt morgan.torvolt at gmail.com
Wed Apr 18 16:54:31 CEST 2007


Hi.

I have a question regarding the frontend. You ask for:

ioctl(Fd_frontend,FE_READ_BER, ber_value_goes_here)

As I have not seen the result from this that I would expect from the
documentation here:
http://www.linuxtv.org/docs/dvbapi/DVB_Frontend_API.html, I am sending
this question/request to the mailing list.

Why did you add an R to the end of FE_READ_BE?

Using BER would mean that the ammount is how many bit errors per, say,
second (which is the normal way of looking at it when it comes to
professional satellite equipment at least). Usually one defines BER as
f.ex 3.5 * 10^-6, which means that for every three and a half million
bits, you get one error bit.
>From the ioctl call to the frontend with FE_READ_BER though, the BER
seems to be the number of BE since the last call asking for this
value, which makes the R sound a bit wrong in my ears, as it is more a
count of errors than it is a rate of errors.
This could be because of my hardware of course, which is TT-1500S.

To calculate the correct bit error rate before FEC one needs to know
modulation (usually qpsk) and symbol rate. Since QPSK has two bits per
symbol, symbolrate of 30M has 60Mbit data.
When one has this data, you can delete the BE(not R), on the symbol
rate and the ammount of time the BE was accumulated over to get a
correct BER. I guess most people know this, so I say it only to make
sure we are on the same page =)

My advice would be to change the current FE_READ_BER to FE_READ_BEC
(Bit Error Counter), and try to phase out the current definition by
making it obsolete.
I would also like to have a call that can tell you how long since you
last read the counter, so that you can use it to get a correct value
for BER before FEC (using symbolrate of course), and a flag that could
tell you if the counter has reached its maximum value. I have seen it
go to a maximum value (just below 65536 somewhere) and stay fixed
there.

As to BER after FEC, I have no idea how to get hold of that
information currently. Has it something to do with
FE_READ_UNCORRECTED_BLOCKS? I would guess that it would be it. The
counter there seems to be reset upon read there as well. Also,
satellite TV muxes has reed solomon coding. Is the Uncorrected Blocks
the uncorrected FEC blocks or the uncorrected RS blocks? What happens
to the data where there are known bit-errors? Do they get thrown away?

I will hopefully be able to get hold of some professional testing
equipment to make a decent "int to decibel" table for signal strength
and signal/noise ratio in a while. I wonder if this would be correct
for all hadware, or if this is different from frontend to frontend
though.

Best regards, and thanks for all the good work!

-Morgan-



More information about the linux-dvb mailing list