root/vtcross/trunk/src/cognitive_engines/DSA_CE/examples/gnuradio-examples/README @ 410

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

Added short README about benchmark_dsa.py

Using python dict instead of multiple if's.

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