Home
PDF - UNT Digital Library
Contents
1. ChannelDemol 10000 150006 9001 8000 ll le EU a 2 7000 5 t 1 sooo 1 ale B PLACET ef lt 5 OPS rey A 500 1 s tite te 10000 eee 4000H 4 4 1500 ee 50 200 150 109 0 0 90 100 150 200 250 10000 5000 9 5000 10000 15000 f MHz Figure 5 15 Plot Tool Showing Spectrum and I Q Right click on a black rectangle on the right side of ChannelDemo component in the main window click on Plot option to plot output data for this waveform PlotCanvas window shows the spectrum plotting first if you want to see plot click on Plotting on PlotCanvas window and choose then the I Q plotting window will appear 5 1 1 5 OSSIE WaveDash By right clicking the components in the Waveform panel all components variables can be changed for the design Ossie WaveDash tool also can be used to achieve this goal After running ALF and plot waveform click on OSSIE from the Eclipse window choose Wavedash the Ossie WaveDash window will appear 62 Ossie WaveDash ossie demo 2 Waveforms Components Help m U ossie demo 1 pass data waveform 1 ossie demo 2 ossie demo 3 TxDemo1 Ta 500 59 ehanmem packet_delay_ms Channe
2. S Sehen 86 APPENDIX D WAVEFORM DEVELOPMENT GUID COMPONENT DESCRIPTIONS 2 6 tstef gestus ao tav 158 REFERENCE LIST 172 vi LIST OF TABLES Page T IEEE Wireless Standards 3 1 2 Available Software Defined 12 2 1 USRP 1 Specifications eec er a NEN YN NER TERRE TE ee Ron FE 14 DI Device Descriptions en paced detecte iudicet ees 170 vii LIST OF FIGURES Page 1 1 United States Frequency Allocations s i0 sie nian he aes 2 1 2 OPS K Constellation 5 1 3 Conceptual Transmitter Structure for 5 1 6 1 4 Receiver Structure for OPSK 6 L5 hmung Diagram for QPSK E ee 6 1 6 Basic Digital Communication System Diagram 2 9 1 7 Sottwate Radio Receive use eee eas 9 1 8 Software Radio Transmit Path eie 9 1 9 Communication System over GNU Radio 11 2 1 Universal Software Radio Peripheral 14 2 2 GNU Radio Software Architecture ie art istae io betonen didis toli idis eds 17 3 1 OSSIE Desktop Sereen 31 3 2 CORBA Naming Service Terminal 33 oe nal Me neat les it 36 4 2 USRP Probes o erbe as 40 4 3 FM Receiver Window Sc
3. Create Options Parser 89 parser OptionParser option_class eng_option conflict_handler resolve expert grp parser add option group Expert parser add option m modulation type choice choices demods keys default gmsk help Select modulation from s default odefault join demods keys usrp receive path add options parser expert for mod in demods values mod add options expert grp options args parser parse args if len args 0 parser print help sys stderr sys exit 1 if options rx freq is None Sys stderr write You must specify f FREQ or freq FREQ parser print help sys stderr sys exit 1 dest file open received dat w a build the graph tb my top block demods options modulation rx callback options gr enable realtime scheduling 90 ifr OK print Warning Failed to enable realtime scheduling start flow graph tb start print Ready to receive packets Stop rb flow graph raw_input dest_file close tb stop defon tag bus msg taglist msg parse tag print tag for key in taglist keys print t s 5 key taglist key our stream to play music stream uri file home UNT zc0029 Desktop one2one received dat player gst element factory make playbin player player set property uri music stream uri start playing player set state g
4. gr GR MSB FIRST ifself gray code self symbol mapper gr map bb psk binary to gray arity 0 1 else 100 self symbol_mapper gr map bb psk binary to ungray arity 0 1 self diffenc gr diff encoder bb arity self chunks2symbols gr chunks to symbols bc psk constellation arity 1 0 1 0 pulse shaping filter self rrc taps gr firdes root_raised_cosine self samples symbol gain samples per symbol since we re interpolating by samples_per_symbol self samples symbol sampling rate 1 0 symbol rate self excess_bw excess bandwidth roll off factor ntaps self rrc filter gr interp_fir_filter_ccf self samples per symbol self rrc taps Connect self connect self self bytes2chunks self symbol mapper self diffenc self chunks2symbols self rrc filter self 1f verbose self print verbage if log self setup logging defsamples per symbol self 101 return self samples per symbol defbits per symbol self None static method that s also callable on an instance return 1 bits per symbol staticmethod bits per symbol make it a static method RTFM def add options parser m Adds BPSK modulation specific options to the standard parser parser add option excess bw type float default def excess bw help set RRC excess bandwith factor default odefault parser add_option no gray code dest gray code actio
5. try main except KeyboardInterrupt pass C 3 Source Code for dbpsk py Copyright 2005 2006 2007 Free Software Foundation Inc This file is part of GNU Radio GNU Radio is software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either version 3 or at your option any later version GNU Radio is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the 97 GNU General Public License for more details You should have received a copy of the GNU General Public License along with GNU Radio see the file COPYING If not write to the Free Software Foundation Inc 51 Franklin Street Boston MA 02110 1301 USA See gnuradio examples python digital for examples m differential BPSK modulation and demodulation m from gnuradio import gr gru modulation utils from math import pi sqrt import psk import cmath from pprint import pprint default values used in init and add options def samples per symbol 2 def excess bw 0 35 def gray code True does not matter for BPSK def verbose False def log False costas alpha 0 1 def gain mu None 98 _def_mu 0 5 def omega relative limit 0 005 PHA T T TT
6. GNU Radio is software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either version 3 or at your option any later version GNU Radio is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details 147 You should have received a copy of the GNU General Public License along with GNU Radio see the file COPYING If not write to the Free Software Foundation Inc 51 Franklin Street Boston MA 02110 1301 USA from gnuradio import gr gru eng notation optfir from gnuradio import audio from gnuradio import usrp from gnuradio import blks2 from gnuradio eng option import eng option from gnuradio wxgui import slider powermate from gnuradio wxgui import stdgui2 fftsink2 form from optparse import OptionParser from usrpm import usrp dbid import sys import math import wx def pick subdevice u m The user didn t specify a subdevice on the command line Try for one of these in order TV RX BASIC RX whatever is on side A return a subdev spec m return usrp pick subdev u usrp dbid TV RX usrp dbid TV RX REV 2 usrp dbid TV RX REV 3 148 usrp dbid TV RX MIMO usrp_dbid TV_RX REV 2 MIMO usrp_dbid TV_RX REV
7. return 20 0 0 0 0 5 if name main app stdgui2 stdapp wfm rx block USRP WFM app MainLoop 157 APPENDIX D WAVEFORM DEVELOPMENT GUIDE COMPONENT DESCRIPTIONS 19 158 D 1 am_demod a Description Demodulator for amplitude modulated signals b Properties None c Interfaces Provides Rx In from USRP or Decimator complexShort Uses Out to sound card complexShort d Additional Notes Component names don t start with AM because this 1 interpreted as the start of an automake macro D 2 amplifier a Description Fixed gain amplifier for I and Q channels b Properties I gain float Gain for the I channel in linear units Q gain float Gain for the channel in linear units c Interfaces Provides dataIn complexShort Uses dataOut complexShort D 3 AutomaticGainControl a Description Automatic Gain Control b Properties energy lo float Low energy threshold energy hi float High energy threshold 159 k attack float Attack time constant k release float Release time constant g min float Minimum gain value g max float Maximum gain value rssi_pass float Received strength level above which data will be passed dInterfaces c Interfaces Provides data in complexShort Uses data out complexShort D 4 Channel a Description Simulates channels with varying complexity and effects b Properties AWGN Noise Power
8. sink gr sizeof gr complex rx agc dat self connect self rrc filter sink gr sizeof gr complex rx filter dat self connect self receiver sink gr sizeof gr complex rx receiver dat self connect self diffdec sink gr sizeof gr complex rx diffdec dat self connect self slicer gr file sink gr sizeof char rx slicer dat self connect self symbol mapper 108 gr file sink gr sizeof char rx symbol mapper dat self connect self unpack gr file sink gr sizeof char rx unpack dat def add options parser m Adds BPSK demodulation specific options to the standard parser parser add option excess bw type float default def excess bw help set RRC excess bandwith factor default 96default PSK parser add_option no gray code dest gray code action store false default def gray code help disable gray coding on modulated bits PSK parser add_option costas alpha type float default None help set Costas loop alpha value default odefault PSK parser add option gain mu type float default def gain mu help set M amp M symbol sync loop gain mu value default default GMSK PSK parser add option mu type float default def mu help set M amp M symbol sync loop mu value default default GMSK PSK parser add option omega relative limit type float default def omega relative
9. Checkpointing Phase 2 Commit Checkpointing completed Figure 3 2 CORBA Naming Service Terminal 33 If the naming service is running correct you should be able see the terminal looks like Figure 3 2 Every time you run the omniNames sh file the system will start the CORBA naming service The naming service is a standard service for CORBA applications and it allows you to associate abstract names with CORBA objects and allows you to find those objects by the corresponding names For this reason start the naming service before every time you run a waveform is very important otherwise your computer will be unable to find objects by the corresponding names and failure to run the waveform 34 4 DEVELOPMENT OF SISO SYSTEM OVER GNU RADIO 4 1 GNU Radio Examples 4 1 1 Hello World Example The Hello world example is a small test for GNU Radio and Python installation The result is to show Hello World in a dialog window Open a terminal enter the python interface by typing python When the python interface shows up type the Hello World code gt gt gt from gnuradio import gr Importing gr modules from GNU radio library gt gt gt import wx Importing wxPython GUI gt gt gt app wx PySimpleApp Define a new wxPySimpleApp gt gt gt frame wx Frame None 1 Hello World Define a new wxFrame gt gt gt frame Show 1 Show this frame True gt gt gt app
10. OSSIE system or run the waveform 3 3 1 Installing VMware Player Download VMware Player at http www vmware com download player you need to log in your VMware account and download the version you need If you are new just simply create your own account by your email address and a new password Then you can choose the version of VMware Player you want to install Make this file executable 29 by right click this file choose properties Permissions gt check mark make file executable This step is very important otherwise you will be unable to install this bundle file If you download VMware Player 3 1 4 for 64 bit Linux you will find a file named VMware Player 3 1 4 385536 x86 64 bundle where your download path is type following command into the terminal sudo bash VMware Player 3 1 4 385536 x86_64 bundle The VMware Player will be installed After the installation open VMware Player from Ubuntu main manual Applications gt System tools For detailed instructions you can read VMware Player User Manual from http www vmware com pdf vmware_player200 pdf Download OSSIE VMware image at http ossie wireless vt edu download vmware OSSIJE 0 8 2 Ubuntu 10 04 2 VM rar extract this file to another direction the purpose of this step is to save the original zip file as a backup in case you will need to start form a fresh install later also it could save time and bandwidth Once you comple
11. libboost filesystem dev libbo 3 2 1 Configure omniORB cd omniORB 4 1 4 cp sample cfg etc mv etc sample cfg etc omniORB cfg Depending on the omniORB dependency version the omniORB file may be 23 etc omniORB cfg or etc omniORB4 cfg If you cannot find the file just copy sample cfg from omniORB 4 1 4 directory and rename it Open the file as root gksu nautilus omniORB cfg And find the following line InitRef NameService corbaname my host name Uncomment the line by deleting the pound or hash character and change it to InitRef NameService corbaname 127 0 0 1 3 2 2 Installing Portions of GNU Radio OSSIE uses a small subset of GNU Radio to communicate with and configure the USRP 1 then follow the next step If you are using Ubuntu and would like to use GNU Radio v3 1 and enter sudo aptitude install libusrpO libusrp dev If you would like to use GNU Radio v3 2 and do not have Fedora 11 installed then you must install from source weet ftp ftp gnu org gnu gnuradio gnuradio 3 2 2 tar gz tar xvf gnuradio 3 2 2 tar gz cd gnuradio 3 2 2 24 configure make sudo make install At this point GNU Radio and its dependencies have been installed Now setup the proper permissions for the USRP As root create a group which will have access to the USRP usr sbin groupadd usrp Add users to the group which need access to the USRP usr sbin use
12. 1000 Decimator 2 551 pass 0 DecimateBy 1 OSSIE Eclipse Hardware Devices GPP USRP Sound card GNU Radio Hardware Devices 64 USRP Mother board USRP Daughter board BasicRX TX 1 to 250 MHz IF Transmitter and Receiver Antenna HG240RD SM SMA Bulkheads and other connection devices A speaker Open a new OSSIE waveform in Eclipse name it FM Receiver Double click on these six software components and default USRP_sound_node in the Available Resources panel they will appear in the Waveform and Platform panel Based on the design set all components variables correct Deploy all of the components to the default GPP_USRP_sound_node node and the GPP device by dragging them on to the GPP device instance in the platform panel under default USRP sound node Expand all components and device and connect them together To do this connect the following pairs by dragging one component port into another component port If the connection is successful the puzzle at the left side of the component port will be completed you can see the blue one connects the yellow one and form a complete rectangle a USRP Commander RX Control Uses gt USRPI RX Control b amplifier gt USRP1 RX data 65 c amplifier dataOut gt Decimator 01 inData d Decimator 01 outData gt AutomaticGainControl data in e AutomaticGainControl data out
13. BLL class transmit path gr hier block2 def self modulator class options See below for what options should hold gr hier block2 init self transmit path gr io signature 0 0 0 Input signature gr io signature l 1 gr sizeof gr complex Output signature options copy copy options make a copy so we can destructively modify self verbose options verbose self tx amplitude options tx amplitude digital amplitude sent to USRP self bitrate options bitrate desired bit rate self samples per symbol options samples per symbol desired samples baud self modulator class modulator class the modulator class we are using Get mod kwargs mod kwargs self modulator class extract kwargs from options options transmitter modulator self modulator class mod kwargs self packet transmitter 133 blks2 mod_pkts modulator access_code None msgq_limit 4 pad_for_usrp True self amp gr multiply_const_cc 1 self set tx amplitude self tx amplitude Display some information about the setup if self verbose self print verbage Connect components in the flowgraph self connect self packet transmitter self amp self defset tx amplitude self ampl m Sets the transmit amplitude sent to the USRP in volts param ampl 0 lt ampl lt 1 mm self tx amplitude max 0 0 min ampl 1 self amp set k self tx amplitude def send_pkt self pay
14. Description A digital modulator b Properties ModScheme string Type of demodulation scheme to use BPSK QPSK 8PSK 160AM 4PAM c Interfaces Provides bitsIn realChar Uses symbolsOut complexShort D 10 DigitalModulator a Description A digital modulator 163 b Properties ModScheme string Type of demodulation scheme to use BPSK QPSK 8PSK 16QAM 4PAM c Interfaces Provides bitsIn realChar Uses symbolsOut complex Short D 11 FrameAssembler a Description Assembles frames for the modem b Properties mod type string Modulation type BPSK QPSK 8PSK 160AM FrameSizeOptionNumber ushort Frame Size Option Number FrameSizeOption 1 ushort Frame Size for Option 1 FrameSizeOption 2 ushort Frame Size for Option 2 FrameSizeOption 3 ushort Frame Size for Option 3 FrameSizeOption 4 ushort Frame Size for Option 4 c Interfaces Provides SymbolsIn complexShort Uses FrameSymbolsOut complexShort 0 12 Interpolator a Description Interpolates the input signal b Properties InterpFactor k ushort Interpolation factor filter float Interpolating filter coefficients 164 pulse_shape string Type of pulse shape to use for the filter prototype m ushort Symbol Delay beta float Excess bandwidth factor c Interfaces Provides inData complexShort Uses outData complexShort D 13 JPEG VideoViewer a Descript
15. into the terminal you can stop the waveform b Running the NodeBooter in Eclipse In Eclipse choose OSSIE gt Run Nodebooter If the system asks for the root password enter wireless Leave the defaults and click on Note If you need to use the other nodes for your waveform project press Browse button by the side of Start Domain Manager navigate to sdr dev nodes lt the node name gt and choose the file named DeviceManager dcd xml Leave the defaults in Figure 5 10 and click amp Start Device Manager DeviceManager dcd xml Browse Start Domain Manager DomainManager dmd xml Browse Optional Arguments Figure 5 10 NodeBooter Node Setting You will see the Object Added Events for Device Manager SourceName Device Manager and APP device SourceName GPP1 in the console within Eclipse 58 43 Applications Places 5 SSIE Labl Lab1 owd Eclipse SDK gt soundCardCapture soundCardPlayback Nodes default_GPP_USRP2_node default USRP node lt USRP sound node riv 8 Orar v er B cic x Ge Out 7 O eB LabLowd 3 n Douce vete RN ui Available Resources Waveform mcr Sil TxDemo_1 default _GPP_node_1 GPP1 x 5 symbols out complexShort gt Chan
16. secret of signal wireless transmission is electromagnetic radiation The electromagnetic radiation is one kind of wave like energies when it travels through space To put it simply a system which can send modulated electromagnetic waves containing the message signal through free space with a certain frequency range is called a radio system and the electromagnetic waves can be generated by an alternating current fed antenna Electromagnetic radiation frequencies are called electromagnetic spectrum or radio spectrum U S National Telecommunications and Information Administration NTIA office of spectrum management accounted radio spectrum in October 2003 a 3 KHz to 300 GHz radio allocations in United States is showed in Figure Li WAVELENGTH 3 x10 m 3 x 10 m 3 x 10 m 30000 3 x t m 300m DESIGNATIONS VERY LOW FREQUENCY Infra sonics Sonics 12 ACTIVITIES 1 MHz 10 MHz 100 MHz THE RADIO SPECTRUM MAGNIFIED ABOVE FREQUENCY 0 10 kHz 100 kHz 10 10 GHz Figure 1 1 United States Frequency Allocations United States uses medium wave frequency band for AM radio its frequency range is from 520 KHz to 1610 KHz and FM radio frequency range is from 87 8 MHz to 108 MHz Within this range channels 200 through 300 are covered channels 200 to 220 87 9 to 91 9 MHz a reserved band for non commercial educational NCE stations and channels 221 to 300 9201 MHz
17. sudo addgroup usrp sudo usermod G usrp a lt YOUR_USERNAME gt echo ACTION add BUS usb SYSFS idVendor fffe SYSFS idProduct 0002 GROUP usrp MODE 0660 gt tmpfile sudo chown root root tmpfile sudo mv tmpfile etc udev rules d 10 usrp rules where the lt YOUR_USERNAME gt is your user name for example if your name is student you can type sudo usermod G usrp a student For the udev to reload the rules take the next script and reboot your computer sudo udevadm control reload rules or sudo etc init d udev stop sudo etc init d udev start or sudo killall HUP udevd Now you can plug in your USRP to the computer by the USB and check if your USRP is being recognized or not 19 Typing the following line in your terminal Is IR dev bus usb grep usrp If your USRP is being recognized there will be a line shows up in your terminal like this crw rw root usrp 189 514 Mar 24 09 46 003 and one line represent one USRP if you have multiple USRPs plugged in you will read multiple lines 2 2 4 Installing in a Custom Directory The GNU Radio will be installed to usr local direction generically and if you want to install it to the location you choose the solution is to configure the built to use the custom prefix which will make the GNU Radio be installed to opt gnuradio boostrap configure prefix opt gnuradio This next step is necessary because the cust
18. xrate if samples per symbol is not None info x for x in info if x 1 samples per symbol if xrate is not None info x for x in info if x 2 xrate return info def pick best target bitrate bits per symbol info mun returns tuple bitrate samples per symbol interp rate or decim rate if len info 0 raise RuntimeError info is zero length iftarget bitrate is None return the fastest one return info 1 convert bit rate to symbol rate target symbolrate target bitrate bits per symbol Find the closest matching symbol rate In the event of a tie the one with the lowest samples per symbol wins 120 We already sorted them so the first one is the one we take best info 0 best_delta abs target_symbolrate best 0 for x in info 1 delta abs target_symbolrate x 0 if delta lt best_delta best_delta delta best x convert symbol rate back to bit rate return best 0 bits per symbol best 1 def pick bitrate bitrate bits per symbol samples per symbol xrate converter rate xrates gen info m returns tuple bitrate samples per symbol interp rate or decim rate mun if not isinstance bits per symbol int or bits per symbol 1 raise ValueError bits per symbol must be an int gt 1 if samples per symbol is not None and xrate is not None completely determined return float converter rate xrate samples per sym
19. 3 MIMO usrp dbid BASIC RX class wfm rx block stdgui2 std top block def selfjframe panel vbox argv stdgui2 std top block init self frame panel vbox argv parser OptionParser option class eng option parser add option R rx subdev spec type subdev default None help select USRP Rx side A or B default A parser add_option f freq type eng float default 100 16e6 help set frequency to FREQ metavar FREQ parser add option g gain type eng float default 40 help set gain in dB default is midpoint parser add option V volume type eng float default None help set volume default is midpoint parser add option O audio output type string default help pcm device name E g hw 0 0 surround51 or dev dsp options args parser parse args if len args 0 parser print help sys exit 1 self frame frame self panel panel 149 self vol 0 self state FREQ self freq 0 build graph self u usrp source_c usrp is data source adc rate self u adc rate 64 MS s usrp decim 150 self u set decim rate usrp decim usrp rate adc rate usrp decim 320 kS s chanfilt_decim 1 demod rate usrp rate chanfilt decim audio decimation 10 audio rate demod rate audio decimation 32 kHz if options rx subdev spec is None options rx subdev spec pick subdevice self u self u set mux usr
20. Input signature gr io signature 0 0 0 Output signature if options tx freq is None Sys stderr write f FREQ or freq FREQ or tx freq FREQ must be specified in raise SystemExit tx path transmit path transmit path modulator class options for attr in dir tx path Zforward the methods if not attr startswith and not hasattr self attr setattr self attr getattr tx path attr setup usrp self modulator class modulator class self setup usrp sink options connect self connect tx_path self u def setup usrp sink self options Creates a USRP sink determines the settings for best bitrate and attaches to the transmitter s subdevice self u usrp options create usrp sink options dac rate self u dac rate if options verbose print USRP Sink self u self bitrate self samples per symbol self interp V pick tx bitrate options bitrate self modulator class bits per symbol options samples per symbol options interp dac rate 146 self u get_interp_rates self u set interp self interp self u set auto tr True if not sel u set center freq options tx freq print Failed to set Rx frequency to s eng notation num to str options tx freq raise ValueError eng notation num to str options tx freq C 12 Source Code for usrp wfm rcv py usr bin env python Copyright 2005 2006 2007 2009 Free Software Foundation Inc This file is part of GNU Radio
21. Install Ubuntu gt mark Download updates while installing if your computer is connected to the internet and Install this third party software gt click Forward gt mark Install Ubuntu 10 04 with your Current System or Install Ubuntu by the entire disk gt click Forward gt click Install Now gt setting your location gt click Forward gt setting your keyboard layout optional gt click Forward gt create your use name and 76 password gt click Forward gt wait for installation gt when the Installation Complete window appears click Restart Now then you can enjoy the convenience of Ubuntu 77 APPENDIX AVAILABLE DAUGHTER BOARDS AND OTHER DEVICES 78 B 1 BasicRX BasicTX Reviver Transmitter for use with external RF hardware 1 to 250 MHz IF Transmitter and Receiver m E ne Figure B 1 Basic TX RX B 2 LFRX DC to 30 MHz receiver Transmitter DC to 30 MHz Transmitter and Reviewer Figure B 2 LFTX LFRX 79 3 TVRX 50 to 860 MHz receiver Dual 50 MHz to 860 MHz Receiver Figure B 3 TVRX2 B 4 DBSRX 800 MHz to 2 4 GHz receiver 800 MHz to 2 4 GHz Receiver Figure B 4 DBSRX2 B 5 WBX 50 MHz to 2 2 GHz transceiver Frequency Range 50 MHz to 2 2 GHz Transmit Power 30 to 100 mW typical Dual synthesizers for independent TX
22. TH T T I BPSK modulator PHA ATT class bpsk mod gr hier block2 def self samples per symbol def samples per symbol excess bw def excess bw gray code def gray code verbose def verbose log def log mn Hierarchical block for RRC filtered differential BPSK modulation The input is a byte stream unsigned char and the output is the complex modulated signal at baseband samples per symbol samples per baud gt 2 type samples per symbol integer excess bw Root raised cosine filter excess bandwidth type excess bw float param gray code Tell modulator to Gray code the bits type code bool param verbose Print information about modulator 99 type verbose bool param log Log modulation data to files type log bool m gr hier block2 init self bpsk mod gr io signature l 1 gr sizeof char Input signature gr io_signature 1 1 gr sizeof gr complex Output signature self samples per symbol samples per symbol self excess bw excess bw self gray code gray code if not isinstance self samples per symbol int or self samples per symbol 2 raise TypeError sbp must be an integer gt 2 is d self samples per symbol ntaps 11 self samples per symbol arity pow 2 self bits per symbol arity 2 1 2 turn bytes into k bit vectors self bytes2chunks gr packed to unpacked bb selfbits per symbol
23. VERT2450 d HG240RD SM B 14 USRP Mother Board e Four 64 MS s 12 bit analog to digital converters e Four 128 MS s 14 bit digital to analog converters e Four digital down converters with programmable decimation rates e Two digital up converters with programmable oe Figure B 14 interpolation rates e High speed USB 2 0 interface 480 Mb s e Capable of processing signals up to 16 MHz wide e Modular architecture supports wide variety of RF daughter boards e Auxiliary analog and digital I O support complex radio controls such as RSSI and AGC e Fully coherent multi channel systems MIMO capable 85 APPENDIX SOURCE CODES FOR SISO COMMUNICATION SYSTEM OVER GNURADIO 86 C 1 Source Code for benchmark_rx py usr bin env python Copyright 2005 2006 2007 2009 Free Software Foundation Inc This file is part of GNU Radio GNU Radio is software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either version 3 or at your option any later version GNU Radio is distributed in the hope that it will be useful but WITHOUT ANY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details You should have received a copy of the GNU General Public License along with GNU Rad
24. WFMDemod dataIn WFMDemod dataOut gt Decimator 02 inData g Decimator 02 outData gt soundCardPlayback soundOut Here the USRP Commander should be the assembly controller to do this right click on the USRP Commander in the Waveform layout panel and select Set Assembly Controller If this action is active the rectangle at the left side of USRP Commander component will become to be blue in both Waveform and Platform layout panels 66 Waveform USRP Commander 01 detault_GPP_USRP_sound_node_1 GPP1 TX Control TX Control not connected BE Control RX Control gt USRP1 RX Control USRP1 RX Control Data Control Resource not connected amp amplifier 01 default USRP sound node 1 GPP1 dataln complexShort lt USRP1 RX Data 1 USRP1 RX Data 1 dataOut complexShort gt Decimator 01 inData Decimator 01 inData Decimator_01 default GPP USRP sound node 1 GPP1 inData complexShort lt amplifier 01 dataOut El amplifier 01 dataOut outData complexShort gt AutomaticGainControl Ol data in AutomaticGainControl 01 data in amp AutomaticGainControl 01 default USRP sound node 1 GPP1 data in complexShort lt Decimator 01 outData B Decimator 01 outData data out complexShort gt WFMDemod 01 dataln WFMDemod_01 datain 8 01 default USRP sound node 1 GPP1 datain
25. a sharper sound and lower tone with lower frequencies Stop this program by typing Ctrl z or close the terminal 4 2 SISO Communication System over GNU Radio This project shows a single input single output communication system In this project signals will be sent from one USRP to another one through the air by DBPSK modulation 4 2 1 Hardware and Software Requirements Two PCs has Ubuntu 10 04 installed Two USRP Mother boards Two USRP Daughter boards RFX2400 2 3 2 9 GHz transceiver Two Antennas HG240RD SM Two SMA Bulkheads and other connection device A speaker 4 2 2 System Design Setup and Running 39 Insert RFX2400 daughter board to Mother board RXA TXA side Connect antenna to the RFX2400 TX RX port by using a SMA Bulkhead also plug in the USRP power wire and USB wire to the USRP and connect them to the power supply and computer one which is the transmit side Repeat this for computer two which is the receive side and GNU Radio hardware on another side of the system Also connect a speaker to the receiver side computer two Before running the project make sure the USRP is connected successfully To make sure the USRP connection open a terminal and type usrp_probe If the connection is correct a widow like Figure 4 2 will appear Daughter Board 7 Daughter Board ayy gt gt gt USRP Probe gt gt gt USRP Probe Name Name Flex 2400 Rx MIMO B Flex 2400 Tx MIMO B Converter R
26. and RX frequencies Figure 5 WBX 80 The frequency range of the WBX covers many bands of interest including white spaces broadcast television public safety land mobile communications and low power unlicensed devices B 6 RFX400 400 500 MHz transceiver Transceiver 100 mW output 45dB be changed to cover 200 MHz up to 800 MHz with a hardware mod Figure B 6 RFX400 B 7 RFX900 750 1050 MHz transceiver I ms Frequency Range 750 to 1050 MHz Transmit Power 200 mW typical Dual synthesizers for independent TX and RX frequencies Features coverage of cellular paging two way radio and 902 to 928 MHz ISM band Figure B 7 RFX900 81 1200 1150 1450 MHz transceiver Frequency Range 1150 to 1450 MHz Transmit Power 200 mW typical Dual synthesizers for independent TX and RX frequencies Features coverage of navigation satellite and amateur bands Figure B 8 RFX1200 B 9 RFX1800 1 5 2 1 GHz transceiver Frequency Range 1 5 to 2 1 GHz Transmit Power 100 mW typical Dual synthesizers for independent TX and RX frequencies Features coverage of DECT US DECT and PCS including unlicensed frequencies Figure B 9 RFX1800 82 10 RFX2400 2 3 2 9 GHz transceiver Figure B 10 RFX2400 B 11 XCVR2450 2 4 GHz XCVR2450 2 4GHz and 5 GHz Tronsceiver Copyright 2007 Ettus Rereorch LLC
27. complexShort lt AutomaticGainControl 01 out AutomaticGainControl 01 out dataOut complexShort gt Decimator 02 inData Decimator 02 inData inData complexShort lt WFMDemod_01 dataOut wFMDemod 01 dataOut outData complexShort gt soundCardPlayback1 soundOut soundCardPlavback1 soundOut Figure 5 17 OSSIE FM Receiver Waveform Panel 67 Platform default_GPP_USRP_sound_node_1 GPP1 USRP Commander 01 default USRP sound node 1 GPP1 amp amplifier 01 default USRP sound node 1 GPP1 Decimator 01 default USRP sound node 1 1 AutomaticGainControl 01 default USRP sound node 1 GPP1 amp wrMDemod 01 default USRP sound node 1 GPP1 Decimator 02 default USRP sound node 1 GPP1 lg USRP1 d TX Control TX Control not connected Control RX Control lt USRP Commander 01 RX Control USRP Commander 01 RX Control d TX Data complexShort not connected Data 1 complexShort gt amplifier 01 dataln amplifier 01 Data 2 complexShort not connected soundCardCapture1 complexShortOut complexShort not connected lg soundCardPlayback1 soundOut complexShort lt Decimator 02 outData Decimator 02 outData soundinControl audioInControl not connected 1 soundOutControl audioOutControl not connected soundin AudioPort not connec
28. defset center freq self target freq 113 ifself type USRP1_ TYPE return self u tune self dxc self subdev target freq elifself type USRP2 TYPE return self u set center freq target freq elifself type DUMMY return dummy freq result target freq def freq range self ifself type USRPI TYPE return self subdev freq range elifself type USRP2 TYPE return self u freq range elifself type DUMMY return 10e9 10e9 100e3 defset lo offset self lo offset if self type 1 TYPE return self subdev set lo offset lo offset elifself type USRP2 TYPE return self u set lo offset lo offset elif self type DUMMY return True defset auto tr self enable ifself type USRPI TYPE return self subdev set auto tr enable def del self try Avoid weak reference error del self u del self subdev except pass PHHHHHHHBHBHHHHHHBHBHBHHHHHHBHHBHBHHHHHHBHBHBHHHHHHHHBHBHHHHHHBHBHBHHHHBHE generic usrp source PIHHHHHHHHBHHHHHHBHBHBHHHHHHBHHBHBHHHHHHBHBHBHHHHHHBHBHRBHHHHHHBHBHBHHHHBBE class generic usrp source c generic usrp base gr hier block2 114 m Create a generic usrp source that represents usrp and usrp2 Take usrp and usrp2 constructor arguments and try to figure out usrp or usrp2 Provide generic access methods so the API looks the same for both def init self kwargs gr hier block2 init self generic usrp sourc
29. in amp RxDemo 1 default GPP node 1 GPP1 Platform g default_GPP_node_1 default USRP sound node default GPP node default GPP sound node default ml403 node TxDemo 1 default node 1 GPP1 ChannelDemo 1 default node 1 GPP1 amp RxDemo 1 default GPP node 1 GPP1 E Problems j Tasks OSSIE Info Console OSSIE Labl Labl owd ossie ossie desktop Figure 5 13 QPSK Waveform Output Eclipse Window 60 5 1 1 4 ALF Graphical Debugging Environment ALF from which you can install and start waveforms provides a graphical user interface for waveform After you run the NodeBooter and start the naming service in Eclipse click on OSSIE gt ALF double click on the waveform you want to run in the Waveform Application panel then you will see your waveform appears in the Application panel Right click on your waveform in the Application panel to display the waveform s components in the main window ALF Waveform Debugger my_ossie_demo Launch Components as Waveforms 2 ChannelDemo GPP RxDemo TxDemo Manage Waveforms OSSIE ossie demo 1 Figure 5 14 ALF Showing Waveform Running 61 PlotCanvas ox Plotcanvas cox Blotting Help Blotting Help ChannelDemol
30. internet MIMO SOFDMA 802 16 Family 802 16m 2011 10 66 GHz LTE 1992 2011 1 4 MHz General 4G OFDMA MIMO 3GPP Family 20MHz SC FDMA iBurst 2000 1 79GHz Mobile Internet HC 802 20 family SDMA TDD MI MO UMTS TDD 2002 1900MHz Mobile internet COMA TDD UMTS 3GSM 2620MHz WPAN 2006 57GHz High Rate MB OFDM 802 15 3 64GHz wireless PAN WRAN 802 22 July 2011 6MHz TV Broadcast OFDMA Cognitive Radio Bands In Table 1 1 IEEE 802 11 is the standards for WLAN wireless local area network computer communication in the 2 4 3 6 and 5GHz frequency bands In this family 802 11 announced in 1997 was the first one 802 11b was the first widely used standard followed by 802 11g and 802 11n and other standards in this family are published as extensions or corrections for previous specifications First WiFi wireless fidelity technology was developed in 1997 it is a wireless technology for high speed internet and network connection WiMAX worldwide interoperability for microwave access is implemented by IEEE 802 11 family it can provide home and mobile internet access over a long distance It is also widely used in different contries LTE long term ecolution is a standard for maintaining 3GPP 34 generation partnership project projects and increasing wireless data networks capacity and speed The iBurst or HC SDMA high capacity spatial division multiple access is a mobile broadband wireless ac
31. limit help M amp M clock recovery omega relative limit default odefault GMSK PSK add options staticmethod add options def extract kwargs from options options m 109 Given command line options create dictionary suitable for passing to init return modulation utils extract kwargs from options bpsk demod init self options extract kwargs from options staticmethod extract kwargs from options Add these to the mod demod registry modulation utils add type 1 mod bpsk bpsk mod modulation utils add type 1 demod bpsk bpsk demod C 4 Source Code for generic usrp py Copyright 2009 Free Software Foundation Inc This file is part of GNU Radio GNU Radio is software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either version 3 or at your option any later version GNU Radio is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details You should have received copy of the GNU General Public License 110 along with GNU Radio see the file COPYING If not write to the Free Software Foundation Inc 51 Franklin Street Boston MA 02110 1301 USA USRP1_TYPE usrp1 USRP2_TYPE usr
32. long The power of the AWGN noise Fading Type string Specifies the fading type Valid values are Ricean and None Envelope Fading Only string True if fading doesn t affect the signal phase valid values are True and False K Fading factor double The Ricean K factor 0 implies Rayleigh fading Max doppler rate double The maximum doppler rate as divided by the sampling rate list string Returns a sequence of strings with the names of the available Provides ports 160 Interfaces Provides data_in complexShort Uses data_out complexShort D 5 ChannelDemo a Description Simulates a very basic AWGN channel b Properties noise_std_dev short Standard deviation of noise phase_offset float Phase offset in degrees c Interfaces Provides samples_in complexShort Uses samples_out complexShort D 6 Conv_Dec a Description A convolutional decoder b Properties rate index short The index of the decoding rate from the supported rates table For a custom rate use rate_index 0 mode short Unknown description k short Input bits at a time for the custom rate_index 0 with encoder rate k n K short Constraint length for the custom rate_index 0 short Output bits at a time for the custom rate_index 0 has to match the number of supplied polynomials rate_index 0 The encoder rate k n 161 generatorPolynomials short A list of genera
33. range options gain float g 0 g 1 2 if options volume is None g self volume range options volume float g 0 g 1 2 if abs options freq lt 1 options freq 1 6 set initial values self set gain options gain self set vol options volume if not sel set freq options freq self set status msg Failed to set initial frequency def set status msg self msg which 0 self frame GetStatusBar SetStatusText msg which def build gui self vbox usrp rate demod rate audio rate def form set freq kv return freq kv freq 152 if 1 self src fft fftsink2 fft sink c self panel title Data from USRP fft size 512 sample rate usrp rate ref scale 32768 0 ref level 0 y divs 12 self connect self src fft vbox Add self src fft win 4 wx EXPAND if 1 post filt fft fftsink2 fft sink f self panel title Post Demod fft size 1024 sample rate usrp rate y per div 10 ref level 0 self connect self guts fm demod post filt fft vbox Add post filt fft win 4 wx EXPAND if 0 post deemph fft fftsink2 fft sink f self panel title Post Deemph fft size 512 sample rate audio rate y per div 10 ref level 20 self connect self guts deemph post deemph fft vbox Add post deemph fft win 4 wx EXPAND control area form at bottom self myform myform form form hbox 7 wx BoxSizer wx HORIZONTAL hbox Add 5 0 0 myform freq form flo
34. speaking any kind of device which can wirelessly transmit or receive signals within the radio frequency RF can be called radio it exists in mobile phones vehicles and computers etc The traditional hardware based radio devices can only be modified by physical intervention higher production costs and less flexibility narrows its use in supporting multiple waveform standards However Software Defined Radio in which some or all of the physical layer functions are software controlled allows multi mode multi functional or multi band devices which makes it comparatively inexpensive and efficient The approach is to handle different types of signals by loading the appropriate program Software defined radio s operates by modifiable software or firmware operating on programmable processing technologies such as FPGA field programmable gate arrays DSP digital signal processors GPP general purpose processors SOC programmable System on Chip and other specific application programmable processors The convenience gained by using these technologies is that it is easy to add new capabilities and wireless features to existing radio systems by programming without changing required new hardware expense 1 2 2 The Structure of a Software Radio System In the digital communication system the fundamental diagram and basic elements can be illustrates by Figure 1 6 7 Information source and encoder input transducer Digital Modu
35. symbol_mapper gr map bb psk ungray to binary arity 7 0 1 unpack the bit vector into a stream of bits self unpack gr unpack k bits bb self bits per symbol if verbose self print verbage if log self setup logging Connect and Initialize base class self connect self self pre scaler self agc self rrc filter self receiver self diffdec self slicer self symbol mapper self unpack self defsamples per symbol self return self samples per symbol def bits per symbol self None 7 staticmethod that s also callable on an instance return 1 bits per symbol staticmethod bits per symbol make it a static method RTFM 107 HK HK HK HK FH def print verbage self print nDemodulator print bits per symbol 96d 615 per symbol print Gray code Vos self gray code print RRC roll off factor 2f 9o self excess bw print Costas Loop alpha 2 self costas alpha print Costas Loop beta 2 Vo self costas beta print M amp M mu 2f self mm mu print M amp M mu gain 2e self mm gain mu print M amp M omega 2f self mm omega print M amp M omega gain 2 self mm gain omega print M amp M omega limit 2f self mm omega relative limit def setup logging self print Modulation logging turned on self connect self pre scaler gr file sink gr sizeof gr complex rx prescaler dat self connect self agc
36. the GNU General Public License for more details You should have received a copy of the GNU General Public License along with GNU Radio see the file COPYING If not write to the Free Software Foundation Inc 51 Franklin Street Boston MA 02110 1301 USA from gnuradio import gr import usrp_ options import transmit_path from pick_bitrate import pick_tx_bitrate from gnuradio import eng notation 144 def add_freq_option parser mn Hackery that has the f freq option set both tx freq and rx freq def freq callback option opt str value parser parser values rx freq value parser values tx freq value if not parser has_option freq parser add option f freq type eng_ float action callback callback freq_callback help set Tx and or Rx frequency to FREQ default odefault metavar FREQ def add options parser expert add freq option parser usrp options add tx options parser transmit path transmit path add options parser expert expert add option tx freq type eng float default None help set transmit frequency to FREQ default odefault metavar FREQ parser add option v verbose action store true default False class usrp transmit path gr hier block2 def self modulator class options m See below for what options should hold 145 gr hier block2 self usrp_transmit_path gr io_signature 0 0 0
37. the ability to start and stop other components The TxDemo in Waveform panel should look like Figure 5 5 53 Applications Plac OSSIE Labl Labl owd Eclipse SDK riv vOvay 7 055 ge Outl B 08 Lablowd ELI z Available Resources Waveform GPP aie 1 B ER USRP symbols out complexShort gt ChannelDemo 1 samples in IL USRP2 amp ChannelDemo 1 default GPP node 1 GPP1 J samples in complexShort lt TxDemo 1 symbols out soundCardCapture samples_out complexShort gt RxDemo 1 symbols in soundCardPlayback amp RxDemo 1 default GPP node 1 GPP1 Nodes Platform default_GPP_USRP2_node 48 default GPP node 1 default_GPP_USRP_node gicPPi default_GPP_USRP_sound_node Sil _1 default_GPP_node_1 GPP1 amp default_GPP_node ChannelDemo_1 default_GPP_node_1 GPP1 default_GPP_sound_node E _1 default GP node 1 GPP1 default 403 node E Problems 2 Tasks 8 OSSIE Info Console 5 rjv n No consoles to display at this time OSSIE Labl Labl owd Figure 5 5 QPSK Demo Eclipse Assembly Controller Setting Expand TxDemo ChannelDemo and RxDemo and connect them To do this two connections have to be made First of all drag symbols out port on the TxDemo to the samples in port on the ChannelDemo Secondly dr
38. the system And all details of those components and devices can be found in 4 2 6 or online source at http ossie wireless vt edu trac wiki WaveformDevelopmentGuide b Waveform This panel is where to drag components to add them to the waveform 51 Platform This panel is where to drag nodes and devices to add them to the platform Click on the triangle on the left side of Components to expand the list of available components Adding components to the design by double left clicking on the component you need or clicking on the component for the design and hold down the left mouse button with the mouse then drag the component to the waveform panel Adding nodes to the Platform by double clicking on the node and it will appear in the Platform panel In this Lab the communication system consists of three components transmitter demo channel demo and receiver demo So double click on TxDemo ChannelDemo RxDemo and find default_GPP_node under the Nodes in the Available Resources panel double click on it Expand the default_GPP_node in the Platform panel to show the GPP 1 device assigned to it To deploy TxDemo to the GPP1 drag TxDemo from the waveform panel onto in the platform panel Repeat the same process for ChannelDemo and RxDemo Now the editor should be like Figure 5 4 52 4 Applications Places system ME E Y OSSIE Labl Labl owd Eclipse SDK File Edit Source Refactor N
39. to 107 9 MHz are for commercial and non commercial stations In order to transmit the designed signal modulation system is introduced By using different modulation methods to change diversified properties amplitude frequency pulse width and phase of radiation waves designed information signals can be carried Generally there are four types of modulation digital modulation analog modulation digital baseband modulation and pulse modulation The digital modulation is normally used to transfer digital bit stream over an analog bandpass channel and the analog modulation is used to transfer analog baseband or lowpass audio or TV signals over an analog bandpass channel For analog signals amplitude modulation AM frequency modulation FM and phase modulation PM are widely used and AM and FM modulation are key technologies for radio systems The fundamental digital modulation methods include phase shift keying PSK frequency shift keying FSK amplitude shift keying ASK quadrature amplitude modulation QAM etc The PSK modulation is used for communication system project over GNU Radio and OSSIE Open Source SCA Implementation Embedded I introduce in Chapter 4 and Chapter 5 Table 1 1 IEEE Wireless Standards Name Year Frequency Primary Use Radio Tech Wi Fi 802 11 1997 2 4 5 3 7 Mobile internet OFDM MIMO 802 11 family 802 11n 2009 2 4 5GHz WiMAX 802 16 2001 2 11 GHz Mobile
40. 2 TYPE except try self setup usrpx USRP1 TYPE except raise Exception Failed to automatically setup a usrp device post usrp setup ifself lo offset is not None self set lo offset self lo offset self set gain gain auto tr True def setup usrpx self type Call the appropriate setup method type the usrp type constant mm self type type 112 if self type USRP1_TYPE self setup usrpl elif type USRP2 TYPE self setup 2 elif self type DUMMY self setup dummy def str self ifself type USRPI TYPE return self subdev side and elifself type USRP2 TYPE return Interface s MAC Address os D Board ID 0x 2x self u interface name self u mac addr self u daughterboard id elif self type DUMMY return Dummy USRP Device def gain self return self gain defset gain self gain None automatic gain calculation r self gain range if gain is None gain r 0 r 1 2 set gain to midpoint set gain for usrp self gain gain ifself type TYPE return self subdev set gain gain elif self type USRP2 TYPE return self u set gain gain elifself type DUMMY TYPE return True def gain range self if self type USRPI TYPE return self subdev gain range elif self type USRP2 TYPE return self u gain range elif self type DUMMY return 0 0 0
41. COMMUNICATION SYSTEM OVER GNU RADIO AND OSSIE Zizhi Cheng Thesis Prepared for the Degree of MASTER OF SCIENCE UNIVERSITY OF NORTH TEXAS December 2011 APPROVED Shengli Fu Major Professor Hualiang Zhang Committee Member Kamesh Namuduri Committee Member Murali Varanasi Chair of the Department of Electrical Engineering James D Meernik Acting Dean of the Toulouse Graduate School Cheng 71701 Communication System over Radio and OSSIE Master of Science Electrical Engineering December 2011 172 pp 4 tables 55 illustrations bibliography 26 titles GNU Radio and OSSIE Open Source SCA Software communication architecture Implementation Embedded are two open source software toolkits for SDR Software Defined Radio developments both of them can be supported by USRP Universal Software Radio Peripheral In order to compare the performance of these two toolkits an FM receiver over GNU Radio and OSSIE are tested in my thesis test results are showed in Chapter 4 and Chapter 5 Results showed that the FM receiver over GNU Radio has better performance due to the OSSIE is lack of synchronization between USRP interface and the modulation demodulation components Based on this the SISO Single Input Single Output communication system over GNU Radio is designed to transmit and receive sound or image files between two USRP equipped with RFX2400 transceiver at 2 45G frequency Now GNU Radio and OSSIE are wide
42. Frequency Range 2 3 to 2 9 GHz Transmit Power 50 mW typical The RFX2400 has a band pass filter around the 2400 to 2483 MHz ISM band on the TXRX port while the RX2 port is unfiltered allowing for coverage of the entire frequency range without attenuation Features coverage of the 2 4 GHz ISM band allowing applications using most of the communications standards in this ISM band and 5 GHz dual band transceiver Frequency Range 2 4 to 2 5 GHz and 4 9 to 5 9 GHz Transmit Power 100 mW typical Single synthesizer shared between TX and RX The XCVR2450 covers both the ISM band at 2 4 GHz and the entire 4 9 to 5 9 GHz band including the public safety UNII ISM and Japanese wireless bands Figure B 11 XCVR2450 83 12 Cables Available SMA Bulkhead SMA M to SMA F bulkhead connector for most daughter boards Figure B 12 RF Cables Available B 13 Antennas Available a VERT400 VERT400 144 MHz 400 MHz and 1200 MHz Tri band 7 inch omnidirectional vertical antenna Works with WBX RFX400 RFX1200 Figure B 13 1 VERT400 b VERT900 VERT900 824 to 960 MHz 1710 to 1990 MHz Quad band Cellular PCS and ISM Band omnidirectional vertical antenna 3dBi Gain Works with WBX RFX900 RFX1800 Figure B 13 2 VERT900 84 VERT2450 VERT2450 Dual Band 2 4 to 2 48 GHz and 4 9 to 5 9 GHz omnidirectional vertical antenna 3dBi Gain Ideal for RFX2400 and XCVR2450 Figure B 13 3
43. MainLoop Start this application s mainloop Then press Enter and you will see a Hello World like Figure 4 1 35 Hello World Figure 4 1 Hello World 4 1 2 Dial Tone Example After the installation of GNU Radio a fold named gnuradio examples is created In this fold dial tone py can be found in a sub fold at python audio record the full path of this file The dial tone example it generates two sine waves 350 Hz and 440 Hz and send them to the sound card one on the left channel another one on the right channel After run this example you will hear a sound like the US dial tone from the sound card Here is the dial tone example source code usr bin env python from gnuradio import gr from gnuradio import audio from gnuradio eng option import eng option from optparse import OptionParser 36 class my top block gr top block def self gr top block _ init self OptionParser option class eng option parser add option O audio output type string default help pcm output device name E g hw 0 0 or dev dsp parser add option r sample rate type eng float default 48000 help set sample rate to RATE 48000 options args parser parse args if len args 0 parser print help raise SystemExit 1 sample rate int options sample rate ampl 0 1 src0 gr sig source f sample rate gr GR SIN WAVE 350 ampl
44. Max Robert of the Mobile and Portable Radio Research Group Wireless Virginia Tech http www mprg org http wireless vt edu and uses the OSSIE open source SCA software radio framework and components http ossie wireless vt edu 5 1 1 QPSK Demo Introduction P This demonstration uses OSSIE 0 8 2 and the OSSIE Eclipse Feature OEF running on the VMware image using Ubuntu 10 04 It shows how to build and operate QPSK transmission demonstration by using components TxDemo ChannelDemo and RxDemo it also consists of all basic knowledge about assembling and running waveforms The system diagram is showed in Figure 5 1 48 Figure 5 1 QPSK Demo Diagram 5 1 1 1 Getting Started Boot your computer on which has Ubuntu 10 04 navigate to Applications gt system tools gt VMware image gt run a virtual machine If require to login then use username ossie and password wireless to login Open a terminal by navigating to Applications gt Accessories gt Terminal or click on the terminal shortcut in the toolbar at the top of the desktop And type the following line into the terminal to stare the naming service sudo omniNames If the naming service starts correct the terminal should look like Figure 3 2 and keep this window open Or you can test if the CORBA naming service is already running by type in a terminal ps grep omniNames And if it is running the omniN
45. USRP B100 650 USRPI 700 USRP2 WARP Rice University Up to 5 GHz Hardware Products WARP http warp rice edu FPGA Board v1 3500 WARP http mangocomm c FPGA Board v2 3500 Radio om products Board 2000 Analog Board 1500 and Clock Board 750 Toolkits Products MIMO Kit v1 v2 v1 8500 v2 6500 SISO Kit v1 v2 6500 FlexRadio FlexRadio System FLEX 1500 FLEX 1500 649 00 FLEX http www flex 0 01 54MHz 3000 1699 00 FLEX 5000A radio com FLEX 2799 00 and VUSK 3000 5000 0 01 65MHz SDR IQ RFSPACE Inc 500Hz 30MHz SDR IQ set 525 http www rfspace com RFSPACE SD R IQ html DRB30 DRM Supporter 30kHz 30MHz DRB 30 PC controlled http www nti Shortwave Receiver 299 00 online de edirabox h USB Interface Adapter 69 00 tm QSIR Software Radio Up to 130 MHz QSiR Receiver 799 99 Laboratory LLC http www srl llc com 12 2 GNU RADIO AND INSTALLATION 2 1 GNU Radio Hardware and Graphical User Interfaces GNU Radio is a free software toolkit for SDR system and is a signal processing package which provides the processing blocks written in C By implementing Python program to build applications graphical interfaces and create a network or graph and connect signal processing blocks together it can achieve a great many of communication system goals It is released under GPL GNU General Public License version 3 license GNU Radio is a convenie
46. a Description Captures a video stream over a webcam b Properties quality short Quality of JPEG between 1 and 5 c Interfaces Provides None Uses JPEG DataOut realChar d Additional Notes Related to JPEG VideoViewer D 23 WFMDemod a Description FM Demodulator b Properties port list string Returns a sequence of strings with the names of the available Provides ports c Interfaces Provides dataIn complexShort Uses dataOut complexShort D 24 writeBytestoFile a Description Writes bytes to an output file b Properties port_list string Returns a sequence of strings with the names of the available Provides ports c Interfaces 169 Provides inputBits realChar Uses None Table D 1 Device Descriptions Device Name Name in Description Interface Data Properties platform Types Listing GPP GPP General Purpose N A None Processor Executable Device soundCardCapture Sound in ALSA Sound Card AudioPort sample rate Microphone Capture complexShort soundCardPlayback Sound out ALSA Sound Card AudioPort sample rate Speaker Playback complexShort USRP USRP Ettus Research USRP 1 complexShort None USRP2 USRP2 Ettus Research USRP 2 complexShort None Xilinx FPGA XilinxFPGA Xilinx FPGA Abstraction N A None Loadable Device 170 REFERENCE LIST 1 Debian Installer team Ubuntu 10 04 LTS Ubuntu Installation Guide 2004 2 Ubuntu URL h
47. ag symbols out port on ChannelDemo to the sympols in port on the RxDemo Note If the connections are complete one port must be an output uses orange puzzle piece and other must be an input provides blue puzzle piece Save this waveform select File gt Save or press CTRL and 5 OEF will generate corresponding xml files and deploy them to the path sdr dom waveforms lt your project name gt 54 5 1 1 3 Run the Waveform Check if the CORBA naming service is running by typing ps e grep omniNames And the omniNames should be listed Or restart the naming service by typing omniNames sh And the terminal should be like Figure 3 2 Next run the Node Booter in the terminal or in Eclipse a Running the Node Booter in terminal ossie localihost sdr File Edit View Terminal Tabs Help ossie jhr 437 gx620a cd sdr ossie jhr 437 gx620a sdr nodeBooter D d nodes default node DeviceManage 1 NB Starting Domain Manager NB Starting Device Manager with nodes default_GPP_node DeviceManager dcd xml Object Added Event ProducerId OSSIE SourcelId DCE 6bba314a d95c 11db a834 00 123f573a7f SourceName DeviceManager DevMgr Launching Device file bin GPP Usage name GPP1 DevMgr searching for DomainNamel GPP1 Identifier 5 00123757 3 771 0 1 GPP1 Profile xm1 GPP GPP spd xml DevMg
48. ames should be listed 49 5 1 1 2 Create and Build the Waveform Double click Eclipse on the desktop to open Eclipse When the Eclipse interface pops up navigate to File gt New and select Other gt expand OSSIE folder gt OSSIE Waveform and click Next Select a wizard lt gt Wizards amp Cvs amp Java gt OSSIE OSSIE Component D L Sanesi Figure 5 2 Create OSSIE Waveform Screen A wizard will appear and here a waveform project name has to be given and click finish An editor will pop up and it look like Figure 5 3 50 OSSIE example example owd Eclipse File Edit Source Refactor Navigate Search Project OSSIE Run Window Help 3 0 0 4 e B osse C C Pro 5 E Outline 5 examp 52 ET Available Resources Waveform example ts Devices Test GPP Igi USRP Igi USRP2 Tg XilinxFPGA soundCardCapture gt soundCardPlayback Nodes default GPP USRP2 node default GPP USRP node default GPP USRP sound node default GPP node a 2 2 1 Problems 2 Tasks 8 OSSIE Info Console 53 BB H OSSIE Ae Figure 5 3 OSSIE Eclipse Waveform Window This editor has 3 panels a Available Resources This panel contains all of the available components devices and nodes installed on
49. at field 153 parent self panel sizer hbox label Freq weight 1 callback myform check input and call form set freq self set status msg hbox Add 5 0 0 myform freq slider form quantized slider field parent self panel sizer hbox weight 3 range 87 9e6 108 1e6 0 1e6 callback self set freq hbox Add 5 0 0 vbox Add hbox 0 wx EXPAND hbox 7 wx BoxSizer wx HORIZONTAL hbox Add 5 0 0 myform volume V form quantized slider field parent self panel sizer hbox label Volume weight 3 range self volume range callback self set vol hbox Add 5 0 1 myform gain V form quantized_slider_field parent self panel sizer hbox label Gain weight 3 range self subdev gain_range callback self set gain hbox Add 5 0 0 vbox Add hbox 0 wx EXPAND try self knob powermate powermate self frame 154 self rot 0 powermate EVT POWERMATE ROTATE self frame self on_rotate powermate EVT POWERMATE BUTTON self frame self on button except print FYI No Powermate or Contour Knob found def on rotate self event self rot event delta if self state FREQ if gt 3 self set freq self freq 1e6 self rot 3 elif 3 self set freq self freq 1e6 self rot 3 else step self volume range 2 if sel rot gt 3 self set vol self vol step self rot 3 elif lt 3 self set vol self vol ste
50. ate Converter Rate 64000000 128000000 Uses Quadrature Uses Quadrature True True Gain Range min max step size Gain Range min max step size 0 0 0 0 90 0 0 0 0 0500000007451 1 0 Freq Range min max step size Freq Range min max step size 2300000000 0 2300000000 0 2900000000 0 2900000000 0 1 1 Figure 4 2 USRP Probe 40 This window shows the information of the daughter board RX at A side expand the small triangle at the right side of Daughter Board in the window then can see RX at B side and TX at A or B side if you have a daughter board connected to the mother board side B This window shows that the RFX2400 daughter board is used and the frequency range is from 2 3GHz to 2 9GHz In this project a 2 45GHz transmit and receive frequency is designed From the GNU Radio package two files named benchmark_rx py and benchmark_tx py can be used to receive and transmit the signals But other related files are required to run the benchmark_rx tx py files In order to run the benchmark files a SISO Proj folder that consists of the following files is needed on both transmit and receive side computers benchmark_rx py benchmark tx py dbpsk py dbpsk pyc generic usrp py generic usrp pyc pick bitrate py bitrate pyc psk py psk pyc receive path py receive path pyc transmit path py transmit path pyc usrp options py usrp options pyc usrp receive path py usrp receive pa
51. avigate Search Project OSSIE Rur riv 190247 3 fr Outl 5 sg LabLowd 13 Available Resources Waveform x amp _1 default_GPP_node_1 GPP1 Bs ERUSRP JChannelDemo 1 default GPP node 1 GPP1 BLUSRP2 amp 1 default GPP node 1 GPP1 XilinxFPGA soundCardCapture soundCardPlayback Platform default_GPP_USRP2_node default_GpP_USRP_node default_GPP_USRP_sound_node TxDemo 1 default GPP node 1 GPP1 amp default node ChannelDemo 1 default node 1 GPP1 default sound node RxDemo 1 default node 1 GPP1 default 403 node E Problems 4 Tasks OSSIE Info EJ Console 3 consoles to display at this time OSSIE Labl Labl owd Figure 5 4 QPSK Demo Eclipse Window riv S To make sure those three components are deployed correctly expand the 1 device in the platform panel and you should see all of them Also the three components in the waveform panel should all now show default node_1 GPP1 Now assign the transmitter component to be the task of Assembly Controller simply right click on the TxDemo component in the waveform penal and select Set Assembly Controller Note when you run your waveform it starts from the start function which is called assembly controller The assembly controller has
52. ay code verbose def verbose log def log Hierarchical block for RRC filtered differential BPSK demodulation The input is the complex modulated signal at baseband The output is a stream of bits packed 1 bit per byte LSB param samples per symbol samples per symbol gt 2 type samples per symbol float excess bw Root raised cosine filter excess bandwidth type excess bw float costas alpha loop filter gain type costas alphas float param gain mu for M amp M block type gain mu float param mu for M amp M block type mu float omega relative limit for M amp M block type omega relative limit float gray code Tell modulator to Gray code the bits type code bool param verbose Print information about modulator type verbose bool param debug Print modualtion data to files type debug bool 104 m gr hier block2 init self bpsk demod gr io signature l 1 gr sizeof gr complex Input signature gr io signature l 1 gr sizeof char self samples per symbol samples per symbol self excess bw excess bw self costas alpha costas alpha self mm gain mu gain mu self mm mu mu self mm omega relative limit omega relative limit self gray code gray code if samples per symbol 2 raise TypeError samples per symbol must be gt 2 is Vor 96 samples per symbol arity pow 2 self b
53. ble on selected daughterboard pg usrpx grp add option 1 interp type intx default None help set interpolation rate to INTERP default odefault defcreate usrp sink options u generic usrp generic usrp sink c usrpx options usrpx which options which subdev_spec options tx_subdev_spec interface options interface mac_addr options mac_addr fusb block size options fusb block size fusb nblocks options fusb nblocks lo offset options lo offset gain options tx_ gain if options show tx gain range print Tx Gain Range minimum g maximum g step size Vog Votuple u gain range return u 10 Source Code for usrp receive path py 140 Copyright 2009 Free Software Foundation Inc This file is part of GNU Radio GNU Radio is software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either version 3 or at your option any later version GNU Radio is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details You should have received a copy of GNU General Public License along with GNU Radio see the file COPYING If not write to the Free Software Foundation Inc 51 Franklin Street Bosto
54. bol samples per symbol xrate if bitrate is None and samples per symbol is None and xrate is None bitrate default bitrate now we have a target bitrate and possibly an xrate or samples per symbol constraint but not both of them 121 ret pick best bitrate bits per symbol filter info gen info converter rate xrates samples per symbol xrate print Actual Bitrate eng notation num to str ret 0 return ret def pick tx bitrate bitrate bits per symbol samples per symbol interp rate converter rate possible interps 7 Given the 4 input parameters return at configuration that matches param bitrate desired bitrate or None type bitrate number or None param bits per symbol E g BPSK gt 1 QPSK gt 2 8 PSK gt 3 type bits per symbol integer gt 1 param samples_per_symbol samples baud aka samples symbol type samples_per_symbol number or None param interp_rate USRP interpolation factor type interp_rate integer or None param converter_rate converter sample rate in Hz type converter_rate number param possible interps a list of possible rates type possible interps a list of integers returns tuple bitrate samples per symbol interp rate print Requested TX Bitrate bitrate and eng notation num to str bitrate or Auto return pick bitrate bitrate bits per symbol samples per symbol interp rate converter rate possible interps gen tx info 122 def pick rx bi
55. called re cnt now 0 ORB destructor called re cnt now 0 ORB destructor called re cnt now 0 USRP USRP Initialize called Ithe gain range in subdev is 20 USRP daughterboard slot Basic Rx USRP daughterboard slot 1 none USRP TX daughterboard slot 0 Basic Tx USRP TX daughterboard slot 1 none Object Added Event ProducerId OSSIE SourceId DCE 5ba336ee bbbb bbbb bbbb 00123f573a7f SourceName USRP1 Idev bin soundCardCapture DEVICE MGR IOR 010000001900000049444c3a43462f4465766963654d616e616765723a312e300000000001000000000000006800000001 SoundCardCapture constructor invoked SoundCardCapture capture sound invoked IsoundCardCapture initialize invoked SoundCardCapture Initialize capture exit SSoundCardCapture configure invoked Number of props 1 SoundCardCapture configure property id DCE ee0260bc 735a 4df5 bd71 726576ba8fbf SoundCardCapture sample rate 16000 Hz SoundCardCapture Buffer size 4096 Object Added Event ProducerId OSSIE SourceId DCE 459811e2 cccc cccc cccc 00123163025f SourceName soundCardCapturel dev bin soundCardPlayback DEVICE MGR IOR 010000001900000049444c3a43462f4465766963654d6166616765723a312e300000000001000000000000006800000001 soundOutControl port constructor called IsoundInControl port constructor called SoundCardPlayback Underrun occured waiting for more sound data Object Added Event ProducerId OSSIE SourceId DCE 4598fa94 ddd
56. cess system developed by ArrayComm and be announced in April 2000 UMTS TDD universal mobile telecommunications system time division duplexing is used to provide internet access WPAN wireless personal area network is a personal area network for interconnecting devices around a person which is announced in 2006 WRAN wireless regional area network is developed for using cognitive radio CR to share unused spectrums 1 1 1 Quadrature Phase Shift Keying QPSK PSK modulation methods convey data by changing the carrier signals and QPSK is one kind of PSK modulation methods QPSK or 4 QAM uses four phases and four points to encode signals two bits per symbol The constellation diagram is shown in Figure 1 204 gt Figure 1 2 QPSK Constellation Diagram For example just like in Figure 1 2 it has four symbols 00 01 10 and 11 and four phases 2 4 31 4 51 4 and 77 4 and the equation to write symbols in terms of sine and cosine waves is t cos 2 t 2n 1 1 2 3 4 1 The signal phase can be found by the following equations 9 2 V sinQn 3 So four constellation points will be j 4 Where energy per symbol amp carrier frequency symbol duration Binary Bitstream 11000110 Analog Signals eu AX 5 2 cos 2x ft Digital Signals 1001 NRZ Encoder 4 s
57. cessing software package GNU Radio is a more convenient and inexpensive tool to build the FM Receiver All that s needed is a PC running on the Ubuntu 10 04 and UHD properly intalled version of GNU Radio then it is possible to build a FM receiver 4 2 1 Build and Run FM Receiver Connect BasicRx daughter board to the RXA port on the mother board the BasicTx daughter board to the TXA port on the mother board Also connect a HG2407RD SM Antenna to the RX A port on BasicRX board Plug in the power wire and connect it to the power supply connect USRP to the computer by USB The hardware connection is complete Open file usrp wfm rcv py find line usrp decim 200 45 Change 200 to 150 this value is related to the sample rate only the appropriate sample rate will make the received signal distortion free Here set usrp_decim 150 will make the sample to be 42666 and it is close to the sound card requirement 44100 sample rate adc rate self u adc rate 64 MS s usrp decim 150 self u set decim rate usrp decim usrp rate adc rate usrp decim Open a terminal direct to the path of usrp wfm rcv py enter usrp wfm rcv py freq 200M The terminal will show the following information Using RX d board A Basic Rx gt gt gt gr fir ccf using SSE gt gt gt gr fir fff using SSE audio alsa sink hw 0 0 unable to support sampling rate 42666 card requested 44100 instead FYI No Powermate or Contour Knob fo
58. cies On the Ubuntu 10 04 desktop interface open a terminal from Applications enter the installation commands by the following instruction sudo apt get y install libfontconfig1 dev libxrender dev libpulse dev swig g automake autoconf libtool python dev libfftw3 dev libcppunit dev libboost all dev libusb dev fort77 sdcc sdcc libraries libsdl1 2 dev python wxgtk2 8 git core guile 1 8 dev libqt4 dev python numpy ccache python opengl libgsl0 dev python cheetah python 17 Ixml doxygen qt4 dev tools libqwt5 qt4 dev libqwtplot3d qt4 dev pyqt4 dev tools python qwt5 qt4 2 2 2 Install GNU Radio USRP is not required in this step git clone http gnuradio org git gnuradio git git clone git gnuradio org gnuradio git download GNU Radio git master tree cdgnuradio guide into gnuradio file direction bootstrap bootstrap configure configure make make check sudo make install In order to check the installation is successfully try gnuradio companion by typing gnuradio companion If GNU Radio is installed successfully the companion window will appear 2 2 3 Configuring USRP support In order to handle USRP by USB you need to take the following script The reason for this setting is that Ubuntu handles hot plug devices by using udev By this script 18 Ubuntu will be configured to understand the next response like if when it detects the USRP on the USB
59. d dddd dddd 00123f63025f SourceName soundCardPlaybackl Figure 5 19 OSSIE FM Receiver NodeBooter 69 Run NodeBooter in Eclipse click OSSIE in the Eclipse main window and choose NodeBooter Select default GPP_USRP_sound_node node by navigating to sdr dev nodes default GPP_USRP_ sound node from DeviceManager browse choose DeviceManager dcd xml and press The running NodeBooter in Eclipse should look like Figure 5 19 Open ALF for FM Receiver by clicking on OSSIE in Eclipse and choose ALF display FM Receiver waveform the waveform components diagram appears and the FM radio sound will be heard from the speaker 9090 ALF Waveform Debugger OSSIE Waveform Workshop Figure 5 20 OSSIE Receiver ALF Waveform Debugger Open WaveDash and change receive frequencies and then you can enjoy the FM radio from different frequencies setting 70 gt WaveDash Waveform Dashboard OSSIE Waveform Workshop Con DO rents Opt 5 FMReceiverDemoUSRP1 1 USRP Commander O1 rx freq tx interp rx size rx gain max rx start amplifier 01 gain Decimator O1 DecimateBy Filter Type Decimator 02 DecimateBy Filter Type 106700000 512 8192 1 2 1 0 10 FIR J FIR tx_freq rx_decim rx_gain tx_start Q_gain filter filter 0 0 256 0 0 1 0 1 0 4 Fi
60. default False help Log all parts of flow graph to files CAUTION lots of data Make a static method to call before instantiation add options staticmethod add options def print verbage self mn Prints information about the receive path m print nReceive Path print modulation 5 self demod class name 131 print bitrate sb s eng notation num to str self bitrate print samples symbol 3d self samples per symbol C 8 Source Code for transmit path py Copyright 2005 2006 2007 Free Software Foundation Inc This file is part of GNU Radio GNU Radio is software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either version 3 or at your option any later version GNU Radio is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details You should have received copy of the GNU General Public License along with GNU Radio see the file COPYING If not write to the Free Software Foundation Inc 51 Franklin Street Boston MA 02110 1301 USA from gnuradio import gr gru blks2 from gnuradio import eng notation import copy 132 import sys BLL transmit path
61. e gr io signature O 0 0 Input signature gr io_signature 1 1 gr sizeof gr complex Output signature generic usrp base init self kwargs self connect self u self TPIHHHHHBHHBHHBHHHHHHHBHHBHHBHHHHBHHBHHBUHBHHHHBHHBHHBHHHHHHHBHHRHTRNHE generic access methods PIHHHHHBHHBHHBHHHHHHHBHHBHHBHHHHHHHBHHBUHHHHHHBHHBHHBHHHHHHHBHHRHTRHE defset decim self decim if decim not in decim rates return False ifself type USRPI TYPE return self u set decim rate decim elif sel type USRP2 TYPE return self u set decim decim elifself type DUMMY TYPE return True defget decim rates self ifself type USRPI return range 8 256 1 2 default firmware w hb filters if self type USRP2 TYPE return USRP2 RATES elifself type DUMMY return DUMMY XRATES def rate self 115 if self type USRP1_TYPE return self u adc rate if self type USRP2 TYPE return self u adc rate elif type DUMMY TYPE return DUMMY CONVERTER RATE setup usrp methods LP og eee ee ee eee def setup _usrp1 self self u usrp source c self which fusb block size self fusb block size fusb nblocks self fusb nblocks determine the daughterboard subdevice we re using if self subdev spec is None self subdev spec usrp pic
62. e following code line by line into the document bin sh killall omniNames rm sdr logs omninames omniNames start logdir sdr logs amp Press ESC and type wq to save the file In order to set an appropriate permission for the file type chmod 755 omniNames sh Where the first digit 7 enables the owner to read write and execute permissions on this file the second digit 5 enables read write permissions for the group user the third digit 5 enables read write permissions for the guest user 32 The next step is to make a directory typing mkdir sdr logs Then copy omniNames sh file to usr local bin by typing sudo cp omniNames sh usr local bin Well now you can check the naming service by typing the following line into the terminal sudo omniNames sh ele ee e o File Edit View Terminal Help root vt home ossie omniNames sh root vt home ossie Wed May 5 11 27 29 2010 DJ Starting omniNames for the first time Wrote initial log file Read log file successfully Root context is I0R 010000002b00000049444c3a6f6d672e6f72672F436F734e616d696e672F 4e6 16d696e67436f6e746578744578743a3 123000000 1000000000000006c000000010102000a00 000031302 302 322 313500 90 000000004 6160165536572766963650003000000000000000800 00000100000000545441010000001 00000001000000010001000100000001000105090101000100 0000090101000354544108000000618ee14b01007561 Checkpointing Phase 1 Prepare
63. en the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details You should have received a copy of the GNU General Public License along with GNU Radio see the file COPYING If not write to the Free Software Foundation Inc 51 Franklin Street Boston MA 02110 1301 USA from math import pi sqrt 10210 import math cmath The following algorithm generates Gray coded constellations for M PSK for M 2 4 8 def make gray constellation m number of bits symbol log2 M int log10 m log10 2 0 coeff 1 const_map bits 0 3 124 for 1 in range m get a vector of the bits to use in this mapping bits 3 k 3 1 amp 0x01 lt lt k j 1 gt gt k j 1 for j in range k theta 2 bits 0 1 2 pi m bits 0 abs bits 1 bits 2 2 bits 1 re math cos theta im math sin theta const map append complex re im plug it into the constellation return the constellation by default it is normalized return const map This makes a constellation that increments around the unit circle def make constellation m return cmath exp i 2 pi m 1j for i in range m Common definition of constellations for Tx and Rx constellation 1 2 make constellation 2 BPSK 4 constellation 4 QPSK 8 make constellation 8 SPSK gray_constellation 2 make gray c
64. er apps if not parser to groups dict has key parser parser to groups dict parser parser groups parser pg parser to groups dict parser pick usrp or usrp2 pg usrpx grp add option u usrpx type string default None help specify which usrp model 1 for USRP 2 for USRP2 default auto fast usb options pg usrplexp grp add option B fusb block size type int default 0 help specify fast usb block size default odefault 137 pg usrplexp grp add option N fusb nblocks type int default 0 help specify number of fast usb blocks default odefault lo offset pg usrpx grp add option lo offset type eng float default None help set LO Offset in Hz default automatic usrp options pg usrpl grp add option w which type int default 0 help select USRP board default odefault usrp2 options interface type string default ethO 2 pg usrp2 grp add option e help Use USRP2 at specified Ethernet interface default 9odefault pg usrp2 grp add option a mac addr type string default help Use USRP2 at specified MAC address default None return pg def add rx options parser Add receive specific usrp options param parser instance of OptionParser pg add options parser pg usrpl grp add option R rx subdev spec type subdev default None help select USRP Rx side A or B pg usrpx grp add opt
65. es mod add options expert grp options args parser parse args if len args 0 parser print help sys exit 1 if options tx freq is None sys stderr write You must specify f FREQ or freq FREQ n parser print_help sys stderr sys exit 1 if options from_file is not None source file open options from file build the graph tb my top block mods options modulation options gr enable realtime scheduling ifr gr RT OK print Warning failed to enable realtime scheduling 95 tb start start flow graph generate and send packets nbytes int 1e6 options megabytes n 0 pktno 0 pkt_size int options size Send dummy first packet pktno 0 data pkt_size 2 chr pktno amp Oxff payload struct pack H pktno amp Oxffff data send_pkt payload n len payload sys stderr write Outputs oncreen pktno 1 while n lt nbytes if options from_file is None data pkt_size 2 chr pktno amp Oxff else data source file read pkt size 2 if data break payload struct pack H pktno amp Oxffff data send_pkt payload n len payload sys stderr write Outputs oncreen if options discontinuous and pktno 96 5 4 time sleep 1 96 pktno 1 time sleep 5 Let the last packet finish sending send pkt eof True tb wait wait for it to finish if name main
66. gure 5 21 OSSIE Receiver WaveDash Waveform Dashboard 71 6 CONCLUSION AND FUTURE WORK Software Defined Radio a radio design revolution is an exciting field and its flexibility provides all users with more convenience to achieve pretty much all applications a traditional radio can do The goal of this thesis project is to implement the communication system in both GNU Radio and OSSIE to achieve SDR applications By the comparison in this thesis GNU Radio and OSSIE have several characteristics in common Firstly both of them are free toolkits for Software Defined Radio application development Secondly both of them have graphical tools to develop waveforms by connecting their own components Thirdly both of them have frameworks which provide a high level interface for waveforms development Based on these similar features of GNU Radio and OSSIE developing waveforms by using these two toolkits of SDR are alike The developer need to understand the SDR framework working principles then will be able to design a communication system by the similar strategy In this thesis project the FM broadcasting signals are successfully received by the FM reveiver over GNU Radio and OSSIE however the signals received by GNU Radio is very clear through many FM broadcasting channels the received signals from the OSSIE revceiver have more distortions and only through a few channels This result shows that the GNU Radio signa
67. ignal sin 2x f t F lt y L 4 NRZ Encoder 1411 Figure 1 3 Conceptual Transmitter Structure for QPSK 14 QPSK signal Matched Filter to 2 2 1001 Sampling at Time Interval Multiplexer A 10 1 Binary Bitstream 11000110 Matched Filter to o t Figure 1 4 Receiver Structure for QPSK 114 Figure 1 5 Timing Diagram for QPSK 1 1 1 2 Differential Binary Phase Shift Keying DBPSK DBPSK differentially encode transmit signal compared with the previous signal it can be represented as the following equation y n y n 1 x n In this equation x n 1 the bit input y n is the current symbol and y n 1 1 the previous symbol 1 2 Software Defined Radio 1 2 1 Advantages of Software Defined Radio By the exponential growth of ways and means of communication people need to communicate by data voice video broadcast command emergency response communications and control communications etc The traditional technology is cost effectively to modify radio devices but SDR software defined radio technology brings a lot of flexibility and costs efficiency because it is a software based approach to achieve variable communication system requirements Software Defined Radio introduces software pieces instead of hardware components to treat signals in order to extract information Simlply
68. information about the setup if self verbose self print verbage connect block input to channel filter self connect self self channel filter 129 connect the channel input filter to the carrier power detector self connect self channel filter self probe connect channel filter to the packet receiver self connect self channel filter self packet receiver def bitrate self return self bitrate defsamples per symbol self return self samples per symbol def carrier sensed self m Return True if we think carrier 1 present return self probe level gt X return self probe unmuted def carrier threshold self m Return current setting in dB m return self probe threshold defset carrier threshold self threshold in db m Set carrier threshold 130 param threshold in db set detection threshold type threshold in db float dB self probe set threshold threshold in db def add options normal expert mn Adds receiver specific options to the Options Parser if not normal has option bitrate normal add option r bitrate type eng float default 100e3 help specify bitrate default 6odefault normal add option v verbose action store true default False expert add option S samples per symbol type int default 2 help set samples symbol default odefault expert add_option log action store_true
69. io see the file COPYING If not write to the Free Software Foundation Inc 51 Franklin Street Boston MA 02110 1301 USA from gnuradio import gr gru modulation_utils from gnuradio import usrp from gnuradio import eng notation from gnuradio eng option import eng option from optparse import OptionParser 87 import random import struct import sys import string import time import pygst pygst require 0 10 import gst from current dir import usrp receive path import bpsk import os print os getpid raw_input Attach and press enter class my top block gr top block def self demodulator rx callback options gr top block init self Set up receive path self rxpath usrp receive path usrp receive path demodulator rx callback options self connect self rxpath LLL main 88 global n n right def main global n n right dest file n rcvd 0 n right 0 defrx callback ok payload global n n right dest file pktno struct unpack H payload 0 2 data payload 2 n 1 if ok n right 1 if pktno gt 0 Do not write first dummy packet pktno 0 dest file write data dest file flush payload struct pack H n amp Oxffff Print Data print ok 5 9044 n rcvd 9044 n right 44 ok pktno n rcvd n right demods modulation utils type 1 demods
70. ion rx gain type eng float default None metavar GAIN help set receiver gain in dB default midpoint See also show rx gain range pg usrpx grp add option show rx gain range action store true default False help print min and max Rx gain available on selected daughterboard 138 pg usrpx grp add option d decim type intx default None help set fpga decimation rate to DECIM default odefault defcreate usrp source options u generic usrp generic usrp source c usrpx options usrpx which options which subdev spec options rx subdev spec interface options interface mac_addr options mac_addr fusb block size options fusb block size fusb nblocks options fusb nblocks lo offset options lo offset gain options rx_ gain if options show rx gain range print Rx Gain Range minimum g maximum g step size Vog Votuple u gain range return u def add_tx_options parser Add transmit specific usrp options param parser instance of OptionParser pg add options parser pg usrp1_grp add_option T tx subdev spec type subdev default None help select USRP Rx side A or B 139 pg usrpx grp add option tx gain type eng float default None metavar GAIN help set transmitter gain in dB default midpoint See also show tx gain range pg usrpx grp add option show tx gain range action store true default False help print min and max Tx gain availa
71. ion Displays a video feed from a webcam b Properties None c Interfaces Provides JPEG Dataln realChar Uses None d Additional Notes Related to the WebCamCapture component D 14 OSSIETalk a Description Audio capture with CVSD b Properties None c Interfaces Provides from radio realChar Uses to radio realChar D 15 PacketResizer 165 a Description Resizes packets b Properties Packet Size ulong This is the output packet size Input data will be buffered of broken apart to match the size port_list string Returns a sequence of strings with the names of the available Provides ports c Interfaces Provides packet_in realChar Uses packet_out realChar 0 16 pass data a Description A pass through component b Properties port list string Returns a sequence of strings with the names of available Provides ports c Interfaces Provides cshort in complexShort Uses cshort out complexShort Uses send timing report timingStatus D 17 readBytesfromFile a Description Reads bytes from an input file b Properties bufferLength ulong Define the output buffer length in bits c Interfaces Provides None 166 Uses outputBits realChar D 18 RxDemo a Description Compares b Properties None c Interfaces Provides symbols_in complexShort Uses None d Additional Notes This component is directly related to the TxDemo com
72. ions for attr in dir rx path Zforward the methods if not attr startswith and not hasattr self attr setattr self attr getattr rx path attr setup usrp self demod class demod class self setup usrp source options connect self connect self u rx path def setup usrp source self options self u usrp options create usrp source options adc rate self u adc rate if options verbose print USRP Source self u self bitrate self samples per symbol self decim V pick rx bitrate options bitrate self demod class bits per symbol options samples per symbol options decim adc rate self u get decim rates self u set decim self decim if notself u set center freq options rx freq print Failed to set Rx frequency to s eng notation num to str options rx freq 143 raise ValueError eng notation num to str options rx freq C 11 Source Code for usrp tramsmit path py Copyright 2009 Free Software Foundation Inc This file is part of GNU Radio GNU Radio is software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either version 3 or at your option any later version GNU Radio is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See
73. its per symbol Zarity 2 1 2 Automatic gain control scale 1 0 16384 0 Output signature self pre scaler gr multiply const cc scale scale the signal from full range to self age gr agc2 cc 0 6e 1 1 3 1 1 100 self agc gr feedforward agc 16 2 0 RRC data filter 105 ntaps 11 samples_per_symbol self rrc taps gr firdes root raised cosine 1 0 gain self samples per symbol sampling rate 1 0 symbol rate self excess bw excess bandwidth roll off factor ntaps self rrc filter gr interp_fir_filter_ccf 1 sel rrc taps symbol clock recovery if not self mm gain mu self mm gain mu 0 1 self mm omega self samples per symbol self mm gain omega 25 self mm gain mu self mm gain mu self costas beta 0 25 self costas alpha self costas alpha fmin 0 1 fmax 0 1 self receiver gr mpsk receiver cc arity 0 self costas alpha self costas beta fmin fmax self mm mu self mm gain mu self mm omega self mm gain omega self mm omega relative limit Do differential decoding based on phase change of symbols self diffdec gr diff phasor cc 106 find closest constellation point rot 1 rotated_const map lambda pt pt rot psk constellation arity self slicer gr constellation decoder cb rotated const range arity ifself gray code self symbol_mapper gr map bb psk gray to binary arity 0 1 else self
74. k rx subdevice self self subdev usrp selected subdev self self subdev spec self u set mux usrp determine rx mux value self u self subdev spec self dxc 0 def setup usrp2 self self u usrp2 source 32fc self interface self mac addr def setup dummy self self u gr null source gr sizeof gr complex TRHHHHRHBHHHBHHHHRHHHHHHBRRHBHHHRRHHHHHHRHBRHHBRHHHRHHHHBRHBR HH HR generic usrp sink class generic usrp sink c generic usrp gr hier block2 mm Create a generic usrp sink that represents usrp and usrp2 116 Take usrp and usrp2 constructor arguments and try to figure out usrp usrp2 Provide generic access methods so the API looks the same for both mn def self kwargs gr hier block2 init self generic usrp sink grio signature l 1 gr sizeof gr complex 7 Input signature gr io signature 0 0 0 Output signature generic usrp base init self kwargs ifself type USRPI TYPE scale 0 0 to 1 0 input for usrpl self connect self gr multiply const cc 2 15 1 self u else self connect self self u TPIHHHHHHHHBHHBHHHHHHHBHHBHHBHHHHHHHBHHBUHHHHHHBHHBHHBHHHHHHHBHHRHTRHE generic access methods PIHHHHHHHHBHHBHHHHHHHBHHBHHBHHHHBHHHBHHBHHHHHHHBHHBHHBHHHHHHHBHHRHTRE def set_interp self interp if i
75. l processing blocks has better capability to process FM 72 signals Unfortunatly the OSSIE device interface for the USRP could not be used to realize the same waveform the lack of synchronization between the USRP interface and the demodulator modulaton component was considered to be the reason for the unexpected behavior of the waveforms 1121 Except the SISO Communication System and FM Receiver I built in this thesis there are many applications can be reached by SDR GNU Radio and OSSIE such as software GPS Web Cam transceiver Multiple input multiple output MIMO processing and sensor network etc A deep understanding and developing of software radio requires knowledge related to many domains As the future work the deep research and development of GNU Radio and OSSIE components will be applied 73 APPENDIX UBUNTU 10 04 INSTALLATION GUIDE 74 Ubuntu 10 04 is used for both GNU Radio communication system and OSSIE GNU Radio system in this case so the Ubuntu 10 04 installation will be introduced in details Ubuntu free download can be found at http www ubuntu com download and from this website choose Try it from a CD or USB stick There have two Ubuntu version options select Ubuntu 10 04 LTS Long term support and 32 bit or 64 bit based your computer hardware then click the big orange button on the right and start download This Ubuntu Download page introduces three tutorials first of all it shows how
76. lDemol O text potty 250 2 Phas slider 10 0 RxDemol Configure Figure 5 16 QPSK Demo Ossie WaveDash Window In this window you can see all of the components variables which can be set Right click on the variable text box there are three choices to change the value setting spin text and slider By choosing Configure you can set minimum and maximum values for the variable value slider In this QPSK Demo if you change noise std dev value obvious the waveform output in Eclipse you can see if you increase the noise the bit error rate will be increased 5 2 FM Receiver over OSSIE GNU Radio This FM Receiver Demo is a project which receives FM signals from GNU Radio antenna and use OSSIE software components to process the signal and play it from the sound card 63 5 2 1 Build and Run FM Receiver OSSIE 0 8 2 and OSSIE Eclipse Feature OEF are needed for this FM receiver In order to build FM receiver over OSSIE GNU Radio six software components and three hardware devices are needed OSSIE Eclipse Software Components and variable setting USRP_Commander amplifier rx_freq 162475000 tx_freq 0 tx_interp 512 rx_decim 256 I gain 1 gain 1 rx_size 8192 _ 0 rx gain max 1 tx start O WFMDemod rx start 1 AutomaticGainControl Decimator 1 energy lo 4000 energy hi 4000 DecimateBy 10 k attack 0 002 k release 0 0005 g min 0 01 g max
77. lator Basic Digital Communication System Output transducer Source decoder Digital demodulator Figure 1 6 Basic Digital Communication System Diagram Channel decoder The block diagram of a software radio system has a receive path and a transmit path which are shown in Figure 1 2 and Figure 1 3 respectively Antenna gt Receive RF Front gt ADC 3 Software Figure 1 7 Software Radio Receive Path Software Code gt DAC gt Transmit RF Front End Antenna Figure 1 8 Software Radio Transmit Path First the analog to digital converter ADC and the digital to analog converter DAC are like the bridges between the continuous analog signals from physical world and discrete digital samples manipulated by software For the ADC it has two primary characteristics sampling rate that is the number of times per second of the analog signal measured by ADC dynamic range that is the difference between the smallest and largest signal that can be distinguished it s a function of the number of bits in the ADC s digital output and the design of the converter Secondly the RF front end can translate its input frequencies range to a lower frequencies range called intermediate frequency IF The reason we need to do this is because of the Nyquist sampling theorem From Nyquist sampling theory we know that the ADC sampling frequency must be at least t
78. load eof False m Calls the transmitter method to send a packet mn return self packet transmitter send pkt payload eof 134 def bitrate self return self bitrate def samples per symbol self return self samples per symbol def add_options normal expert m Adds transmitter specific options to the Options Parser mn if not normal has option bitrate normal add option r bitrate type eng float default 100e3 help specify bitrate default odefault normal add option tx amplitude type eng_ float default 0 250 metavar AMPL help set transmitter digital amplitude 0 lt AMPL lt 1 default odefault normal add_option v verbose action store_true default False expert add option S samples per symbol type int default 2 help set samples symbol default odefault expert add_option log action store_true default False help Log all parts of flow graph to CAUTION lots of data Make a static method to call before instantiation add options staticmethod add options def print verbage self mn 135 Prints information about the transmit path print Tx amplitude s self _tx_amplitude print modulation 5 self modulator class name print bitrate sb s eng notation num to str self bitrate print samples symbol 3d self samples per symbol C 9 Source Code for usrp options
79. ly used for academic research but the future work based on GNU Radio and OSSIE can be designed to support MIMO sensor network and real time users etc Copyright 2011 by Zizhi Cheng ii ACKNOWLEDGEMENTS I am heartily thankful to my major advisor Dr Shengli Fu whose encouragement guidance and support from the initial to the final level enabled me to develop an understanding of the subject Also my appreciation is extended to all faculty and staff members of the electrical engineering department of University of North Texas Lastly I offer my regards and blessings to all of those who supported me in any respect during the completion of the project iii TABLE OF CONTENTS Page ACK NOW LEDGE MEIN T iii HISP OF TABLES Sos oS CGE NN e id vii EIST OF FIGURES enit Sete rides deor qo HU Een viii Chapters RUNS 1 1 1 Radio Basics 1 1 1 Quadrature Phase Shift Keying QPSK 1 1 2 Differential Binary Phase Shift Keying DBPSK 1 2 Software Defined Radio 1 2 1 Advantages of Software Defined Radio 1 2 2 The Structure of a Software Radio System 1 3 Available Software Defined Radios 2 GNU RADIO AND INSTALLATION 13 2 1 GNU Radio Hardware and Graphical User Interfaces 2 1 1 Universal Software Radio Peripheral USRP 2 1 2 GNU Radio Graphical Interfaces 2 2 GNU Radio Installation Guide for Ubuntu 10 04 2 2 1 Install Dependencies 2 2 2 I
80. me struct sys from current dir import usrp transmit path import bpsk import os print os getpid raw_input Attach and press enter class my top block gr top block def self modulator options gr top block init self self txpath usrp transmit path usrp transmit path modulator options self connect self txpath 93 T T T TT T TT I T main def main def send_pkt payload eof False return tb txpath send_pkt payload eof def rx_callback ok payload print ok Yor payload s ok payload mods modulation utils type 1 mods OptionParser option class eng option conflict handler resolve expert grp parser add option group Expert parser add option m modulation type choice choices mods keys default gmsk help Select modulation from 96s default default join mods keys parser add option s size type eng float default 1500 help set packet size default odefault parser add_option M megabytes type eng float default 1 0 help set megabytes to transmit default default parser add_option discontinuous action store true default False help enable discontinous transmission bursts of 5 packets 94 parser add option from file default None help use file for packet contents usrp transmit path add options parser expert grp for mod in mods valu
81. ms behavior It is an excellent software to illustrate and analysis SDR s concepts and trade offs for commercial and educational purposes The following links provide online help on OSSIE http ossie wireless vt edu trac wiki the online wiki listserv listserv vt edu the mailing lists http ossie wireless vt edu trac newticket the Trac bug tracking tickets e The IRC channel you can start from IRCTutorial http ossie wireless vt edu OSSIE Home Page There are two approaches for OSSIE installation 1 Through Linux system with the source code 2 Through OSSIE VMWare image on which has OSSIE pre installed 22 3 2 Install OSSIE from Source under Ubuntu 10 04 3 2 1 Installing Dependencies on Ubuntu 10 04 Open a terminal and install the following packages sudo aptitude install gcc build essential sudo aptitude y install omniorb4 libomniorb4 dev omniidl4 python omniorb4 nameserver python omniorb2 libgtk2 0 dev freeglut3 dev python wxgtk2 8 python wxversion python wxtools python numpy python numpy ext python numpy dev python profiler g automake libtool subversion python dev fftw3 dev libcppunit dev libboost dev sdcc libusb dev libasound2 dev libsdl1 2 dev guile 1 8 libqt3 mt dev swig python profiler 1 9 python2 6 dev sdcc libraries guile 1 8 dev libqt4 dev ccache python opengl libgsl0 dev python Ixml doxygen qt4 dev tools libqwt5 qt4 dev libqwtplot3d qt4 dev V
82. n MA 02110 1301 USA from gnuradio import gr import usrp_ options import receive_path from pick_bitrate import pick_rx_bitrate from gnuradio import eng notation defadd freq option parser m Hackery that has the f freq option set both tx freq and rx freq 141 m def freq callback option opt str value parser parser values rx freq value parser values tx freq value if not parser has_option freq parser add option f freq type eng_float action callback callback freq_callback help set Tx and or Rx frequency to FREQ default odefault metavar FREQ def add_options parser expert add freq option parser usrp options add rx options parser receive path receive path add options parser expert expert add option rx freq type eng float default None help set Rx frequency to FREQ default odefault metavar FREQ parser add option v verbose action store true default False class usrp receive path gr hier block2 def self demod class rx callback options See below for what options should hold gr hier block2 init self usrp receive path gr io_signature 0 0 0 Input signature gr io signature 0 0 0 Output signature 142 if options rx freq is None Sys stderr write f FREQ or freq FREQ or rx freq FREQ must be specified in raise SystemExit rx path receive path receive path demod class rx callback opt
83. n store false default True help disable gray coding on modulated bits PSK add options staticmethod add options def extract kwargs from options options m Given command line options create dictionary suitable for passing to _ m return modulation utils extract kwargs from options bpsk mod init options extract kwargs from options staticmethod extract kwargs from options def print verbage self print nModulator 102 print bits per symbol 4 self bits_per_symbol print Gray code Vos Vo self gray code print RRC roll off factor 2f self excess bw def setup logging self print Modulation logging turned on self connect self bytes2chunks gr file sink gr sizeof char tx bytes2chunks dat self connect self symbol mapper gr file sink gr sizeof char tx graycoder dat self connect self diffenc gr file sink gr sizeof char tx diffenc dat self connect self chunks2symbols sink gr sizeof gr complex tx chunks2symbols dat self connect self rrc filter gr file sink gr sizeof gr complex tx rrc filter dat 8 PU B BT BT TT TT HT BPSK demodulator class bpsk_demod gr hier_block2 def self samples per symbol def samples per symbol excess bw def excess bw costas alpha def costas alpha gain mu def gain mu 103 mu def mu omega relative limit def omega relative limit gray code def gr
84. nelDemo 1 samples in 0 0 gusnP2 amp ChannelDemo 1 default GPP node 1 GPP1 lll samples in complexShort lt TxDemo 1 symbols out Bl samples out complexShort gt RxDemo 1 symbols amp RxDemo 1 default GPP node 1 GPP1 Platform default node 1 _1 default GPP node 1 GPP1 ne default_GPP_node lt default_GPP_sound_node default_m 403_node ChannelDemo_1 default_GPP_node_1 GPP1 amp RxDemo 1 default GPP node 1 GPP1 E Problems 22 Tasks OSSIE Info EJ Console 2 r4 riv Root of DomainManager FileSystem set to dom FileManager list In mount number FileManager list Adding file number 6 Object Added Event ProducerId OSSIE SourceId DCE 6bba314a d95c 11db a834 00123f573a7f SourceName DeviceManager dev bin GPP DEVICE MGR 10 010000001900000049444 3 43462744657669636541616 616765723 312 300000000001000000000000006800000001016 Object Added Event ProducerId OSSIE SourceId DCE 5ba336ee aaaa aaaa aaaa 00123f573a7f SourceName GPP1 OSSIE Lab1 Open a new terminal and load your waveform by typing 1 x Figure 5 11 NodeBooter Eclipse Window sudo wavLoader lt File Edit View Terminal Help ossie vt Found 9 available applications dom waveforms Te
85. nstall GNU Radio iv 2 2 3 Configuring USRP Support 2 2 4 Installing in a Custom Directory 3 OPEN SOURCE SCA IMPLEMENTATION EMBEDDED OSSIE AND INSTALLATION PC 22 3 1 Open Source SCA Implementation Embedded OSSIE Introduction 3 2 Install OSSIE from Source under Ubuntu 10 04 3 2 1 Installing Dependencies on Ubuntu 10 04 3 2 1 Configure omniORB 3 2 2 Installing Portions of GNU Radio 3 2 3 Install OSSIE 3 2 4 Using Autoconf and Updating System Libraries 3 2 5 Installation of OSSIE Eclipse Feature 3 3 Using the OSSIE VMware Player Image 3 3 1 Installing VMware Player 3 3 2 Creating omniNames sh 4 DEMONSTRATION AND COMMUNICATION SYSTEMS OVER GNU RADIO 4 1 GNU Radio Examples 4 1 1 Hello World Example 4 2 Dial Tone Example 4 2 SISO Communication System Over GNU Radio 4 2 1 Hardware and Software Requirements 4 2 2 System Design Setup and Running 4 3 FM Receiver Over GNU Radio 4 3 1 Build and Run FM Receiver 5 DEMONSTRATION AND COMMUNICATION SYSTEMS 48 5 1 OSSIE Waveform Demonstration 5 1 1 QPSK Demo Introduction 5 2 FM Receiver Over OSSIE GNU Radio 5 2 1 Build and Run FM Receiver 6 CONCLUSION AND FUTURE 72 APPENDIX A UBUNTU 10 04 INSTALLATION 74 APPENDIX B AVAILABLE DAUGHTER BOARDS AND OTHER DEVICES 78 APPENDIX C SOURCE CODES FOR SISO COMMUNICATION SYSTEM OVER
86. nt tool for developing wireless communication systems and it is wildly used for both academic and commercial areas Compared with traditional radio system design GNU Radio is cheaper and more flexible GNU Radio is implemented by USRP Universal Software Radio Peripheral mother board and daughter boards and other hardware devices are needed for the GNU Radio communication projects like Antenna Attenuator high speed USB RF cable and USRP power wires 2 1 1 Universal Software Radio Peripheral USRP The Universal Software Radio Peripheral USRP offers a chance for engineers to be able to implement and design software radio system by a comparatively inexpensive hardware device and easy steps The USRP plays like a digital baseband and IF Intermediate frequency section of a radio system it enable general purpose computers 13 to be high bandwidth software radios The host CPU will process all of the waveforms like modulation and demodulation and the USRP processes all of the high speed general purpose operations like decimation and interpolation Also a large community of developers and users created many hardware and software practical applications so a lot of helpful information online can be found Besides the SISO Proj and FM Receiver the USRP can be implement many other applications such as RFID reader Cellular base station GPS receiver Digital television decoder Passive radar and RF test equipment FX2 USB 2 Cont
87. nterp not in self get_interp_rates return False if self type USRP1_TYPE return self u set interp rate interp elifself type USRP2 TYPE return self u set interp interp elifself type DUMMY TYPE return True def get interp rates self if self type USRP1_ TYPE return range 16 51241 4 ifself type USRP2 TYPE return USRP2 RATES elifself type DUMMY TYPE return DUMMY XRATES def dac rate self ifself type USRPI TYPE return self u dac rate 117 if self type USRP2 TYPE return self u dac rate elif self _ type DUMMY TYPE return DUMMY CONVERTER RATE setup usrp methods IE ig Se ee ee def setup _usrp1 self self usrp sink c which fusb block size self fusb block size fusb nblocks self fusb nblocks determine the daughterboard subdevice we re using if self subdev spec is None self subdev spec usrp pick tx subdevice self self subdev usrp selected subdev self self subdev spec self u set mux usrp determine tx mux value self u self subdev spec self dxc self subdev which def setup usrp2 self self u usrp2 sink 32fc self interface self mac addr def setup dummy self self gr null sink gr sizeof gr complex C 5 Source Code for pick britrate py Copyright 2005 2006 Free Softwa
88. nuradio import eng notation import copy import sys receive path class receive_path gr hier_block2 def self demod class rx callback options gr hier block2 init self receive path gr io signature l 1 gr sizeof gr complex Input signature gr io signature 0 0 0 Output signature options copy copy options make a copy so we can destructively modify self verbose options verbose self bitrate options bitrate desired bit rate self samples per symbol options samples per symbol desired samples symbol self rx callback rx callback this callback is fired when there s a packet available self demod class demod class the demodulator class we re using Get demod kwargs 128 demod kwargs self demod class extract kwargs from options options Design filter to get actual channel we want sw decim 1 chan coeffs gr firdes low pass 1 0 gain sw decim self samples per symbol sampling rate 1 0 midpoint of trans band 0 5 width of trans band gr firdes WIN HANN filter type self channel filter filter ccc sw decim chan coeffs receiver self packet receiver blks2 demod pkts self demod class demod kwargs access code None callback self rx callback threshold 1 Carrier Sensing Blocks alpha 0 001 thresh 30 in dB will have to adjust self probe gr probe avg mag sqrd c thresh alpha Display some
89. oard 71 1 Ubuntu Welcome Screen 76 232 Ub nt 76 BA Basie LX odes pc pco 79 B2LFELX LPRX A 79 1 d E EM ER Dive 80 WBX 80 p eae coach eh ts vile sla lial SM wet od wo 81 a 81 BS RFX OU daten 82 82 83 URE OA 0 SEES Quo hM 83 B 12 RE Cables Avatlable corre EE EO IN RR 84 B 13 1 RF VER I Uo 84 13 2 VER QO e UE 84 VERT24 85 USRP Mother Board 85 1 INTRODUCTION 1 1 Radio Basics Radio systems have been used since the 19 century a series of radio system products telephony audio video and data systems totally changed our life style and the medium of communication for obtaining and exchanging information Based on these technologies we officially entered a century of knowledge explosion Although radio systems are related to a great many of technic areas the most basic
90. om installation directories can be able to find the python scripts libraries the headers etc First of all open the bashrc file by typing gedit bashrc in the terminal and add the following script into this file GNU Radio installation export PATH PATH opt gnuradio bin 20 export LD LIBRARY PATH LD_LIBRARY_PATH opt gnuradio lib export CONFIG PATH opt gnuradio lib pkgconfig export PY THONPATH P Y THONPATH opt gnuradio lib python2 6 site packages And restart your computer The last step of this installation is 1 Make a copy from current Id so conf file and save it in a temp folder cp etc ld so conf tmp ld so conf 2 Add usr local lib path to it echo usr local lib gt gt tmp ld so conf 3 Delete the original ld so conf file and put the modified file instead sudo mv tmp ld so conf etc Id so conf 4 Do ldconfig sudo Idconfig The GNU Radio is installed completely 21 3 OPEN SOURCE SCA IMPLEMENTATION EMBEDDED OSSIE AND INSTALLATION 3 1 Open Source SCA Implementation Embedded OSSIE Introduction Based on the goals of supporting research and education in wireless communication by using Software Defined Radio SDR OSSIE is designed as an open source SDR development effort based at Wireless VirginiaTech This embedded OSSIE project provides an open source tools and framework to test and develop the SDR platforms and wavefor
91. onstellation 2 BPSK 4 make gray constellation 4 QPSK 8 make gray constellation 8 8PSK j 125 binary to gray coding constellation does Gray coding binary to gray 1 2 range 2 4 0 1 3 2 8 0 1 3 2 7 6 4 5 gray to binary gray to binary 1 2 range 2 4 0 1 3 2 8 0 1 3 2 6 7 5 4 identity mapping binary to ungray 1 2 range 2 4 range 4 8 range 8 identity mapping ungray to binary 1 126 2 range 2 4 range 4 8 range 8 7 Source Code for receive_path py usr bin env python Copyright 2005 2006 2007 Free Software Foundation Inc This file is part of GNU Radio GNU Radio is software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either version 3 or at your option any later version GNU Radio is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details E You should have received a copy of the GNU General Public License along with GNU Radio see the file COPYING If not write to the Free Software Foundation Inc 51 Franklin Street Boston MA 02110 1301 USA H 127 from gnuradio import gr gru blks2 from g
92. ory without root permissions you need to create and change the ownership of sdr sudo mkdir sdr 26 chown R username username sdr Where username is your user name 3 2 4 Using Autoconf and Updating System Libraries cd ossie 0 8 2 configure prefix sdr libdir usr local lib V includedir usr local include with boost with boost filesystem make sudo make install Once the OSSIE libraries are installed they need to be linked As root edit the file etc ld so conf adding the line usr local lib Now run sbin Idconfig 3 2 5 Installation of OSSIE Eclipse Feature Installation of the OSSIE Eclipse Feature OEF requires the installation of OSSIE Java and Eclipse First we start from Java installation 27 Open etc apt sources list in an editor and add the following lines to the end of the file deb http archive canonical com ubuntu lucid partner deb src http archive canonical com ubuntu lucid partner In a terminal enter the following lines sudo apt get update sudo apt get install sun java6 jdk Install the Eclipse IDE for Java Developers Go to the Eclipse Download Center and download an Eclipse distribution for your platform Eclipse is distributed as a tarball archive that you can unpack to location of your choice Pick a location that is appropriate for your platform and simply unpack the contents There is no self installer just unpack the distribution Do not ins
93. p self rot 3 defon button self event if event value 0 button up return self rot 0 if self state FREQ 155 self state VOL else self state FREQ self update_status_bar def set_vol self vol g self volume range self vol max g 0 min g 1 vol self volume control set k 10 self vol 10 self myform volume set value self vol self update status bar def set freq self target freq m Set the center frequency we re interested in target freq frequency in Hz rypte bool Tuning is a two step process First we ask the front end to tune as close to the desired frequency as it can Then we use the result of that operation and our target frequency to determine the value for the digital down converter min r usrp tune self u 0 self subdev target freq ifr self freq target_freq 156 self myform freq set value target freq update displayed value self myform freq slider set value target freq update displayed value self update status bar self set status msg OK 0 return True self set status msg Failed 0 return False def set gain self gain self myform gain set value gain update displayed value self subdev set gain gain defupdate status bar self msg Volume r Setting s self vol self state self set status msg msg 1 self src fft set baseband freq self freq def volume range self
94. p determine rx mux value self u options rx subdev spec self subdev usrp selected subdev self u options rx subdev spec print Using RX d board 96s self subdev side and dbid self subdev dbid if not dbid usrp dbid BASIC RX or dbid usrp RX dbid usrp dbid TV RX REV 2or dbid usrp dbid TV RX REV 3or 150 dbid usrp dbid TV RX MIMO dbid usrp_dbid TV REV 2 MIMO dbid usrp_dbid TV_RX REV 3 MIMO print This daughterboard does not cover the required frequency range print for this application Please use a BasicRX or TVRX daughterboard raw_input Press ENTER to continue anyway or Ctrl C to exit chan_filt_coeffs optfir low_pass 1 gain usrp_rate sampling rate 80 3 passband cutoff 115e3 stopband cutoff 0 1 passband ripple 60 stopband attenuation print len chan filt coeffs chan filt gr fir filter ccf chanfilt decim chan filt coeffs self guts blks2 wfm rcv demod rate audio decimation self volume control gr multiply const ff self vol sound card as final sink audio sink audio sink int audio rate options audio output False to block now wire it all together self connect self u chan filt self guts self volume control audio sink 151 self build gui vbox usrp rate demod rate audio rate if options gain is None if no gain was specified use the mid point in dB g self subdev gain
95. p2 DUMMY TYPE dummy usrp2 rates common for decim and interp USRP2 RATES range 4 128 1 1 range 130 25641 2 range 260 51241 4 dummy common rates DUMMY XRATES range 4 512 2 DUMMY CONVERTER RATE 100e6 dummy freq result class dummy freq result object def init self target freq self baseband freq target freq self dxc 0 self residual freq 0 from gnuradio import gr usrp usrp2 generic usrp common stuff class generic usrp base object def self which 0 subdev_spec None interface mac_addr fusb block size 0 fusb_nblocks 0 usrpx None lo offset None gain None self lo offset lo offset 111 usrp options self which which self subdev_spec subdev_spec usrp2 options self interface interface self mac addr mac addr fusb options self fusb block size fusb block size self fusb nblocks fusb nblocks pick which usrp model if usrpx 0 self setup usrpx DUMMY TYPE elif usrpx 1 or subdev spec self setup usrpx USRP1 TYPE elif usrpx 2 or self mac self setup usrpx USRP2 else Zautomatic try self setup usrpx USRP
96. ponent Use is basically limited to the ossie_demo waveform D 19 SymbolSyncPoly a Description Symbol Synchronizer b Properties pulse_shape string Type of pulse shape to use for matched filter ushort Samples per symbol m ushort Symbol delay beta float Excess bandwidth factor Npfb ushort Number of filters in bank c Interfaces Provides baseband_in complexShort Uses symbols complexShort D 20 TxDemo a Description Generates test symbols 167 b Properties packet_delay_ms short Delay between generated packets milliseconds c Interfaces Provides None Uses symbols complexShort d Additional Notes Directly related to the RxDemo component D 21 USRP_Commander a Description A controller for the USRP1 hardware b Properties rx_ freq float Receiver frequency tx freq float Transmitter frequency tx_interp short Transmitter interpolation factor rx decim float Receiver decimation factor IX Size ulong Receiver data packet size rx gain float Receiver gain rx gain max short If 1 sets rx gain to max and gain property is ignored tx start short Start the transmitter when the component starts rx start short Start the receiver when the component starts c Interfaces Provides None 168 Uses TX Control TX Control Uses RX Control RX Control Uses Data Control Resource D 22 WebCamCapture
97. py Copyright 2009 Free Software Foundation Inc This file is part of GNU Radio GNU Radio is software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either version 3 or at your option any later version GNU Radio is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details You should have received a copy of GNU General Public License along with GNU Radio see the file COPYING If not write to the Free Software Foundation Inc 51 Franklin Street Boston MA 02110 1301 USA 136 parser to groups dict dict class parser groups object def self parser self usrpx parser add option group General USRP Options self usrpl parser add option group USRP1 Specific Options self usrplexp parser add option group USRP1 Expert Options self usrp2 parser add option group USRP2 Specific Options import generic usrp def add options parser Add options to manually choose between usrp or usrp2 Add options for usb Add options common to source and sink param parser instance of OptionParser return the parser group cache groups so they dont get added twice on tranceiv
98. r found DomainNamel GPP1 DevMgr Configuring capacities DevMgr Registering device Object Added Event ProducerId OSSIE SourceId DCE 5ba336ee aaaa aaaa aaaa 00 123f573a7f SourceName GPP1 DevMgr Device Registered Figure 5 6 Running NodeBooter in Terminal 55 Open a terminal and type cd sdr nodeBooter D d dev nodes default_GPP_node DeviceManager dcd xml If other nodes are needed for other waveform projects you will just need to change the node name For example nodeBooter D d dev nodes lt your node name gt DeviceManager dcd xml Open a new terminal and load your waveform by typing sudo C_wavLoader ossie fac 437 5211 sdr waveforms ossie demo Edit View Terminal Tabs Help ossie fac 437 5211 ossie demo wavLoader py ossie demo DAS xml 1 waveforms ossie demo ossie demo sad xml 2 waveforms pass data waveform pass data waveform sad xml 3 DeviceManager waveforms ossie demo ossie demo sad xml 4 DeviceManager waveforms pass data waveform pass data waveform sad xml Install application number n x exit Selection Figure 5 7 Loading Waveform Terminal 1 56 ossie fac 437 5211 sdr waveforms ossie_ demo File Edit View Terminal Tabs Help ossie fac 437 5211 ossie demo wavLoader py ossie demo 5 1 waveforms ossie demo ossie demo sad xml waveforms pass data waveform pass data waveform sad xml DeviceManager waveforms ossie demo ossie demo sad
99. re Foundation Inc This file is part of GNU Radio 118 GNU Radio is software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either version 3 or at your option any later version GNU Radio 15 distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details You should have received a copy of the GNU General Public License along with GNU Radio see the file COPYING If not write to the Free Software Foundation Inc 51 Franklin Street Boston MA 02110 1301 USA from gnuradio import eng notation default bitrate 500e3 valid samples per symbol 2 3 4 5 6 7 def gen tx info converter rate xrates results for samples per symbol in valid samples per symbol for interp in xrates bitrate converter rate interp samples per symbol results append bitrate samples per symbol interp results sort return results def gen rx info converter rate xrates 119 results for samples symbol valid samples per symbol for decim in xrates bitrate converter rate decim samples per symbol results append bitrate samples per symbol decim results sort return results def filter info info samples per symbol
100. reen nnne eri ote d i i eee abe Du 47 5 OPSK Demo 49 5 2 Create OSSIE uec Blonde 50 5 3 OSSIE Eclipse Waveform Window 51 viii 5 4 QPSK Demo Eclipse Window 53 5 5 QPSK Demo Eclipse Assembly Controller Setting esses 54 5 6 Running NodeBooter in Terminal 55 5 7 Loading Waveform Terminal 1 44e eto eh aetate i o ede Re Sas 56 5 8 Starting Waveform Tertillal caecis desi petes age 57 SPO PSK Demi serio atte en tete 27 5 10 NodeBooter Node Setting 58 5 11 NodeBooter Eclipse Window 59 5 12 Loading Waveform Terminal 2 oie terere ie vete eae ei 59 5 13 QPSK Waveform Output Eclipse 60 5 14 ALF Showing Waveform 61 5 15 Plot Tool Showing Spectrum and 62 5 16 QPSK Demo Ossie WaveDash Window esee eene 63 5 17 OSSIE FM Receiver Waveform Panel eei ee do 67 5 18 OSSIE FM Receiver Plateform 68 3 I9 DSSIE EM Receiver NodeBooler a v eoo pee qe e pacte ted 69 5 20 OSSIE FM Receiver ALF Waveform Debugger eere 70 5 21 OSSIE FM Receiver WaveDash Waveform Dashb
101. rmod G usrp a lt USERNAME gt Now that users will have access to the USRP read and write access to the device must be created As root create the file etc udev rules d 10 usrp rules in a text editor vi etc udev rules d 10 usrp rules Add the following text to the following text to the file ACTION add BUS usb SYSFS idVendor SYSFS idProduct 0002 GROUP usrp MODE 0660 The text above is displayed on two lines due to the constraints on page size however the text must appear on a single line without the backslash in the file for the access to the 25 USRP to work properly You may also add the following comment lines to the file for future reference rule to grant read write access on USRP to group named usrp to use install this file in etc udev rules d as 10 usrp rules The USRP interface has now been created As an optional test connect the USRP to the computer and run the following command 15 dev bus usb The users root and usrp should now be listed under the user groups 3 2 3 Install OSSIE Download the latest tarball from http ossie wireless vt edu download tarballs 0 8 2 Unpack ossie 0 8 2 tar gz by typing wget http ossie wireless vt edu download tarballs 0 8 2 ossie 0 8 2 tar gz tar xvf ossie 0 8 2 tar gz By default the installation directory of the OSSIE platform is sdr In order to install new source code and binaries into this direct
102. roller ADC ADC Receive Receive Daughterboard Daughterboard gt C mn ADC FPGA DAC DAC Transmit Transmit Daughterboard Daughterboard lt DAC r4 DAC Figure 2 1 Universal Software Radio Peripheral USRP D USRP family products and related products are offered by Ettus Research LLC you can find and purchase them by the website http www ettus com order 14 Table 2 1 USRP 1 Specifications 24 Supported Operating Input Output Auxiliary I Q System Linux Number of input Number of output High speed digital Mac OS X channels channels 64 bits Windows 4 or 2 pairs 4 or 2 I Q pairs Analog input Windows Sample rate 64 Ms s Sample rate 128 Ms s 8 channels 2000 Resolution 12 bits Resolution 14 bits Analog output FreeBSD SFDR 85 dB SFDR 83 dB 8 channels NetBSD And the features of USRP can be found in Appendix B Because USRP mother board is equipped with USB 2 0 make sure your PC is also equipped with USB 2 0 There are 4 high speed 12 bit ADCs which can bandpass sample signals up to 150 MHz GNU Radio daughter boards can enable USRP Mother board to be a complete RF transceiver system and all available Daughter boards are listed here e BasicRX Receiver for use with external RF hardware e BasicT X Transmitter for use with external RF hardware e LFRX DC to 30 MHz receiver 15 e LFTX DC to 30 MH
103. should assembly controller start other components OSSIE discuss forum October 2011 URL http listserv vt edu archives open source html 17 J G Proakis Digital Communications McGraw Hill Professional 4th ed 2000 18 B Sklar Digital Communications Fundamentals and Applications Prentice Hall 2nd ed January 2001 19 Theodore S Rappaport Wireless Communications Principles and Practice Person Education 2nd ed 2009 20 Constantine A Balanis Antenna Theory Analysis and Design Wiley Interscience 3nd ed April 4 2005 21 U S Department of Commerce National Telecommunications and Information Administration Office of Spectrum Management United States Frequency Allocations the Radio Spectrum October 2003 22 Krishna Sankar Coherent Demodulation of DBPSK URL http www dsplog com 2007 09 30 coherent demodulation of dbpsk Septermber 2007 23 Johnny Lee A Bidirectional Two Hop Relay Network Using GNU Radio And USRP Master s thesis Uiversity of North Texas Denton Texas August 2011 24 Ettus Research LLC URL http www ettus com order October 2011 25 Matt Ettus Ettus Research LLC USRP User s and Developer s Guide URL http matt ettus com October 2011 26 WARP Home Page URL http warp rice edu October 2011 172
104. srcl gr sig source f sample rate gr GR SIN WAVE 440 ampl dst audio sink sample rate options audio output self connect srcO dst 0 self connect 1 dst 1 if name main try my top block run 37 except KeyboardInterrupt pass First we use gr sig source f to generate two sine waves 5 0 the f in sig source f means these two signals are floating type audi sink is a receiver and it can send the received signals to the sound card self connect 0 dst 0 and self connect 1 dst 1 connect two sine wave source signals to the audio sink Close the terminal the dial tone will be turned off Open a terminal direct to the dial_tone py file by the full path then you will be able to run dial tone py For example cd Desktop gnuradio 3 3 0 gnuradio examples python audio And run the dial tone example dial tone py Then you will hear a US dial tone from the speaker To generate two sine waves in different frequencies find the dial tone py and double click it when a window pops up press Display Find the following two lines in the file src0 gr sig source f sample rate gr GR SIN WAVE 350 ampl srcl gr sig source f sample rate gr GR SIN WAVE 440 ampl 38 Change 350 and 440 to the frequencies you want to hear and save the file and run it again If you change them to higher frequencies you will hear
105. st STATE PLAYING listen for tags on the message bus tag event might be called more than once bus player get bus bus enable sync message emission 9 bus add signal watch bus connect message tag on tag wait and let the music play raw input Press enter to stop playing if name main try main except KeyboardInterrupt pass C 2 Source Code for benchmark tx py usr bin env python Copyright 2005 2006 2007 2009 Free Software Foundation Inc This file is part of GNU Radio GNU Radio is software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either version 3 or at your option any later version GNU Radio is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details 92 You should have received a copy of the GNU General Public License along with GNU Radio see the file COPYING If not write to the Free Software Foundation Inc 51 Franklin Street Boston MA 02110 1301 USA from gnuradio import gr gru modulation utils from gnuradio import usrp from gnuradio import eng notation from gnuradio eng option import eng option from optparse import OptionParser import random ti
106. st Test sad xmLl Q RP sad xmLl alkLoopBack sad xml dom waveforms newwaveform newwaveform sad xmL 5 6 dom waveforms ml403 ossie demo ml403 ossie demo sad xml 7 dom waveforms Lab5Example Lab5Example sad xml 8 dom waveforms ossie demo ossie demo sad xml 9 dom waveforms pass data waveform pass data waveform sad xml n Install application number n exit Selection B Figure 5 12 Loading Waveform Terminal 2 59 The waveform is loaded now and it is a file named lt your project name gt sad xml Type the waveform number and youe will have two choices s start application and uninstall application Enter s in the console you will see lines of the form RXDemo errors X 1024 This is the output of the receiver and with X number of bit errors out of 1024 bits This output information will be stopped by pressing the rad stop button in Eclipse riv OvrQr So vv ev magos 90 E Available Resources Waveform age cpp TxDemo_1 default_GPP_node_1 GPP1 5 ll symbols out complexShort gt ChannelDemo 1 samples in i2 Labl 5 2 amp ChannelDemo 1 default GPP node 1 GPP1 El XilinxFPGA i samples in complexShort lt TxDemo 1 symbols out soundCardCapture Bl soundCardPlayback Nodes gt default_GPP_USRP2_node default_GPP_USRP_node samples out complexShort gt RxDemo 1 symbols
107. tall Eclipse in a directory that has spaces anywhere in its full path name Installation of OEF is followed by next two lines cd path to eclipse eclipse After Eclipse starts on the toolbar select Help Install New Software In the new window select the Work with textbox and enter the URL 28 http ossie wireless vt edu eclipse and select Add Give a name e g OEF The window will then add the URL OSSIE and OSSIE Waveform Developer Feature to the list of available software Place a check in the box next to OSSIE Waveform Developer Feature and click Next Eclipse will show a window with more details select Finish to complete the installation process Allow Eclipse to restart when it prompts to do so After it restarts the OSSIE Eclipse Feature will be installed Select the OSSIE perspective within Eclipse On the toolbar select Window Open Perspective Other In the new window select OSSIE which will then open the OSSIE perspective On the toolbar select File New OSSIE Waveform or OSSIE Component to start developing These same instructions used for installing OEF can be used later to update it to newer versions 3 3 Using the OSSIE VMware Player Image Except installing OSSIE from the source you also can use the OSSIE VMware Player Image to run OSSIE waveform The username of OSSIE is 1 the password is wireless and the username and password may be asked to login to the
108. ted Figure 5 18 OSSIE FM Receiver Platform Panel Press Crtl S to save this waveform Navigate to sdr dev xml soundCardPlayback open soundCardPlayback prf xml by typing gedit soundCardPlayback prf xml 68 Find the following line lt value gt XXXX lt value gt Change XX XX to 25000 because this is setting the sample rate to 25 KHz in the sound card FM Receiver only needs to receive signals so plug Basic RX daughter board into the RX A slot on the USRP main board and connect USRP to the computer using the USB cable Problems Zi Tasks amp OSSIE Info gt a Ew BE r4 riv H Root of DomainManager FileSystem set to dom FileManager list In mount number 0 FileManager list Adding file number 0 Object Added Event ProducerId OSSIE SourceId DCE 26555f88 e859 11db 97b9 00123f573a7f SourceName DeviceManager Idev bin GPP DEVICE MGR I0R 010000001900000049444c3a4346214465766963654d616e616765723a312e3000000000010000000000000068000000010102001000000 Object Added Event ProducerId OSSIE SourceId DCE 5ba336ee aaaa aaaa aaaa 001231573a7f SourceName GPP1 Idev bin USRP DEVICE MGR IOR 010000001900000049444c3a4346214465766963654d616e616765723a312e300000000001000000000000006800000001010200100000 ORB destructor called re cnt now 0 USRP RX Control port constructor called ORB destructor called re cnt now 0 USRP TX Control port constructor called ORB destructor
109. tely installed VMware Player and unzipped OSSIE VMware image boot OSSIE VMware image up by VMware Player a window of update requirement will pops out choose ok and start updating system If you install everything correct the main window should look as similar as Figure 3 1 Also you can download VMware Images from http ossie wireless vt edu download vmware OSSIE 0 8 2 GR 3 3 0 GC 3 0 Ubuntu 30 10 04 2 rar and this version has more OSSIE open source SCA software radio frameworks components and OSSIE Labs documents installed which I recommend Just one more step after this you will be capable to run the demonstration waveforms and practice the labs 42 Applications Places Syste gi Wed 5 11 23 AM amp 9 Le 1n Clean up OSSIE Restart omniNames Desk Type Versi ubiquity gtkui desktop Documents 71 ALF Waveform Debu S ossie vt Docume Figure 3 1 OSSIE Desktop Screen 31 3 3 2 Creating omniNames sh The naming service will automatically start when you boot the system if you install Omni ORB from RPM otherwise you will need to start naming service manually by creating a file named omniNames sh Boot OSSIE VMware image by VMware Player open a terminal from the Applications Accessories terminal and type sudo vi omniNames sh Press i from keyboard to be able to insert the code and type th
110. ter to stop playing Adding this coding into benchmark rx py between Stop rb flow graph raw input dest file close tb stop if name main try main except KeyboardInterrupt pass 43 After connection all of hardware and installed all needed software on the computer two open a terminal direct to the SISO Proj folder and enter benchmark rx py f 2 45G w 0 u 1 m dbpsk r 500k R A When the following lines appear in the terminal GNU Radio is ready to receive signals gt gt gt gr fir ccf using SSE Requested RX Bitrate 500k Actual Bitrate 500k Warning Failed to enable realtime scheduling Ready to receive packets Open a terminal on computer one and navigate to the SISO Proj folder and enter benchmark_tx py f 2 45G w 0 u 1 m dbpsk from file music mp3 r 500k When the following lines appear in the terminal the GNU Radio starts to transmit signals gt gt gt gr fir_ccf using SSE Requested TX Bitrate 500k Actual Bitrate 500k Warning failed to enable realtime scheduling 44 Meanwhile open another terminal on the computer two enter gst launch playbin num buffers 10000 uri file home zizhi Desktop SISO Proj received dat Then the mp3 music will be heard from the speaker 4 3 FM Receiver over GNU Radio Compare with the traditional FM receivers that are built entirely using hardware fabricated in a plant the open source signal pro
111. th pyc usrp transmit path py transmit path pyc Files to transmit 41 Checking the missing file by type the following line into the terminal to run the file benchmark_rx py The ImportError line will show you the missing file All files can be found in GNU Radio library Gstreamer Player is needed to play the received mp3 music in this project to install it open a terminal enter the following lines to install gstreamer tools sudo apt get install gstreamer tools After install the Gstreamer Player the received mp3 file can be played in another terminal when the file is being sent Or by writing python code for the Gstreamer Player and add it to benchmark_rx py the mp3 file will automatically be played when the file is completely received The Gstreamer Player Python Code is def on_tag bus msg taglist msg parse_tag print on_tag for key in taglist keys print t s 5 key taglist key our stream to play music stream uri file home zizhi Desktop SISO Proj received dat om player gst element factory make playbin player 42 player set property uri music stream uri start playing player set_state gst STATE PLAYING listen for tags on the message bus tag event might be called more than once bus player get bus bus enable sync message emission bus add signal watch bus connect message tag on tag wait and let the music play raw input Press en
112. to burn Ubuntu image to a CD Download and install Infra Recorder from http infrarecorder org gt Insert a blank CD in the drive gt select Do Nothing or Cancel when an auto run dialog bod pops up gt open Infra Recorder gt click Actions button gt click Burn Image gt select the Ubuntu CD image file you just downloaded gt click Open gt click in the dialog box Secondly it shows the option that you can try out Ubuntu before you install it after you have a bootable Ubuntu CD by this approach you can run Ubuntu on your computer without affecting your current system 75 Install Welcome Catala Ceitina Deutsch testi Espa ol Esperanto Euskara Try Ubuntu Install Ubuntu Frangais Figure A 1 Ubuntu Welcome Screen Figure A 2 Ubuntu Desktop Screen Insert the bootable Ubuntu CD into the CD DVD drive and restart the computer gt choose the language you preferred when the welcome screen Figure A 1 appears gt click Try Ubuntu button When the Ubuntu desktop screen Figure A 2 appears you can try out all Ubuntu functions if you want to install it now just need to click Install Ubuntu 11 04 option Thirdly for the convenience you may want to install Ubuntu directly from the CD Make sure your computer has enough space for Ubuntu gt insert the CD into CD DVD drive and restart the computer gt choose the language you preferred and click
113. tor polynomials in OCTAL for the custom rate_index 0 port_list string Returns a sequence of strings with the names of the available Provides ports c Interfaces Provides bits to dec in realChar Uses decoded bits realChar D 7 Conv Enc a Description A convolutional encoder b Properties rate index short The index of the decoding rate from the supported rates table For a custom rate use rate index 0 mode short Unknown description short Input bits at a time for the custom rate index 0 with encoder rate k n K short Constraint length for the custom rate index 0 n short Output bits at a time for the custom rate 0 has to match the number of supplied polynomials rate index 0 The encoder rate k n generatorPolynomials short A list of generator polynomials in OCTAL for the custom rate index 0 list string Returns a sequence of strings with the names of the available Interfaces 162 Provides bits to enc in realChar Uses encoded bits realChar D 8 Decimator a Description Decimates the input signal b Properties DecimateBy ushort The decimation factor filter float Filter coefficients for the decimator Filter Type string Specifies the filter type IIR or FIR The IIR option uses auto generated coefficients only c Interfaces Provides inData complexShort Uses outData complexShort D 9 DigitalDemodulator a
114. trate bitrate bits per symbol samples per symbol decim rate converter rate possible decims m Given the 4 input parameters return at configuration that matches param bitrate desired bitrate or None type bitrate number or None param bits per symbol E g BPSK gt 1 QPSK gt 2 8 PSK gt 3 type bits per symbol integer gt 1 param samples_per_symbol samples baud aka samples symbol type samples_per_symbol number or None param decim_rate USRP decimation factor type decim_rate integer or None param converter_rate converter sample rate in Hz type converter_rate number param possible decims a list of possible rates type possible_decims a list of integers returns tuple bitrate samples_per_symbol decim_rate m print Requested RX Bitrate bitrate and eng notation num to str bitrate or Auto return pick bitrate bitrate bits per symbol samples per symbol decim rate converter rate possible decims gen rx info C 6 Source Code for psk py E Copyright 2005 2006 Free Software Foundation Inc 123 This file is part of GNU Radio GNU Radio is software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either version 3 or at your option any later version GNU Radio is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without ev
115. ttp www ubuntu com download ubuntu download October 2011 3 Building GNU Radio on Ubuntu Linux URL http gnuradio org redmine projects gnuradio wiki UbuntulInstall October 2011 4 Matt Carrick Drew Cormier Christopher Covington Carl B Dietrich Joseph Gaeddert Benjamin Hilburn C Ian Phelps Shereef Sayed Deepan Seeralan Jason Snyder Haris Volos OSSIE 0 6 2 Installation and User Guide April 2011 5 OSSIE Labs URL http ossie wireless vt edu download labs October 2011 6 Waveform Development Guide under development URL http ossie wireless vt edu trac wiki WaveformDevelopmentGuide October 2011 7 GNU Radio Mailing Lists October 2011 URL http www gnu org software gnuradio mailinglists html 8 Python v2 7 1 documentation URL http docs python org index html October 2011 9 Eric Blossom Exploring GNU Radio GNU Radio November 2004 10 OSSIE http ossie wireless vt edu October 2011 11 OSSIE Mailing Lists http listserv vt edu cgi bin wa AO OSSIE DISCUSS October 2011 12 Edoardo Paone Open Source SCA Implementation Embedded and Software Communication Architecture 2010 13 Eric Blossom How to Write a Signal Processing Block GNU Radio July 2006 URL http gnuradio org redmine wiki gnuradio 171 14 Wikipedia http en wikipedia org October 2011 15 Matt Ettus USRP family brochure Ettus Research http www ettus com 16 Michael Ihde Philip Balister and Shereef Sayed How
116. und aUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaU 46 And a FM Receiver window will pops up which looks like Figure 4 3 Data from USRP Average Hu Persistence Persist Alpha 0 1873 Tace A Store Tace B Store Axis Options dB Div Ref Level cu 20 Autoscale 1077 10775 1078 10785 1079 107 95 108 108 05 108 1 Frequency MHz EN NN Trace Options Peak Hold Average Avg Alpha 0 1333 Persistence Persist Alpha 0 1842 Trace A N 7 Trace Axis Options dB Div Ref Level Autoscale Frequency kHz step Freq 107 9 Volume Gain ok Volume 0 0 Setting FREQ Amplitude dB Post Demod Amplitude dB Figure 4 3 FM Receiver Window Screen Change the frequency by adjusting the bar by the side of Freq to receive signals from 47 5 DEMONSTRATION AND COMMUNICATION SYSTEMS OVER OSSIE 5 1 OSSIE Waveform Demonstration For the purpose of understanding OSSIE OSSIE developers offer OSSIE Labs for OSSIE 0 6 1 version up to OSSIE 0 8 2 version and the GNU Radio Labs at http ossie wireless vt edu download labs Since OSSIE 0 8 2 the lasted version it is used here and a combination OSSIE 0 8 2 Lab will be explained in detail OSSIE Labs were developed with the assistance of Philip Balister Jacob DePriest Jeff Reed and
117. wice the maximum frequency of the signal so that the aliasing can be avoided So there is a problem if the ADC runs at 20 MHz we cannot listen to broadcast FM radio at 92 1 MHz however with the RF front end we can translate signals occurring in 90 100 MHz range RF down to 0 10 MHz range IF then listening to the radio at 92 1 MHz with 20MHz ADC sampling rate is possible Compare with the basic digital communication system diagram the communication system over GNU Radio can be designed as Figure 1 9 10 RF Front End Source Information Channel Digital source and Input Encoder transducer Encoder Modulator Communication System Over GNU Radio Output transducer RF Front and Output signal Source Channel Digital End Decoder Decoder Demodulator Figure 1 9 Communication System Over GNU Radio Diagram 1 3 Available Software Defined Radios Because SDR is a convinent and inexpensive tool for communication system development there are a great many groups and companies are working on it It is very easy to find SDR hardware and toolkit in the market Table 1 2 shows some available SDR hardware and software resources 11 Table 1 2 Available Software Defined Radios Name Producer amp Website Frequency Range Products and Price USRP Ettus Research LLC Up to 4 GHz USRP N200 1500 1700 http www ettus co USRP MEI00 1300 1500 m products
118. xml DeviceManager waveforms pass data waveform pass data waveform sad xmLl n Install application number n x exit Selection 1 waveforms ossie demo ossie demo sad xml successfully installed onto Domain Man ager App fact seq length 1 applicationFactories O0 name OSSIE ossie demo Application created Ready to run or uninstall S start application u uninstall application Selection Figure 5 8 Starting Waveform Terminal Your waveform is loaded now and it is a file named your project name gt sad xml 66 99 5 the number of your waveform in the list after Selection and enter ossie locathost sdr File Edit View Terminal Tabs Help AppFact Narrowing provides resource AppFact Getting provides port with id samples_in AppFact Creating Connection 1 5966 824 119 001237630257 Object Added Event ProducerId DCE ela85dc2 824a 11dc 93f8 00123f63025f Sourc eld DCE ela85dc2 824a 11dc 93f8 00123f63025f SourceName OSSIE ossie demo RxDemo errors 7 1024 RxDemo errors 5 1024 RxDemo errors 5 1024 RxDemo errors 2 1024 RxDemo errors 5 1024 RxDemo errors 3 1024 RxDemo errors 7 1024 RxDemo errors 6 1024 RxDemo errors 7 1024 RxDemo errors 7 1024 RxDemo errors 6 1024 RxDemo errors 9 1024 Figure 5 9 QPSK Demo Output The receiver output information will show in the terminal like Figure 5 9 57 Enter x
119. z transmitter e TVRX 50 to 860 MHz receiver DBSRX 800 MHz to 2 4 GHz receiver e WBX 50 MHz to 2 2 GHz transceiver RFX400 400 500 MHz transceiver RFX900 750 1050 MHz transceiver RFX1200 1150 1450 MHz transceiver e RFX1800 1 5 2 1 GHz transceiver RFX2400 2 3 2 9 GHz transceiver e XCVR2450 2 4 GHz and 5 GHz dualband transceiver More details about available Daughter boards and other devices are showed in Appendix B Equipping with all required hardware device you will be able to design a two way high bandwidth communications in variable frequency bands 2 1 2 GNU Radio Graphical interfaces GNU Radio applications graphical interfaces are built in Python the wxPython is suggested to use in order to maximize cross platform portability And GNU Radio provides about 100 signal processing blocks implemented in C these signal processing blocks process infinite streams of short float and complex data through their input and output ports In the graph some blocks have only input ports or output ports and they are designed as data sources and sink Python plays an important role in GNU radio and it 16 creates signal flow graphs a network to connect these C signal processing blocks together Python Flow Graphs SWIG Port C blocks to Python C Signal Processing Modules Figure 2 2 GNU Radio Software Architecture 2 2 GNU Radio Installation Guide for Ubuntu 10 04 2 2 1 Install Dependen
Download Pdf Manuals
Related Search
Related Contents
ELP-200 取扱説明書 - オゾン測定器 – 荏原実業株式会社 計測器・医療 dvr 8_16ch_manuale-rapido the PDF file - Notice et mode d`emploi Gebruiks- aanwijzing Wijnkelder User manual Wine SDS_ManITA_SerieWxx_.. STK361L-S/Wマニュアル Clarion UNGO MS8300 Installation manual トランスファーベンチ HZ-N 取扱説明書 STEINEL L20 Copyright © All rights reserved.
Failed to retrieve file