Bpsk lost some packet when transmit data discontinuously

Hi:

I have some problem about dbpsk and bpsk using benchmark_tx/rx.py with
some
modification.

My experiment set up was that the transmitter waits for a time delay
(0.5 s)
after sending a packet.
It means that we transmit data discontinuously.

If we using dbpsk modulation, we can successfully receive every packet.
But if we removed the differential encoder/decoder (equals to bpsk
modulation), we uaually
lost some packet (almost half of the data lost).

However, when we transmit data continuously,the bpsk modulation seems
work
fine and we can successfully receive every packet.

My problem is that what reason causing the bpsk modulation can not
successfully receive packet when
transmit data discontinuously.

Could anyone have any idea about it, please let me know.
I am deeply appreciative.

                         Fisheep :)


View this message in context:
http://old.nabble.com/bpsk-lost-some-packet-when-transmit-data-discontinuously-tp27832481p27832481.html
Sent from the GnuRadio mailing list archive at Nabble.com.

The problem does not lie with the bpsk modulator, the problem is in the
packetizer. The packetizer waits until it gets enough data to
completely
fill up a packet, generally resulting in the loss of the last packet as
there is not enough data to fill it perfectly.

There is a modified copy of the packetizer.py that you could use that
has
been set up to handle this specific async digital communication scenario
at
http://code.google.com/p/softwaredefinedradio . If you look at
…/trunk/src/Data_Path, there is a modified Python file for
packetizer.py.
You may also want to look at the dpsk.py file in this directory, as it
shows
how to set up the top level design to use a message queue for the
asynchronous sending of packets. The last (useful) file in this
director is
the txrx_controller.py, which establishes a custom rudimentary protocol
to
ensure packet retrieval went well, and all information is received
properly. There is some documentation for this in the Docs folder.

-Michael B.

Thanks for your reply.

I thought that the problem can not get enough data to fill up a packet
could
happen on any modulator.

But why we could receive every packet properly when using dbpsk and lost
packets when using bpsk?
(Under transmitting each packet with a time interval.)

And I went through the packetizer.py quickly and found that it seems
that
different modulations have different packet preambles.
i.e.
preamble = conv_packed_binary_string_to_1_0_string(’\xA4\xF2’)
preamble_bpsk = conv_packed_binary_string_to_1_0_string(’\x55\x55\x55’)
preamble_qpsk =
conv_packed_binary_string_to_1_0_string(’\x1E\x1E\x1E\x1E\x1E\x1E’)

Does this different cause the bpsk can not receive data properly?

Again, Thanks for your reply. It really helps me a lot.
I am deeply appreciative.

                        Fisheep :)

Michael B.-2 wrote:

…/trunk/src/Data_Path, there is a modified Python file for

However, when we transmit data continuously,the bpsk modulation seems
Fisheep :slight_smile:
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Discuss-gnuradio mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


View this message in context:
http://old.nabble.com/bpsk-lost-some-packet-when-transmit-data-discontinuously-tp27832481p27836131.html
Sent from the GnuRadio mailing list archive at Nabble.com.

I am not sure why you would be losing packets with one modulator, and
not
with another. I unfortunately am not overly familiar with these blocks,
and
I was not the one who made these modifications for our project. It
could be
that the dbpsk modulator is properly padding for the packet size, while
the
bpsk is not. This is only a guess on my part. Either way, it takes a
lot
of digging to get to the bottom of these problems.

As for the other modifications made to the packetizer.py with the
preamble;
this was done to give a better chance for the receiver to lock onto the
signal before the actual data is sent.

Sorry I could not be more help than this.

-Michael B.

On Tue, Mar 9, 2010 at 3:03 AM, Fisheep [email protected] wrote:

If we using dbpsk modulation, we can successfully receive every packet.

Could anyone have any idea about it, please let me know.
I am deeply appreciative.

                        Fisheep :)

Fisheep,

I’m wondering how you are compensating for the phase ambiguity of the
BPSK signal in the receiver? In the current DBPSK, there is no method
to properly rotate the constellation because the differential encoding
doesn’t care. If you are just transmitting BPSK, you’ll have a 180
degree phase ambiguity in the receiver. If that’s the case, then for
every burst of a packet, when the receiver locks to the constellation,
it will be in one of two phase rotations, one which works and one
which inverts every symbol. They should be distributed with equal
probability, so half of the time you’ll have the correct rotation and
the other half you won’t.

When you transmit continuously, I would expect that you’ll also see
the same behavior. If you’ve got the right rotation, you’ll receive
every packet. Otherwise, you’ll see nothing. Does that happen
sometimes?

Tom

Tom,

It is really what you are said. After I transmitted packet several
times, I
got the
probability of 1/2 that correctly received packet and probabilty of 1/2
that
got nothing.
I think this result is explicit when I change the carrier frequency from
900M Hz to 2.4G Hz.

It is my fault. I thought that it will work like a bpsk if I removed the
differential encoder/decoder
from dbpsk.py. But I haven’t do the channel estimation to get the
correct
phase rotation.

Did anyone try to implement the channel estimation into gnuradio?

I find that at the gr_mpsk_receiver_cc block there is a parameter theta
that
pass into this block.
In dbpsk the theta is set to 0. Is it correct that I pass the phase
rotation
from the channel estimation?
If is, how do I do the channel estimation before the
synchronization…there
are two samples/symbol
before the gr_mpsk_receiver_cc block.

Sorry for I first contact with software defined radio. And I really
don’t
have a complete concept of the
transmission structure when it involves synchronization and channel
estimation.

Fisheep

Tom R. wrote:

s)
fine and we can successfully receive every packet.

probability, so half of the time you’ll have the correct rotation and
Discuss-gnuradio mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


View this message in context:
http://old.nabble.com/bpsk-lost-some-packet-when-transmit-data-discontinuously-tp27832481p27893508.html
Sent from the GnuRadio mailing list archive at Nabble.com.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs