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.
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.
- Please set the topblock option to QT GUI.
- If the window size is small, please set the window size in the topblock.
Topic |
grc file |
(1) Source/Sink/Throttle |
- Remember to set the Options on top-left block to QT GUI.
- A block can be searched by first typing Ctrl+F and searching for the name.
- The program is run by clicking the execute button on the top panel(14th icon there).
- 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.
- Play with the noise-voltage slider on the plots, notice the spectrum.
- Change all the blocks to complex and observe the constellation.
|
(2) Delay and Scale |
- We have not done this in demo class, but this is a simple extension.
- A signal, its delayed version and also a scaled version are shown simultaneously.
- Delay is controlled by a range block with ID delay_param, and amplitude is chosen by amp_param.
- Execute the graph and play with the sliders for these parameters.
- 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.
- 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 |
- The program generates the notes Sa-Ri-Ga-Ma-Pa-Da-Ni-Sa and then reverses it after a delay.
- The corresponding frequencies used are 240, 270, 300, 320, 360, 405, 450 and 480 (in Hz).
- The essential idea is to treat each value above as a voltage and send it to a VCO.
- The VCO sensitivity is adjusted to generate to be 1Hz per volt or 2*pi=6.28 rad/sec/volt.
- Each value is repeated 48k times to make each sound span a second (note that there are 48k samples per second).
- Observe the water-fall plot, and see the time-frequency pattern.
- Convert the flowgraph to play the next octave, also change the frequencies to play the
Karnatic raga `Mayamalavagaula'.
- 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.
- Playing 'Happy Birthday to you' is a more challenging assignment.
|
(4) FM-receiver |
- The current implementation uses the rtl-sdr dvb usb dongle.
- This requires the rtl-sdr package among others.
- `sudo apt-get install rtl-sdr osmo-sdr gr-osmosdr' should get all this.
- 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).
- Now rtl-sdr block will be available at gnuradio and you can run the experiment with the dongle.
- 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.
|