Hi,
I am looking for a QT scope block for gnuradio companion. Ideally, I a
complex input for the Y axis and a float input for the X axis would
solve
the problem.
A QT time sink works for the Y axis, but does not solidly trigger; it’s
hit
and miss. I have also tried a “Tag” trigger; but this does not seem to
work
either. I must be doing something wrong.
Any suggestions?
Thank you.
–
View this message in context:
http://gnuradio.4.n7.nabble.com/QT-scope-block-tp54482.html
Sent from the GnuRadio mailing list archive at Nabble.com.
Hi numeric,
You’re probably not doing something wrong per se. The question is: how
do you generate these tags you need to trigger the time sink.
Maybe you’d want to try to use the constellation sink? Use “complex to
float” to feed one stream of x floats and one stream of y floats into
the sink as complexes.
Visualization is actually a field where personal experience helps a lot,
so if you reply with a description of what you need your sink for, maybe
some people on this list have clever ideas on how to show what you need
to have visualised.
Best regards,
Marcus
Am 28. Juni 2015 15:15:07 MESZ, schrieb numeric [email protected]:
Hello Marcus, thank you for your suggestion.
A QT scope capable of displaying Lissajous patterns would solve my
problem.
Hardware analogy:
Most hardware scopes can be set up in an XY mode without difficulty. In
my
case a hardware scope with two inputs to display the complex input ( Y
axis
) and a third channel for the X axis, would work. I even have a 4
channel
scope that would work nicely in the hardware world. However I prefer to
solve the scope function using the GNU radio companion.
My objective is to create a vector network analyzer using the Ettus b200
USRP board. It can provide a sweep rf output and simultaneously receive
the
in phase and quadrature phase reflection component. While it is possible
to
trigger the X axis; I would prefer to use the actual sweep waveform for
the
X axis.
Rob
–
View this message in context:
http://gnuradio.4.n7.nabble.com/QT-scope-block-tp54482p54491.html
Sent from the GnuRadio mailing list archive at Nabble.com.
On 29.06.2015 12:30, numeric wrote:
comparisons. Also no need for QT.
Hey Rob,
by no means do I want to discourage you from any coding endeavours; I do
have a couple of data points you might find interesting:
- The constellation plot can be set to plot lines instead of points, and
does have some trigger functionality. If that’s 90% of what you need,
might actually be easier to work off of that.
- If you want to use GNU Radio apps with other GUI elements, even your
Delphi app will need to work with QT. Although it does seem like you
want to write something stand-alone, right?
Cheers,
Martin
Hi Numeric,
have you tried my constellation sink approach? Pretty sure it works well
[1].
By the way, the USRPs are /not/ calibrated measurement equipment, which
means that you will have to calibrate the amplitude response at each
frequency/gain/sampling rate/master clock rate combination you want to
use yourself first, for both channels. The second problem is that after
every tuning, the phase relationship between the TX and the RX LO will
be random.
Best regards,
Marcus
[1] http://imgur.com/a/YjF25#0
Hello Marcus,
I did try the constellation sink approach. The result seemed to be
scatter
plot without a solid trigger lock. A trigger may not work because the Y
complex waveform provides no repeating pattern.
At this point, I think I could achieve faster results by writing my own
code
rather than using python and gnuradio for the VNA project. Using Delphi,
I
could easily use the Ettus DLL. I have been using Delphi since it’s
beginning and speed has always been my priority. Delphi generates
compiled
code and runs FAST! Even faster than C++ compiled code that I have run
speed
comparisons. Also no need for QT.
Thank you for your follow up response, I appreciate your suggestion.
Rob.
–
View this message in context:
http://gnuradio.4.n7.nabble.com/QT-scope-block-tp54482p54504.html
Sent from the GnuRadio mailing list archive at Nabble.com.
Thank you Marcus.
I tried again to implement your suggestion. This time I had success!
Thank
you!
However, I had to make changes. I set the constellation sink for 2
inputs
and added a second float to complex block. This provides a Y (or
vertical)
scope input representing the waveform R + J*X. Where R is the “real”
component of the VNA reflection component and X is the “imaginary”
component
of the reflection component. They are both plotted on the same axis. The
orthogonal scope axis is the driving VNA VCO waveform (used a sawtooth)
and
is the same waveform for R and X reflection parts.
The ambiguous part:
The float to complex provides two float input ports and one complex
output
port. I believe the top float port is the “in-phase” and the bottom
float
port is the “quadrature-phase” port. I need to document further what I
did,
a picture, as they say, is worth a 1000 words. I have a screen shot of
the
waveform and GRC flow diagram. I transferred the png file to windows but
the
file name causes problems in windows. However, at this time I have
another
project to complete first.
Thank you for your help,
Rob
Marcus Müller-3 wrote
I don’t know how you want to trigger your Oscilloscope in X/Y mode –
hence I used the “Free” trigger mode, to generate the lissajous figures
I sent you. What’s wrong about them? If you describe what you’re
expecting, we might find a solution together.
–
View this message in context:
http://gnuradio.4.n7.nabble.com/QT-scope-block-tp54482p54524.html
Sent from the GnuRadio mailing list archive at Nabble.com.
Hi numeric,
Hi Rob,
I did try the constellation sink approach. The result seemed to be scatter
plot without a solid trigger lock.
I don’t know how you want to trigger your Oscilloscope in X/Y mode –
hence I used the “Free” trigger mode, to generate the lissajous figures
I sent you. What’s wrong about them? If you describe what you’re
expecting, we might find a solution together. So far I’m still not
wholly understanding in what way the solution I demonstrated isn’t
sufficient, and I do think you’re on to something relevant for a lot
more people than yourself!
So, could you explain in what way http://imgur.com/a/YjF25#1 looks
different from what you want?
At this point, I think I could achieve faster results by writing my own code
rather than using python and gnuradio for the VNA project. Using Delphi, I
could easily use the Ettus DLL. I have been using Delphi since it’s
beginning and speed has always been my priority. Delphi generates compiled
code and runs FAST!
Hate to burst your bubble, but GNU Radio really performs excellent, and
also has hand-optimized code for many platforms for the computational
heavy things. I really doubt your Delphi code will be a close match to
what you get with an inherently multi-threaded, highly optimized,
pipelined, consumption-rate driven application that you automatically
get when using GNU Radio.
That being said, GNU Radio is of course not always the right tool. If
what you’re after doesn’t look like a stream of
samples/measurements/information/… then hand-coding a signal
processing algorithm might be better. However, I’m not myself aware of
using UHD, which is a C++ library making heavy use of C++'s language
features from Delphi, thus far, and I can’t promise it will be easy.
Best regards,
Marcus
Hi Rob,
The float to complex provides two float input ports and one complex output
port. I believe the top float port is the “in-phase” and the bottom float
port is the “quadrature-phase” port.
if you hover above these ports you’ll see that the upper is “re” (real)
and the other is “im” (imaginary), which, typically, maps to I and Q.
I transferred the png file to windows but the
file name causes problems in windows.
Um, I think renaming a file shouldn’t be that hard make sure you
attach .png; many file managers on Linux autodetect the content of a
file, no matter what the extension is (or if it’s missing), but Windows
Explorer might be stuck in the 80s, feature-wise. Also, Unix filesystems
typically support UTF-8, but if you e.g. use a FAT32-formatted USB
drive, you might encounter problems…
Best regards,
Marcus