# 2008-02-07 # # These files have not yet been update to use the new top_block/hier_block2 # interfaces. Until someone does that, this files will no longer run. # The files in this directory implement a fairly simple HF radio that works with the basic rx daughter board on the USRP. Many thanks to the Gnu Radio folks for a great new way to waste large blocks of time in infinitely tweaking a huge number of free parameters. Start the receiver by running the radio.py in this directory. Or from the Python prompt type "from radio import *" and you'll get the prompt back with the receiver running. You can then poke around to see what's going on. There are two spectrum displays. One is the output of the USRP and displays about 300KHz of bandwidth centered at the current tuning freq. The other displays the output spectrum of the demodulator. The demodulator does AM demod using the complex modulus block from gr. It does SSB demod using the frequency translating fir filter as a complex hilbert transformer. The taps for this filter were generated using a program called Scilab and the Scilab program in the file hfir.sci. More details in the associated files. Tune the receiver using the spin buttons under the big frequency display. The agc block is a roll your own. The standard agc in the newer CVS updates seems to work but doesn't seem to have adjustable time constants or provide access to internal signal nodes which are used for the RSSI. The AGC authority (a sort of gain parameter) and the reference level used in the power to dB computagion can be adjusted using the spin buttons. The audio bandwidth can be similarly adjusted from about 50Hz to 10KHz. The GUI layout was produced using wxGlade. The file radio.xml is the GUI specification. It will produce a file called ui.py which is subclassed by classes defined in radio.py. The ui.py is purely generated by wxGlade all app specific code for the GUI is in radio.py. Most of the actual signal processing code is built up in the other included files using the hierarchical block facilities. This organization should make it easier to tweak to your heart's content. Known bugs weakness and other wxPython and wxGlade seem to conspire to insure that the layout can never be exactly what you have in mind. Some of the controls don't behave as one might like. wx spin controls and spin boxes only support integers so it is rather a nuisance to make units come out nice. In the process of development I came up with a reasonable kluge so there is a mixture of approaches. Enjoy. M. Revnell 2006-Jan-06