Carrier Phasor Slides to Zero Phase

I took a 256,000 samples per second stream from the USRP and directly
displayed the I/Q stream to the X/Y display of a (slightly modified)
oscope.py.

With a -60dBm unmodulated carrier as RF input, and with the receiver
tuned
within 0.1 Hertz of the the carrier, I expected to see a tight
constellation
of samples slowly rotating around the origin at the rate of (Fcarrier -
Flocal_oscillator).

To my surprise however, when the carrier & receive frequencies are
within
0.1 hz of each other, the displayed constellation of I/Q only lives
around
[x=0, y=Amplitude].

I’ve been scratching my head on exactly why this is and have concluded
it
has something to do with the finite length of the Hilbert transformer -
we
don’t really have true input phase because the Hilbert transformer is of
finite length.

Can a Wise One put into concise words what’s causing this phenomena?

Then, a second, even more baffling observation: Every few seconds, the
phase of the constellation seems to slip by 180 degrees and the
constellation jumps to [x=0, y=-1] for a while. It seems to me that
this
phase jump is at the rate at which the constellation SHOULD have slowly
rotated, i.e. the constellation rotation angle is somehow constrained to
being only around those two points. In other words, instead of the
phasor
slowly rotating at 0.1Hz, it jumps between [0,1] and [0,-1]. Thinking
about
this duzi, I conclude that this is somehow related the the above
insight,
but as for the phase JUMP, maybe someone with good fundamental insight
can
share it in simple words for a simple man?

(PS: my modifications to oscope.py was limited to allowing manual
scaling of
both axis in XY mode, so i’m pretty sure i haven’t messed up something
significant in the xy display that could cause the above phenomena)

View this message in context:
http://www.nabble.com/Carrier-Phasor-Slides-to-Zero-Phase-tf1951297.html#a5350954
Sent from the GnuRadio forum at Nabble.com.

You are probably seeing the DC offset compensation removing your signal
when it looks like DC.

Matt

Where is this DC offset compensation implemented?

Matt E. wrote:

displayed the I/Q stream to the X/Y display of a (slightly modified)
oscope.py.

With a -60dBm unmodulated carrier as RF input, and with the receiver tuned
within 0.1 Hertz of the the carrier, I expected to see a tight
constellation

finite length.
slowly rotating at 0.1Hz, it jumps between [0,1] and [0,-1]. Thinking
about

this duzi, I conclude that this is somehow related the the above insight,
but as for the phase JUMP, maybe someone with good fundamental insight can
share it in simple words for a simple man?

(PS: my modifications to oscope.py was limited to allowing manual scaling
of

both axis in XY mode, so i’m pretty sure i haven’t messed up something
significant in the xy display that could cause the above phenomena)


View this message in context:
http://www.nabble.com/Carrier-Phasor-Slides-to-Zero-Phase-tf1951297.html#a5377797
Sent from the GnuRadio forum at Nabble.com.

Solved! The answer is incredibly simple: Oscope.py has a triggered
mode, and
when you go to XY display mode it STILL uses the trigger… So what I
saw
was an artifact of a slowly rotating colony of derotated samples, but
the
view was partially obscured by the triggering effect. So, after
clicking on
“Auto”, I saw what one would expect.

In summary, I think “we” need a nice VectorScope.py :slight_smile:

Happy gnu-radio-ing!

WaveMaker wrote:

To my surprise however, when the carrier & receive frequencies are within

(PS: my modifications to oscope.py was limited to allowing manual scaling
of both axis in XY mode, so i’m pretty sure i haven’t messed up something
significant in the xy display that could cause the above phenomena)


View this message in context:
http://www.nabble.com/Carrier-Phasor-Slides-to-Zero-Phase-tf1951297.html#a5383094
Sent from the GnuRadio forum 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