Hi Mariam,

I'm cross-posting this to the discuss-gnuradio list; this is mostly
about SDR implementation on GNU Radio, it seems, and very little about
usage of the USRP. If you're not signed up to discuss-gnuradio, you
should/could do so [1].

On 11.05.2016 10:23, Mariam Musavi via USRP-users wrote:
>
> Greetings!
>
> Since, i belong to a wireless communication course, my experiment
> requires to connect 13 nodes, simulating a wireless network.
>
Fair warning: this mail's going to smother you in aspects of wireless
network design; I get the feeling this might be an early course on
wireless communication, so don't worry if you're not familiar with all
of these terms.
The conclusion of all this is that you should probably read up a bit on
a few "classical" MAC schemes (Aloha (slotted and unslotted), CSMA, TDMA
(warning: that one sounds simple, but isn't unless you can /actually/
synchronize devices, which is hard), CDMA), and pick one at will. Tell
us which one you've picked – that'll give us a base for constructive
discussion.

Out of my own experience: Build something simple first, with lots of
margins. Unslotted Aloha with half a second of observation doesn't sound
impressive at first, when you compare it to wifi, but as soon as it
works, it's very satisfying.
Better build one "basic" system that works and learn enough on the way
to do things better the next time (and for the sake of grades, write a
good documentation on what you've learned!) then write a non-functional
but theoretically impressive system.

> More specifically, In which every USRP N200 node(with unique IP
> address) is connected in such a way (please see figure attached here
> with). My queries to seek from you are:
>
> 1. Using GNU radio software, how can i make connections(shown in
> figure) between all thirteen USRP nodes?
>
Well, you'll be designing a whole communication network. Remember, the
USRPs are software defined radio peripherals, which means they are not
communication devices as it – (idealizing) they just give you the "raw"
signal as seen by the antenna, and allow you to send the "raw" signal as
it should be on the air. No connections, no data links, no packets, no
addresses… unless you write/use software that uses the USRPs to make
them function as the "radio head" of such a device. You can't just pipe
in bits to the USRP and get the same bits out of a different one.

What you call a "connection" is a "mental" concept. In fact, between two
USRPs, there's only a mixture of electromagnetic waves, so you'll have
to think in different "layers" of abstracting these.

 0. Physical Layer
 1. MAC Layer
 2. Data link layer (and this is where the term "connection" actually
    starts to make sense)
 3. Network Layer

Hence, to make a "connection", you'll first need to have a concept for
the 2 layers below.

So you'll consider the "full stack" of digital communications:

  * pyhsical layer+
      o Frequency
      o Bandwidth
      o Modulation / Pulse Shaping / Subcarrier systems
      o Channel coding
  * Medium Access (MAC) layer
      o CDMA/FDMA/OFDMA/TDMA/Aloha/CSMA...
      o Arbitration modelling: What's going to happen to your network
        under high load, what with sparse nodes?
      o Frame modelling
  * Data link layer (and to be honest, I'm pretty sure you'd still be
    able to ace your course if you don't consider things concerning this
    overly much)
      o ACKs? NACKs? ARQ?
      o Checksums?
      o time/frame count windows for ACK/NACK/ARQ?
  * network layer
      o What kind of network is this? For example:
          + Emergency broadcast (maybe including relaying)?
          + high-throughput network for continous usage (think: wifi)?
          + Not actually decentralized, i.e. there's actually one node
            that takes the job of a "base station"?
      o Is there a need for relaying?
      o Can each node see each other?
      o Do all nodes communicate with each other, or only with their
        neighbors (define: neighbor)?
      o routing?
      o node discovery? arbitration phases?
      o communication of topology amongst nodes?
      o network coding? (ok, that one is pretty advanced)

Generally, designing a wireless network from scratch is a /big/
endeavour, and I'd recommend you look at existing standards that do a
thing that is wireless to your networks' *purpose*. You'll build a
completely different network if what you want to model is wireless
doorbells and remote door openers communicating with each other than
what you'd want to model if you've got a set of PCs communicating large
file contents.

> 2. How can i assign channels(in figure see blue wireless links are 21
> channels each centered uniquely between BW 828MHz to 924MHz) to each
> USRP node(is it done within GNU radio software/is it done writing a
> python script separately) if yes how?
>
That depends on how you model your network, see above. Basically, you're
already describing something like an arbitration scheme.

Notice that for decentral networks, it's pretty rare to assign
completely separate channel for single links.
That's because your single link can then never use more than (total
bandwidth)/(number of total links), even if no one else is talking in
the network, and also, because it's non-trivial to derive a suitable
channel allocation – in theory, for 13 nodes, you get $\binom{13}{2}$
potential links (if you do separate up- and downlinks on each, ie. A->B
is a different channel than A<-B, then twice that), i.e.
lemmecalculatethis... 78 (or 156) potential links. But you'd probably
not use all of these, and not all of these are usable at all, probably.
So the process of chosing the 21 links you actually want to use sounds
pretty complicated, and the process of telling each node which links
it's part of, and what to do when wanting to communicate with a node
that doesn't have a direct link isn't easy, either.

There's a whole lot of theory regarding maximal throughput for such
networks, modelling of optimal strategies etc.

I can't really recommend anything specific other than getting really
really used to GNU Radio – I think I point these out quite regularly,
but if you haven't read them: the Official GNU Radio Guided Tutorials
will take you from zero to communication including set up of USRPs in
one go [2]; just read them from first to last; they are consecutive.

There's a few network standard implementation (and implementation stubs)
existing for GNU Radio, but as this all depends on what you actually
want to model, I can't recommend to look at something specific until you
specify the general architecture your network should have.

[1] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
[2] http://gnuradio.org/redmine/projects/gnuradio/wiki/Guided_Tutorials
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to