cis 632 / eec 687 mobile computing · 3 cognitive radio term coined by mitola in 1999 mitola’s...
Post on 22-Mar-2020
2 Views
Preview:
TRANSCRIPT
1
CIS 632 / EEC 687Mobile Computing
MC Platform #4 – USRP & GNU Radio
Chansu Yu
2
Software Defined Radio (SDR)
Termed coined by Mitola in 1992Radio’s physical layer behavior is primarily defined in softwareAccepts fully programmable traffic & control informationSupports broad range of frequencies, air interfaces, and application softwareChanges its initial configuration to satisfy user requirements
Tutorial at IEEE DySpan Conference, 2007Understanding the Issues in SD Cognitive RadioJeffrey H. Reed, Charles W. Bostian, VT
3
Cognitive Radio
Term coined by Mitola in 1999Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters its physical layer behavior Capable of following complex adaptation strategies
“A radio or system that senses, and is aware of, its operational environment and can dynamically and autonomously adjust its radio operating parameters accordingly” Learns from previous experiencesDeals with situations not planned at the initial time of design
GNU Radio
Origin: MIT’s SpectrumWare (mid ’90s)Software toolkit for signal
processing Software radio construction Rapid development Cognitive radio
USRP (Universal Software Radio Peripheral) Hardware frontend for sending
and receiving waveforms
GNU Radio Components
Hardware Frontend Host Computer
RF Frontend(Daugtherboard)
ADC/DAC andDigital Frontend
(USRP)
http://mobiledevices.kom.aau.dk/fileadmin/mobiledevices/teaching/software_testing/Gnu_radio_lecture.pdf
GNU RadioSoftware
Development Architecture
http://mobiledevices.kom.aau.dk/fileadmin/mobiledevices/teaching/software_testing/Gnu_radio_lecture.pdf
Python
Application developmentFlow graph construction
C++
Signal processing blocks
Python
Application management
(e.g., GUI)
Flow graph construction
Non-streaming code (e.g.,
MAC-layer)
C++
Signal processing blocks
Certain routines also
coded in assembly
Basics: Blocks
Signal Processing Block
Accepts 0 or more input
streams
Produces 0 or more
output streams
Source: No input noise_source,
signal_source,
usrp_source
Sink: No outputs audio_alsa_sink,
usrp_sink
http://zoo.cs.yale.edu/classes/cs434/
Basics: Data Streams
Blocks operate on streams of data
1 5 3
3 7 9
4 12 12
http://zoo.cs.yale.edu/classes/cs434/
Basics: Data Types
Blocks operate on
certain data types char, short, int, float, complex
Vectors
Input Signature:
Data types for input
streams
Output Signature:
Data types for output
streams
Two streamsof float
One streamof complex
http://zoo.cs.yale.edu/classes/cs434/
Basics: Flow Graph
Blocks composed as a flow graph
Data stream flowing from sources to sinks
http://zoo.cs.yale.edu/classes/cs434/
Dial Tone Example
Generates two sine waves and outputs them to the sound card
Importing necessary module
Generates two
sine waves
Writes sampling _freq input
to the sound card
connect the blocks together
GRC (GNU Radio Companion)
http://sites.google.com/site/ahsustevens/http://www.youtube.com/watch?v=xxe87CdIq-s
* Generate the corresponding python file in GRC to see how it is programmed.
USRP – RF Front-end
Serves as a digital baseband and IF section of a radio communication system
All waveform-specific processing (e.g., modulation) is done on the host CPU.
All the high speed general purpose operations (digital up/down conversion, decimation, ad interpolation) are done on the FPGA.
USRP (Universal Software Radio Peripheral)
USRP
USRP Motherboard
USRP Daughter-boards
LFTX
LFRX RFX2400
USRP DaughterboardsBase-band boards: BasicTX/BasicRX, LFTX/LFRX Bandwidth: 250 MHz (Basic), 30 MHz (LF) Can not connect directly to antenna
WBX - Wide-band transceiver 50 MHz – 2.2 GHz Relatively poor performance
TVRX - 50 – 860 MHz receiver Bandwidth: 6 MHz Suitable for receiving TV signals
RFX-series - General full-duplex transceivers Bandwidth: 30 MHz Bands: 400–500 MHz, 750–1050 MHz, 1150–1450
MHz, 1.5–2.1 GHz, 2.3–2.9 GHz
21
1. Open a terminal and type “gnuradio-companion” and open a new project.
2. Double click the “Options” block and name the project title and author. (Generate Options to WX GUI, Run to Autostart, and Realtime Scheduling to Off) Observe the default sample rate is set to 32000 samples/sec in the “Variable” block, which will be used in other blocks.
3. On the right side, find “Signal Source” from “Sources” category. Bring it to the main window. Double click “Signal Source” block and change the output type to “Float” and frequency to 1000.
4. Find “WXGUI Scope Sink” from “WXGUI Widgets” category to bring it to the main window. Change the type to “Float” and window size “(500,100)”.
5. Click on the out port of “Signal Source” and in port of “Scope Sink” to make a connection.
6. Save the grc file and Click “Generate the flow graph” icon. Notice that there is a warning message at the bottom of the window. Add “Throttle” block in “Misc” category (where/why?) in between the two.
7. Click “Generate the flow graph” icon again. No warning now. Then, click “Execute the flow graph” icon to execute it.
8. Add “Audio sink” block to hear the 1KHz sound.
9. In the scope window, change the channel option to “Dot Large” to observe actual samples (32000 samples/sec).How many dots are there in one cycle?
10. Change the sample rate (how?) and execute again to observe the actual samples. How low can you drop the sample rate? Recall the Nyquist sampling theorem.
11. Add “FFT sink” block as another sink. Change the type “float” and window size to “(500,100)” to observe the FFT plot.
12. Add another “Signal Source” of frequency 800. Combine the two sources using “Add” block.
13. Replace the “Add” block with “Multiply” block to observe and hear the differences.
14. Add “Low Pass Filter” to block the 1.8KHz component and pass the 200Hz component. Set the low pass filter to have a cutoff frequency of 1KHz and a transition width of 200 Hz. Use a Rectangular Window.
15. Repeat with the “High Pass Filter”. Choose the parameters and observe the Amplitude in FFT plot (change dB/Div option to easily see)
16. With the “Low Pass Filter”, change the Decimation to 2. A decimation factor of two means that the output of the filter will have a sample rate equal to one-half of the input sample rate, or in this case only 16000 samples/sec.
17. Observe the FFT plot to see the peak frequency, which is 400Hz (not 200Hz, why?). Double click on the FFT Sink block and change the sample rate to samp_rate/2.
top related