root/vtcross/trunk/src/cross-examples/python/gnuradio-examples/README @ 416

Revision 416, 2.9 KB (checked in by trnewman, 15 years ago)

Moving examples around to a more appropiate directory.

Line 
1benchmark_dsa.py - GNUradio Dynamic Spectrum Access example script
2
3Summary:
4This script implements a extremely simple DSA algorithm and
5rendezvous protocol.  When two nodes are running this script, they
6will dynamically change frequencies  until they rendezvous and begin
7communication. 
8
9Operation:
10In order to run this script several GNUradio utilities scripts must be
11located in the same directory as the benchmark_dsa.py script.  The
12easiest way to do this is to copy benchmark_dsa.py into the following
13GNUradio source directory:
14
15<gnuradio_top_srcdir>/gnuradio-examples/python/digital/
16
17
18General Information:
19The purpose of this script is to demonstrate simple dynamic spectrum
20access.  In our case we do a simple probe using the gr.probe_avg_mag_sqrd_cf
21component to get a ROUGH estimate of the energy.  An energy threshold is
22used to determine if another signal is present in the channel.  This
23threshold can be set from the command line using the --threshold arg.
24By default it is set to 1.5e8.  We calibrated this using the following:
25
26USRP1
27RFX400 USRP daughterboard
28Standard 2-way FRS radios
29
30The threshold should be set accord to your specific environment and will
31most likely be different for everyone.
32
33If a primary user is detected, the script will change channels to avoid
34causing interference.  The channel selection is the fun part.  By default
35the script simply picks a random channel from the STATICLY available
36channel list that we've hardcoded in.  Also available is intgration into
37our open source cognitive engine system which uses a case-based reasoning
38system to select a channel based on previous environments. 
39
40For example, the CROSS system, when requested, will query it's database
41and observe that channel A has previously seen a primary user, in this
42case the probability that channel A is selected as the next channel to
43hop is will be small compared to other channels that have seen seen primary
44users.  To use the CROSS system, CROSS must be built and installed
45(https://cornet.wireless.vt.edu/trac/wiki/Cross/BuildGuide) and you must
46supply the --cross argument.  DSA algorithms are ongoing research items
47at many institutions and this is just a VERY SIMPLE implementation to get
48others started.
49
50Also worth noting is the rendezvous method.  To get the full functionality
51two of these nodes must be running. Each node decides on it's own which
52channel to move to next if scanning for other nodes or if a primary
53user is detected.  At each channel hop, a beacon is transmitted.  This
54beacon is used by other nodes in the channel to identify each other.
55If a beacon is seen on a channel, an ACK beacon is sent and both nodes
56settle on the current channel and begin communication. 
57
58Again this is still a work in progress but hopefully others can gain
59some insight into spectrum sensing and DSA using GNUradio, the USRP, or
60the Virginia Tech Cognitive Radio Open Source System.
61
62For questions or comments related to CROSS:
63cross-discuss@listserv.vt.edu
64or
65trnewman@vt.edu
Note: See TracBrowser for help on using the browser.