II. LAB. * Open the LabVIEW program (Start > All Programs > National Instruments > LabVIEW 2012 > LabVIEW 2012)

Similar documents
Faculty of Information Engineering & Technology. The Communications Department. Course: Advanced Communication Lab [COMM 1005] Lab 6.

NI USRP Lab: DQPSK Transceiver Design

LabVIEW Basics Peter Avitabile,Jeffrey Hodgkins Mechanical Engineering Department University of Massachusetts Lowell

Lab 1B LabVIEW Filter Signal

LAB II. INTRODUCTION TO LABVIEW

Getting Started Guide

Getting Started Guide

EKT 314/4 LABORATORIES SHEET

Lab 12 Laboratory 12 Data Acquisition Required Special Equipment: 12.1 Objectives 12.2 Introduction 12.3 A/D basics

LabVIEW 8" Student Edition

IVI STEP TYPES. Contents

Advanced Lab LAB 6: Signal Acquisition & Spectrum Analysis Using VirtualBench DSA Equipment: Objectives:

EECS 307: Lab Handout 2 (FALL 2012)

Getting Started Guide

Quadrature Amplitude Modulation (QAM) Experiments Using the National Instruments PXI-based Vector Signal Analyzer *

PHYC 500: Introduction to LabView. Exercise 9 (v 1.1) Spectral content of waveforms. M.P. Hasselbeck, University of New Mexico

LAB #7: Digital Signal Processing

Laboratory Experiment #1 Introduction to Spectral Analysis

Fig. 1. NI Elvis System

ENSC327 Communication Systems Fall 2011 Assignment #1 Due Wednesday, Sept. 28, 4:00 pm

Auntie Spark s Guide to creating a Data Collection VI

Exploring QAM using LabView Simulation *

Report Due: 21:00, 3/17, 2017

Memorial University of Newfoundland Faculty of Engineering and Applied Science. Lab Manual

Exercise 4. Angle Tracking Techniques EXERCISE OBJECTIVE

MultiSim and Analog Discovery 2 Manual

Simulation of Analog Modulation and Demodulation Techniques in Virtual Instrumentation and Remote Lab

Lab 15: Lock in amplifier (Version 1.4)

Getting Started Guide

MEC751 Measurement Lab 2 Instrumented Cantilever Beam

IX Feb Operation Guide. Sequence Creation and Control Software SD011-PCR-LE. Wavy for PCR-LE. Ver. 5.5x

Experiment Guide: RC/RLC Filters and LabVIEW

PXIe Contents CALIBRATION PROCEDURE. Reconfigurable 6 GHz RF Vector Signal Transceiver with 200 MHz Bandwidth

Faculty of Electrical & Electronics Engineering BEE4233 Antenna and Propagation. LAB 1: Introduction to Antenna Measurement

SpinCore RadioProcessor LabVIEW Extensions

EKT 314/4 LABORATORIES SHEET

EECS 216 Winter 2008 Lab 2: FM Detector Part II: In-Lab & Post-Lab Assignment

About the DSR Dropout, Surge, Ripple Simulator and AC/DC Voltage Source

Experiment 8: An AC Circuit

I-Q transmission. Lecture 17

Gentec-EO USA. T-RAD-USB Users Manual. T-Rad-USB Operating Instructions /15/2010 Page 1 of 24

Development of 4/16-Channel Data Acquisition System Using Lab VIEW

QUICK START GUIDE FOR PSCOPE AC DATA COLLECTION AND ANALYSIS SOFTWARE DESCRIPTION

Pre-Lab. Introduction

MASSACHUSETTS INSTITUTE OF TECHNOLOGY /6.071 Introduction to Electronics, Signals and Measurement Spring 2006

P a g e 1 ST985. TDR Cable Analyzer Instruction Manual. Analog Arts Inc.

Getting Started Guide

Dept. of Electrical, Computer and Biomedical Engineering. Inverting and non inverting amplifier

Reconfigurable 6 GHz RF Vector Signal Transceiver with 1 GHz Bandwidth

Modulation is the process of impressing a low-frequency information signal (baseband signal) onto a higher frequency carrier signal

Spectral Monitoring/ SigInt

Exercise 2: Demodulation (Quadrature Detector)

LabVIEW Day 2: Other loops, Other graphs

Operation Guide: Using the 86100C DCA-J Jitter Spectrum and Phase Noise Application Revision 1.0

4 Experiment 4: DC Motor Voltage to Speed Transfer Function Estimation by Step Response and Frequency Response (Part 2)

Lab 3: Introduction to Software Defined Radio and GNU Radio

USRP 2901 Based FM Transceiver with Large File Capabilities in Virtual and Remote Laboratory

MicroLab 500-series Getting Started

EE 4440 Comm Theory Lab 5 Line Codes

ni.com Mounzer saleh Applications engineer Tel:

Experiment 2: Electronic Enhancement of S/N and Boxcar Filtering

DC and AC Circuits. Objective. Theory. 1. Direct Current (DC) R-C Circuit

Transceiver Architectures (III)

Lab 3.0. Pulse Shaping and Rayleigh Channel. Faculty of Information Engineering & Technology. The Communications Department

Announcements : Wireless Networks Lecture 3: Physical Layer. Bird s Eye View. Outline. Page 1

LAB Week 7: Data Acquisition

AirScope Spectrum Analyzer User s Manual

8A. ANALYSIS OF COMPLEX SOUNDS. Amplitude, loudness, and decibels

PGT313 Digital Communication Technology. Lab 3. Quadrature Phase Shift Keying (QPSK) and 8-Phase Shift Keying (8-PSK)

RLC Software User s Manual

SAE Formula Car Data Acquisition & Display System. Joseph Groe, Michelle Ohlson, & Miles Homler Advisor: Professor Gutschlag

ME 365 EXPERIMENT 8 FREQUENCY ANALYSIS

Magnitude and Phase Measurements. Analog Discovery

PXIe Contents. Required Software CALIBRATION PROCEDURE

NI 272x Help. Related Documentation. NI 272x Hardware Fundamentals

Week 8 AM Modulation and the AM Receiver

Time-Varying Signals

EEL 4350 Principles of Communication Project 2 Due Tuesday, February 10 at the Beginning of Class

Radar Echo Generator Application Note

Contents CALIBRATION PROCEDURE NI PXI-5404

Mobile Computing GNU Radio Laboratory1: Basic test

Frequency and Time Domain Representation of Sinusoidal Signals

UNIT-2 Angle Modulation System

MAKING TRANSIENT ANTENNA MEASUREMENTS

EE 210 Lab Exercise #3 Introduction to PSPICE

Lab 2: Digital Modulations

Lab 2: Introduction to Real Time Workshop

Contents. CALIBRATION PROCEDURE NI 5421/ MS/s Arbitrary Waveform Generator

Laboratory Preliminaries and Data Acquisition Using LabVIEW


Frequency Agility and Barrage Noise Jamming

Introduction to Communication Systems Using National Instruments Universal Software Peripheral Radio Lab Manual

Lab 4: Using the CODEC

Physics 472, Graduate Laboratory DAQ with Matlab. Overview of data acquisition (DAQ) with GPIB

Lab 3: AC Low pass filters (version 1.3)

Wireless Communication Systems Laboratory Lab #3: Introduction to wireless front-end

Massachusetts Institute of Technology Dept. of Electrical Engineering and Computer Science Fall Semester, Introduction to EECS 2

Introduction to Simulink Assignment Companion Document

Analog Discovery Arbitrary Function Generator for Windows 7 by Mr. David Fritz and Ms. Ellen Robertson

Antenna and Propagation

Transcription:

II. LAB Software Required: NI LabVIEW 2012, NI LabVIEW 4.3 Modulation Toolkit. Functions and VI (Virtual Instrument) from the LabVIEW software to be used in this lab: niusrp Open Tx Session (VI), niusrp Configure Signal (VI), niusrp Write Tx Data (poly) (VI), niusrp Close Session (VI), While Loop (Function), Initialize Array (Function), niusrp Open Rx Session (VI), niusrp Write Rx Data (poly) (VI), and Waveform Graph (Function). PART-1: TRANSMITTER INPUTS: Device names (IVI session of class niusrp), IQ rate (double [64-bit real (~15 digit precision)]), carrier frequency (double [64-bit real (~15 digit precision)]), gain (double [64-bit real (~15 digit precision)]), dimension size (long [32-bit integer (-2147483648 to 2147483647)]), and active antenna (string). PROCEDURE In this part, we develop a LabVIEW virtual instrument to transmit a non-modulated carrier cos(2 π ft) of carrier frequency f c (e.g., 2.5 GHz) using USRP N210 as the transmitter. This c corresponds to sending a constant baseband signal x(t)=1. Specifically, the VI generates a constant baseband signal x(t) =1. This signal, as explained before (link), is up-converted by the URSP and transmitted. We now detail the construction of the VI at hand in Lab View: a) Setup * Open the LabVIEW program (Start > All Programs > National Instruments > LabVIEW 2012 > LabVIEW 2012) * Create a blank VI (from the LabVIEW welcome screen click Create Project, select Blank VI from the list and click Finish (If you already have an open VI, follow File > New VI). * A blank front panel and block diagram opens. * If you want to re-open the block diagram follow (Window > Show Block Diagram (OR Ctrl+E)). * Enable Functions Palette (View > Functions Palette). b) Open a transmission session: * Work on the block diagram: Place a niusrp Open Tx Session.vi (Functions Palette >

Instrument I/O > Instr Drivers > NI-USRP > Tx > niusrp Open Tx Session.vi). This function opens a session on transmitting USRP using the IP number we provide and establish a handshake between PC and USRP. c) Configure signal parameters: * Place a niusrp Configure Signal.vi (Functions Palette > Instrument I/O > Instr Drivers > NI- USRP > Tx > niusrp Configure Signal.vi). This function allows us to configure parameters of the signal to be transmitted, such as IQ rate, carrier frequency, and gain. We also need to define the antenna we are using for transmitting using this function. * Place a niusrp Write Tx Data (poly).vi (Functions Palette > Instrument I/O > Instr Drivers > NI- USRP > Tx > niusrp Write Tx Data (poly).vi). Data input of this function accepts complex, double-precision floating-point values whose real and imaginary components range from 1.0 to 1.0. The maximum complex magnitude is 1.0. The following equation is used to determine the complex magnitude of the signal: 2 2 Complex magnitude = Re + Im (1.1) Where, Re is the real part and Im is the imaginary part of the magnitude. This function transfers the configuration details and transmits signal parameters to the specified USRP unit. We discuss the reason why we need to consider complex numbers in the next labs. * Pull down the arrow on niusrp Write TX Data (poly) VI and select Complex Double (CDB). This function writes complex, double-precision floating-point data to the specified channel when CDB is selected. d) Construct a constant baseband signal x(t)=1: * Place an Initialize Array function (Functions Palette > Programming > Array > Initialize Array). This function creates an n-dimensional array in which every element is initialized to the value of the element terminal. * Create a constant for element terminal of Initialize Array and set its value to 1. This ensures that every element of initialize array function has the value 1. * Create a control for Dimension Size terminal of Initialize Array. This allows us to control the dimension of the initialize array, hence the size of the transmitted signal. * Connect initialized array output of Initialize array function to the data input of niusrp Write Tx Data (poly).vi function in order to introduce the signal to be transmitted to the USRP.

* Place a niusrp Close Session.vi (Functions Palette > Instrument I/O > Instr Drivers > NI-USRP > Tx > niusrp Close Session.vi). This function stops the transmission when requested by the user. * At this point the Front Panel should be empty. * We can create controls, constants, or indicators at function terminals. Controls allow us to enter an input value to the selected input terminal, while indicators are for displaying the value of output terminals. Constants, as the name suggests, feed the input terminal with a constant value. * To create a control or indicator, move the mouse pointer over the VI box terminal you are interested in, then follow this path: Right click > Create > Control (or Indicator). * Create a control for device name terminal of niusrp Open Tx Session.vi. This control allows us to enter USRP IP number in order to connect our software to the hardware. Starting from this step, controls and indicators start appearing on the front panel as you create them. * Create controls for IQ Rate, Carrier frequency, Gain and Active Antenna terminals of niusrp Configure Signal.vi. These controls allow us to assign desired settings to the specified parameters. * Coerced IQ rate returns the actual I/Q rate, in samples per second (S/s), for this session, coerced to a value supported by the device. Coerced carrier frequency returns the actual carrier frequency, in Hz, for this session, coerced to a value supported by the device. Coerced gain returns the actual gain, in db, for this session, coerced to a value supported by the device. * Create indicators for coerced IQ rate, coerced carrier frequency and coerced gain terminals of niusrp Configure Signal.vi. * Drag a While Loop function (Functions Palette > Programming > Structures > While Loop) and enclose niusrp Write Tx Data (poly).vi with it. * While loop repeats the subdiagram inside it until the conditional terminal, named Loop Condition, receives a particular Boolean value (TRUE or FALSE). From the right-click shortcut menu, we can create a constant, control, or indicator to this terminal also we can select one of two following options: Stop if true and continue if true. The Boolean value depends on the continuation behavior of the While Loop. It always executes at least once. e) Necessary connections * Create a stop button for the While Loop condition terminal (Right click on the terminal > Create > Control) and connect the stop button to the end of Data? input of niusrp Write TX

Data (poly) VI. We do this step to ensure that our transmission ends when our data ends, so we are not going to go into an infinite loop. * Create an indicator for error out terminal of niusrp Close Session.vi. This allows us to view execution errors when any. At the end, your block diagram should look like the one below in Fig. 1 and your front panel should look like the one in Fig. 2: Fig. 1 Complete block diagram

Fig. 2 Complete front panel For visual reference, check this video out (note to Gil: please add your video here): See the video: How to build Sine wave generator.vi * In order to check if your file has errors click on Operate > Run (OR Ctrl+R). If no error window is generated, then your file is good. * SAVE it AS a new file by adding your name at the end (example: if your name is John, then the new file name is Lab2_Tx_John.vi ). PART-2: RECEIVER INPUTS: Device names (IVI session of class niusrp), IQ rate (double [64-bit real (~15 digit precision)]), carrier frequency (double [64-bit real (~15 digit precision)]), gain (double [64-bit

real (~15 digit precision)]), number of samples (quad [64-bit integer (approx -1e19 to +1e19)]), and active antenna (string). OUTPUTS: Waveform graph and waveform graph 2. PROCEDURE In this part, we develop a LabVIEW virtual instrument to receive the signal we transmitted in Part 1 using a USRP N210 as the receiver. We focus on visualizing the received signal in both time and frequency domains. The procedure is also useful in the following labs for receiving more general signals. We now detail the construction of the VI at hand in Lab View: a) Setup * Open the LabVIEW program (Start > All Programs > National Instruments > LabVIEW 2012 > LabVIEW 2012) * Create a blank VI (from the LabVIEW welcome screen click Create Project, select Blank VI from the list and click Finish (If you already have an open VI, follow File > New VI). * A blank front panel and block diagram opens. * If you want to re-open the block diagram follow (Window > Show Block Diagram (OR Ctrl+E)). * Enable Functions Palette (View > Functions Palette). b) Start acquiring signal: * Work on the block diagram: Place a niusrp Open Rx Session.vi (Functions Palette > Instrument I/O > Instr Drivers > NI-USRP > Rx > niusrp Open Tx Session.vi). This function opens a session on receiving USRP using the IP number we provide and establish a handshake between PC and USRP. * Connect session handle out terminal of niusrp Open RX Session.vi to session handle terminal of niusrp Configure Signal.vi in order to maintain signal continuity. * Connect error out terminal of niusrp Open RX Session.vi to error in (no error) terminal of niusrp Configure Signal.vi to transfer any error messages generated to the next block so that they can be displayed at the end. * Place a niusrp Configure Signal.vi (Functions Palette > Instrument I/O > Instr Drivers > NI- USRP > Rx > niusrp Configure Signal.vi). This function allows us to configure parameters of the

signal to be received, such as IQ rate, carrier frequency, and gain. We also need to define the antenna we are using for receiving using this function. * Connect session handle out terminal of niusrp Configure Signal.vi to session handle terminal of niusrp Initiate.vi * Connect error out terminal of niusrp Configure Signal.vi to error in (no error) terminal of niusrp Initiate.vi * Place a niusrp Initiate.vi (Functions Palette > Instrument I/O > Instr Drivers > NI-USRP > Rx > niusrp Initiate.vi). This function starts the waveform acquisition in a receiving (Rx) session. We must initiate the Rx session before we use the next function (niusrp Fetch Rx Data (poly).vi) in order to retrieve waveform data. Please note that we did not need to initiate the Tx session for transmission. In Tx case only using niusrp Write Tx Data (poly).vi is enough to start the session. c) Get data (samples) from channel: * Place a niusrp Fetch Rx Data (poly).vi (Functions Palette > Instrument I/O > Instr Drivers > NI- USRP > Rx > niusrp Fetch Rx Data.vi). This function fetches data from the specified channel. Please note that we do not specify a channel list in our experiment since we use a single receiving channel. * Pull down the arrow on niusrp Write Rx Data (poly) VI and select CDB cluster. This step allows us to fetch a cluster of complex, double-precision floating-point data from our receiving channel. These correspond to the received baseband signal. Following the discussion in the previous section (link), this is a real number for each sample. However, as it is explained in the next lab, the real number at hand is actually only the real part of a complex number comprising both real part, also known as in-phase component, and imaginary part, also known as quadrature component. * Reminder: To create a control or indicator, move the mouse pointer over the VI box terminal you are interested in, then use follow this path: Right click > Create > Control (or Indicator). * Create a control for device name terminal of niusrp Open Rx Session.vi. This control allows us to enter USRP IP number in order to connect our software to the hardware. Starting from this step, controls and indicators start appearing on the front panel as you create them. * Create controls for IQ Rate, Carrier frequency, Gain and Active Antenna terminals of niusrp Configure Signal.vi. These controls allow us to assign desired settings to the specified parameters. * As we explained before in Part 1: Coerced IQ rate returns the actual I/Q rate, in samples per second (S/s), for this session, coerced to a value supported by the device.

Coerced carrier frequency returns the actual carrier frequency, in Hz, for this session, coerced to a value supported by the device. Coerced gain returns the actual gain, in db, for this session, coerced to a value supported by the device. * Create indicators for coerced IQ rate, coerced carrier frequency and coerced gain terminals of niusrp Configure Signal.vi. * Drag a While Loop function (Functions Palette > Programming > Structures > While Loop) and enclose niusrp Fetch Rx Data (poly).vi with it. * Place an OR gate inside the while loop (Functions Palette > Programming > Boolean). * Connect x input of the OR gate to any part of the connection between error out terminal of niusrp Fetch Rx Data (poly).vi and error in (no error) terminal of niusrp Abort.vi. Then unbundle this connection by name (Right click > Insert > Cluster > Unbundle By Name). This stops the program in case of an error. * Create a control for number of samples terminal of niusrp Fetch Rx Data (poly).vi. * Connect session handle out terminal of niusrp Initiate.vi to session handle terminal of niusrp Fetch Rx Data (poly).vi. * Connect error out terminal of niusrp Initiate.vi to error in (no error) terminal of niusrp Fetch Rx Data (poly).vi. d) Extract in-phase part (I) from data and plot: * We recall that the in-phase part corresponds to the baseband signal signal (please add link to equation in previous part). Now go to the front panel (Ctrl+E) and place one Waveform Graph there for in-phase component of the received signal (Right click > Controls Palette > Express > Graph Indicators > Graph). Waveform graph function plots only single-valued functions, as in y = f(x), with points evenly distributed along the x-axis, such as received time-varying waveforms. * Go back to block diagram (Ctrl+E) and find waveform graph symbol you have just placed on the front panel. Move it inside the while loop. * Place an MT Get Complex IQ.vi inside the while loop (Functions Palette > RF Communications > Modulation > Analog > Utilities > MT Get Complex IQ.vi) and connect its CE Component terminal to the input of the waveform graph symbol. This function extracts the desired component from the IQ (complex) in parameter. I, Q, magnitude, and phase data are available for extraction. CE component returns the complex envelope data component selected in the component choice parameter.

* Create a constant for MT Get Complex IQ.vi component choice terminal. * Click on the arrow next to the constant and set it to I. This allows MT Get Complex IQ.vi to extract the I data and waveform graph to view the same in time domain. e) Extract quadrature part (Q) from data and plot: * The quadrature part corresponds to the imaginary part of each received baseband sample, which is fully discussed in the next lab. To visualize it, again, go to the front panel (Ctrl+E) and place another Waveform Graph there for quadrature component of the received signal (Right click > Controls Palette > Express > Graph Indicators > Graph). * Go back to block diagram (Ctrl+E) and find waveform graph symbol you have just placed on the front panel. Move it inside the while loop. * Place an MT Get Complex IQ.vi inside the while loop (Functions Palette > RF Communications > Modulation > Analog > Utilities > MT Get Complex IQ.vi) and connect its CE Component terminal to the input of the waveform graph 2 symbol. * Create a constant for MT Get Complex IQ.vi component choice terminal. * Click on the arrow next to the constant and set it to Q. This allows MT Get Complex IQ.vi to extract the Q data and waveform graph 2 to view the same in time domain. * Connect IQ data (complex) in terminals of both MT Get Complex IQ.vi to each other. Then connect this wire to data terminal of niusrp Fetch Rx Data (poly).vi. This allows received data to be transferred from Rx unit to these functions. f) Stop acquiring signal: * Create a stop button for the While Loop condition terminal (Right click on the terminal > Create > Control) and connect the stop button to the y input of OR gate. We do this step to ensure that our receiving session ends either when we request it by clicking the stop button or there is an execution error. * Place a niusrp Abort.vi (Functions Palette > Instrument I/O > Instr Drivers > NI-USRP > Rx > niusrp Abort.vi). This function stops an acquisition previously started. If the acquisition aborts successfully, the driver transitions to the Done state. * Place a niusrp Close Session.vi (Functions Palette > Instrument I/O > Instr Drivers > NI-USRP > Rx > niusrp Close Session.vi). This function closes the session handle to the device. In other words, disconnects the software from the USRP hardware connected.

g) Necessary connections * Connect session handle out terminal of niusrp Fetch Rx Data (poly).vi to session handle terminal of niusrp Abort.vi. * Connect error out terminal of niusrp Fetch Rx Data (poly).vi to error in (no error) terminal of niusrp Abort.vi. * Connect session handle out terminal of niusrp Abort.vi to session handle terminal of niusrp Close Session.vi. * Connect error out terminal of niusrp Abort.vi to error in (no error) terminal of niusrp Close Session.vi. * Create an indicator for error out terminal of niusrp Close Session.vi. NOTE: When we construct a VI, we need to connect all session handle out terminals to session handle terminals of the following blocks until the last block, in order to maintain continuity. Likewise, we need to connect all error out terminals to error in (no error) terminals of the following blocks until the last block, in order to display and diagnose when an error occurs. At the end, your block diagram should look like the one below in Fig. 3 and your front panel should look like the one in Fig. 4: Fig. 3 Complete block diagram

Fig. 4 Complete front panel For visual reference, check this video out (note to Gil: please add your video here): See the video: How to build a basic receiver.vi * In order to check if your file has errors click on Operate > Run (OR Ctrl+R). If no error window is generated, then your file is good. * SAVE it AS a new file by adding your name at the end (example: if your name is John, then the new file name is Lab2_Rx_John.vi ).

PART-3: USRP OPERATION In this part we use our newly created transmitter and receiver VI files (on different computers) with the USRP boards. In order to operate using USRPs, please follow these steps: * Open LabVIEW program (Start > All Programs > National Instruments > LabVIEW 2012 > LabVIEW 2012). a) Transmitter setup * Open Lab2_Tx_<name>.vi file (Open Existing (OR Ctrl+O) > Select Lab2_Tx_<name>.vi > OK). * There is device name area on the front panel. Every USRP has an IP address since they are connected to computers via Ethernet port. In order to establish the connection between USRP and LabVIEW you need to enter the IP address assigned to the specific USRP in the device name field. * Follow this path to learn the IP address of each USRP (Start > All Programs > National Instruments > NI-USRP > NI-USRP Configuration Utility). But before using this program, make sure that your USRP power cable is plugged and Ethernet cable between PC and USRP is connected. * Set the following values on Tx front panel: LABEL VALUE USRP IP Address <IP> from NI-USRP configuration utility IQ rate (in HZ) 400k Carrier frequency (in HZ) 2.5G Gain (in db) 20 Dimension size 1000 Table 1 Transmitter settings * Click on Run Continuously button (two looping arrows). b) Receiver setup On another computer with a connected USRP:

* Open the LabVIEW program (Start > All Programs > National Instruments > LabVIEW 2012 > LabVIEW 2012). * Open Lab2_Rx_<name>.vi file (Open Existing (OR Ctrl+O) > Select Lab2_Rx_<name>.vi > OK). * Set the following values on Rx front panel: LABEL VALUE USRP IP Address <IP> from NI-USRP configuration utility IQ rate (in HZ) 400k Carrier frequency (in HZ) 2.5G Gain (in db) 20 Number of samples 10000 Table 2 Receiver settings * Click on Run Continuously button (two looping arrows). * Click on Run button (one arrow) if you would like to receive once and measure waveform parameters (You should use this feature while answering HW#1). * In order to display the frequency spectrum of the received signal, you need to add niusrp EX Spectral Monitoring (Interactive).vi to your receiver block diagram (Functions Palette > Select a VI > <Program Files>/National Instruments/LabVIEW 2012/examples/instr/niUSRP/ niusrp EX Spectral Monitoring (Interactive).vi). * Now, double click on its symbol to open the front panel, and set receiver parameters as you would set your receiver front panel. * Click on Run or Run continuously in order to observe the signal you are transmitting from Tx USRP (You should use this function while answering HW#2 and HW#3). Please note that you need to run transmitter VI first to observe a signal. Also note that, you need to add niusrp EX Spectral Monitoring (Interactive).vi after you are done with measurements on your receiver VI in order to avoid conflict and errors. For visual reference, check this video out: See the video: How to set a basic communication link c) Data collection Your Lab2_Rx (which you use to control the receiving USRP) window should look like the one in Fig. 5 below:

Fig. 5 Receiver window Detailed information on front panel objects can be found in Appendix-A of this document.

Once you start acquiring the signal, niusrp EX Spectral Monitoring (Interactive).vi front panel should look like the one in Fig. 6 below: Fig. 6 - niusrp EX Spectral Monitoring (Interactive).vi front panel On this front panel, top waveform graph shows I and Q parts of the acquired signal in time domain while bottom waveform graph shows the amplitude of the received signal in frequency domain. Bring up your transmitter and receiver front panels and perform the measurements shown on Fig 5 and 6 above.

The frequency offset is a measure of the difference between the transmitted carrier frequency and the actual received signal frequency, which occurs because of local oscillator frequency in the receiver stage. Evaluate the frequency offset between transmitter and receiver (recall that the frequency can be calculated as 1/Period) using the I-Q plots. Collect a screenshot of the front panel. Collect the screenshot of niusrp EX Spectral Monitoring (Interactive).vi front panel and calculate the Signal-to-Noise Ratio (SNR) of the received signal in a very small bandwidth (approximately 400 khz is fine) around the carrier frequency (Hint: SNR (linear) = (S/N) while SNR (db) = [S (db) N (db]). Set the Tx (and Rx) carrier frequency to 2.41 GHz and take a screenshot of the spectral monitoring front panel. All collected screenshots should be used for report preparation. PART-4: HOMEWORK QUESTIONS #1: Write a lab report describing the experiments and results you observed. Include in the report the images you collected in Part-3. #2: Explain what you saw on the receiver front panel when you set the carrier frequency to 2.41GHz. Explain the possible reason of your observation. PART-1: USRP OPERATION APPENDIX A On transmitter and receiver windows you can manipulate the following values: 1) Device name: Data type is IVI session of class niusrp. This area is to enter the IP address of the connected USRP. 2) IQ rate: Data type is double [64-bit real (~15 digit precision)]. This area is to enter the intended rate of the baseband I/Q data in samples per second (S/s). 3) Carrier frequency: Data type is double [64-bit real (~15 digit precision)]. This area is to enter the frequency of RF signal in Hertz (Hz). 4) Gain: Data type is double [64-bit real (~15 digit precision)]. This area is to enter the aggregate gain applied to the RF signal in decibel (db). 5) Active antenna: Data type is string. This area is to enter the antenna name to be used.

6) Dimension size (Transmitter only): Data type is long [32-bit integer (-2147483648 to 2147483647)]. This area is to enter the desired size of the bit sequence to be transmitted. 7) Number of samples (Receiver only): Data type is quad [64-bit integer (approx -1e19 to +1e19)]. This area is to enter the number of samples to fetch from the acquisition channel. Please note that the units of USRP Rx data output are Volts (p-p) for amplitude and seconds for time unless they are specifically manipulated. If you would like to add titles/units to your graph axes, you can follow this path: Right click on the Waveform graph window > Properties > (a new window pops-up) Scales tab > Name field. For visual reference, please see Fig. 7 below:

Fig. 7 Adding titles/units to wave graph axes In order to export the values of a graph or array on the simulation window, follow this path and pick the output format you need: Right click on the graph/array > Export > Export (clipboard/excel/simplified image). In order to copy the current value of an indicator, right click on the indicator while simulation is running and select Copy Data. This copies the current value as an image.