cis 632 / eec 687 mobile computing · 3 cognitive radio term coined by mitola in 1999 mitola’s...

23
1 CIS 632 / EEC 687 Mobile Computing MC Platform #4 – USRP & GNU Radio Chansu Yu

Upload: others

Post on 22-Mar-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters

1

CIS 632 / EEC 687Mobile Computing

MC Platform #4 – USRP & GNU Radio

Chansu Yu

Page 2: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters

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

Page 3: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters

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

Page 4: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters

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

Page 5: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters

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

Page 6: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters

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

Page 7: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters

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/

Page 8: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters

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/

Page 9: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters

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/

Page 10: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters

Basics: Flow Graph

Blocks composed as a flow graph

Data stream flowing from sources to sinks

http://zoo.cs.yale.edu/classes/cs434/

Page 11: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters

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

Page 12: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters
Page 13: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters

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.

Page 14: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters

USRP – RF Front-end

Page 15: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters

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)

Page 16: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters

USRP

Page 17: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters

USRP Motherboard

Page 18: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters
Page 19: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters

USRP Daughter-boards

LFTX

LFRX RFX2400

Page 20: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters

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

Page 21: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters

21

Page 22: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters

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.

Page 23: CIS 632 / EEC 687 Mobile Computing · 3 Cognitive Radio Term coined by Mitola in 1999 Mitola’s definition: Software radio that is aware of its environment and its capabilities Alters

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.