On Wed, Dec 11, 2013 at 04:15:11PM -0700, Henry J. wrote:
I tried to use digital_bert_tx.py and digital_bert_rx.py to test the BER
performance of different modulations. The command I use is ./digital_bert_tx.py
–tx-freq=5.1e9 --tx-gain=30 -S 8 --mod-code=gray -m bpsk. The results for BPSK
is good enough. When SNR is above 20, the BER is around 10^(-11). However, when
I change the modulation to QPSK, the BER is only around 0.167 although it says
SNR is still around 20. Surely there is something wrong. 16QAM has the same
problem. Just wonder if anyone has the same experience before. Am I missing
something in order to correctly use the test script?
I believe you’ve run into the famous ‘SNR’ trap, where you’re using
the wrong definition of SNR for your purposes.
I’d need to have a closer look at the blocks in question, but I believe
your estimate is actually the E_S/N_0 (it might be something within a
constant factor of this).
The relevant quantity for predicting BER is E_b/N_0. If you increase the
modulation (BPSK -> QPSK -> QAM), you’re decreasing the latter (at
constant ‘SNR’). So, all is fine.
I’m a bit surprised about the actual values. If you’re measuring a BER
of 10**-11, that means you’re transmitting data on the order of 10**12
I’m not 100% familiar with digital_bert_tx.py, but this seems weird.
Note that there are formulas to derive the BER from EbN0. Remember they
apply to the AWGN channel only. If you have synchronisation,
equalization etc. BER will get worse.
So, .167 is more than the theory says, but you’d expect more anyway.
 Well, don’t know if it’s famous. It’s a very common mistake, though.
Karlsruhe Institute of Technology (KIT)
Communications Engineering Lab (CEL)
Dipl.-Ing. Martin B.
Phone: +49 721 608-43790
Fax: +49 721 608-46071
KIT – University of the State of Baden-Württemberg and
National Laboratory of the Helmholtz Association