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

Post on 22-Mar-2020

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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