Skip to content

5l1v3r1/gr-e4406a

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a GNURadio module to get complex samples from an Agilent E4406A VSA

You need the libvxi11 library to be installed in your system. See:
https://github.com/f4exb/libvxi11

The GNURadio block requires a recent gnuradio (>= v3.7) to be installed.

Please note: prior pulling a new version from git and compiling it,
please do a "make uninstall" first to properly remove the previous version.

Building with cmake:

git clone https://github.com/f4exb/gr-e4406a
cd gr-e4406a
mkdir build
cd build/
cmake ../
make
sudo make install
sudo ldconfig

See INSTALL for a more exotic cmake command involving custom locations for 
libvxi11 and GNURadio. You do not need to install with sudo if this is in a 
location your user has access to (this is my preferred solution). 

GNURadio blocks implemented (by GRC name):

* E4406A source:
Basic control and I/Q samples retrieval from an Agilent E4406A VSA over the 
LAN using VXI-11 protocol. 
See examples/qpsk.grc for an flowgraph using this block.

* E4406A Remote Control
Simple remote control of the E4406A mainly just to fine tune center frequency
which is impossible with instrument's knob. It is a dummy source block that
just output zeroes. Just connect it to a throttle block and a null sink block.
See examples/remote.grc for a flowgraph using this block.

* E4406A Buffered source
Similar as E4406A source but buferrizes a number of times the required output
block size before sending the blocks one at a time as requested by the 
scheduler. It implies that a communication with the E4406A is initiaed each time 
the buffer gets empty hence the rythm of the flow is highly discontinuous. To 
improve smoothness see "Double buffered pacer" next. The advantage in using 
this block is to have more contiguous blocks (or less discontinuities in the flow)
resulting in better behaviour of the subsequent blocks.
See examples/qpsk2_wx.grc for a flowgraph using this block.

* Double buffered pacer
Takes a large amount of data in input to serve it in smaller chunks at the 
output. Because GNURadio is a Thread-Per-Block scheduler the source of this 
block can run in parallel with it. When connected to a "E4406A source" block
of a larger size than the requested block size at the output it results in 
a smoother flow giving a real time impression. It also retains the advantage
to have more contiguous blocks (or less discontinuities in the flow).
See examples/qpsk3.grc for a flowgraph using this block.


See examples/README for information on the examples.

About

GNU Radio OOT module to get complex samples from an Agilent E4406A VSA

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 84.2%
  • C++ 15.6%
  • C 0.2%