Hi all,
I use differential PSK with up to 4 bits per symbol. I tested
transmission as
a simulation modelling the channel with AWGN noise and phase rotation.
So
far, simulation works perfect (100% packets will be received correct)
with
all modulation orders using Costas Loop for phase recovery and
Mueller&Mueller for clock recovery at the receiver.
Problems occur when switching to the USRP board. I use Flex 2400 and TX
and RX
antennas are close to each other (near perfect propagation channel). In
very
few cases (~5%) the receiver recovers the signal and correct packets
will be
received. In most runs, no packet is received. Until now, I do not know
if
the problem is due to some saturation effects (too high transmission
power at
the amplifier) or if parameters of Costas Loop, Automatic Gain Control
and
Mueller&Mueller clock recovery are set properly. I played with all those
parameters a lot, but without success. Can someone help?
In general: Does Costas Loop need to be modified when differential PSK
is
used? I read in the forum that the order needs to be 2 for BPSK and
order 4
used for QPSK in the block gr.costas_loop_cc(…, order)? What is the
purpose?
If someone is interested, you can try with the following source code. I
appreciate any comments.
http://www.mobnets.rwth-aachen.de/~ade/cso/DPSK_code.zip
the block “howto_psk_packet_sink.cc” is necessary to detect packets
after
differential decoding at the receiver. One byte contains 1 to 4 bits (
which
is the symbol) depending on the modulation order.
psk.py is extended to use 16PSK.