discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss-gnuradio] IPython Notebook


From: Dan CaJacob
Subject: [Discuss-gnuradio] IPython Notebook
Date: Tue, 15 Jan 2013 00:16:10 -0500

I had a nice discussion with Tom Ronadeau last weekend when he was in DC for an SDR conference.  I mentioned a project some of you may be aware of called the IPython notebook.  If you are familiar with IPython - the enhanced python shell, the IPython HTML Notebook is a locally-hosted web interface to an IPython kernel.  That web interface looks and feels a lot like Mathematica.  But whereas I never enjoyed Mathematica, I really like the IPython Notebook.  It allows you to cellularize your code (Matlab has a similar feature) and so iteratively modify and run code in a non-linear fashion that makes hacking (the constructive kind) and debugging really refreshing.  And you have all the introspective sugar and magic (functions) that come with IPython.

In the spirit of TICSMTC, I have attached a very simple IPython Notebook example that is basically a copy-n-paste of the BER AWGN simulation example from gr.org.

This notebook doesn't show off any of the fancier features of the notebook, but it's a dirt-simple GR example and hopefully illustrates the tool.

To install the latest stable release of the IPython Notebook on Ubuntu, pip is your friend:
sudo pip install ipython

or for a slightly more out-of-date version if you are running at least 12.0:
sudo apt-get install ipython-notebook

Open a terminal and start the notebook server by running:
ipython notebook --pylab inline

A new tab should open in your browser and you can import the example notebook.  Note that the notebook server currently isn't very filesystem saavy, so it will save all your notebooks in whatever directory you started the notebook server from.

A few more links:

A gallery of publicly available notebooks

For great (but mostly long) videos about the notebook, search YouTube for "NextDayVideo" and ipython notebook.  Anything by Fernando Perez is perfect.  Also Wes McKinney and his equally awesome pandas project for Python data analysis.

TL ; DR

The IPython Notebook was developed for scientific computing.  It actually has some really cool parallel processing stuff built right into it, like the ability to start and control a local or remote cluster.  But it's real value is in the concept of reproducible research.  The idea is that with one file or project, any individual should be able to reproduce every graph in a scientific research paper or textbook.  Some people are even writing their textbooks in the IPyNB.

There is support for LaTex and symbolic rendering.  You can run shell commands pythonically (just like in the IPython shell).  You can even run other interpreters like R using magic functions.

I can imagine some neat SDR tutorials laid out in the IPyNB - e.g. building a filter, then plotting the filter.  Generating a signal, then plotting it.  Generating noise and adding that, then filtering and showing the final result.  The end product is easy to distribute as a single file and allows some stress-free non-linear tinkering.

Happy hacking.

Attachment: GR BER AWGN.ipynb
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]