GNURADIO Demonstration

 


Download and Installation

  • Downloading and intalling gnuradio is straightforward. Our descriptions assume versions of linux, particularly ubuntu14.04 and above, or fedora 16+.
  • Open a browser and login through internet.iitb.ac.in. Please go over some introductory material/description/talkslides etc at gnuradio.org
  • Open a terminal. Version Gnuradio 3.7.2.1 or above can be installed by simply typing in the terminal,
    'sudo apt-get install gnuradio'
    or
    'sudo yum install gnuradio'
    (the former is used for ubuntu and later for fedora)

  • www.gnuradio.org lists several other installation options, these are recommended only for advanced users who wish to have the latest features.

  • You can open gnuradio interface by typing 'gnuradio-companion' in the terminal.

  • Keep in mind the handy linux feature of auto-complete, for example, type 'gnu' and press tab two times to see what all commands start with the word 'gnu'.

Initial Resources/Tutorials

  • www.gnuradio.org has a wealth of tutorials, Click Here (try to go through most of them).

  • Youtube Videos Click Here (related to telecommunication)



    Demonstrations

    • Given below are some of the demonstrations that we did in class. You can download the corresponding *.grc file and open using gnuradio-companion. The grc has xml contents, however no need to open it in the browser, simply save the link as *.grc file.
    Exp Nr. Details
    1) Source, Sink and Throttle sourcescope.grc
    2) Shifting and Scaling a Waveform delayedsignal.grc
    3) Playing Sarigama sarigama1.grc
    4) FM receiver for dummies fmradio.grc

  • The last item requires a hardware to receive FM signals. We will replace the hardware input by a file captured from one the FM stations. This will come soon.



    Demo Details

  • Some details of each experiment is given below.
    1. Please set the topblock option to QT GUI.
    2. If the window size is small, please set the window size in the topblock.

    Topic grc file
    (1) Source/Sink/Throttle
    1. Remember to set the Options on top-left block to QT GUI.
    2. A block can be searched by first typing Ctrl+F and searching for the name.
    3. The program is run by clicking the execute button on the top panel(14th icon there).
    4. The noise volt is controlled by a parameter called noise_volt, which is the ID of a QT GUI Range block. This allows us to graphically change noise_volt over a prespecified range. The slider will be shown in display.
    5. Play with the noise-voltage slider on the plots, notice the spectrum.
    6. Change all the blocks to complex and observe the constellation.
    (2) Delay and Scale
    1. We have not done this in demo class, but this is a simple extension.
    2. A signal, its delayed version and also a scaled version are shown simultaneously.
    3. Delay is controlled by a range block with ID delay_param, and amplitude is chosen by amp_param.
    4. Execute the graph and play with the sliders for these parameters.
    5. Middle click inside the plot, a dialogue box opens up and you can control the line color, thickness etc of the plots. Play with various options.
    6. As an exercise, change the IDs of the range blocks in the program (to some other names). What is the effect of the sliders now.
    (3) Sa-Ri-Ga-Ma
    1. The program generates the notes Sa-Ri-Ga-Ma-Pa-Da-Ni-Sa and then reverses it after a delay.
    2. The corresponding frequencies used are 240, 270, 300, 320, 360, 405, 450 and 480 (in Hz).
    3. The essential idea is to treat each value above as a voltage and send it to a VCO.
    4. The VCO sensitivity is adjusted to generate to be 1Hz per volt or 2*pi=6.28 rad/sec/volt.
    5. Each value is repeated 48k times to make each sound span a second (note that there are 48k samples per second).
    6. Observe the water-fall plot, and see the time-frequency pattern.
    7. Convert the flowgraph to play the next octave, also change the frequencies to play the Karnatic raga `Mayamalavagaula'.
    8. Go the frequency display and choose a rectangular area with your mouse around the frequency being played. See whether the frequencies indeed match the played ones.
    9. Playing 'Happy Birthday to you' is a more challenging assignment.
    (4) FM-receiver
    1. The current implementation uses the rtl-sdr dvb usb dongle.
    2. This requires the rtl-sdr package among others.
    3. `sudo apt-get install rtl-sdr osmo-sdr gr-osmosdr' should get all this.
    4. It is better to blacklist this device for the kernel point of view by creating a file named /etc/modprobe.d/no-rtl.conf and putting
      blacklist dvb_usb_rtl28xxu
      blacklist rtl2832
      blacklist rtl2830
      as the first three lines (sudo gedit /etc/modprobe.d/no-rtl.conf and add the lines).
    5. Now rtl-sdr block will be available at gnuradio and you can run the experiment with the dongle.
    6. Why should this work at all, looks to be the most dump fm receiver ever, but it works. It is your job now to figure out.


    Send suggestions and/or comments to: bsraj att ee . Better to use the Right to Information (RTI) act in the class than later.