George Mason University Signals and Systems I Spring 2016

Similar documents
1-- Pre-Lab The Pre-Lab this first week is short and straightforward. Make sure that you read through the information below prior to coming to lab.

Lab P-1: Introduction to MATLAB. 3. Learn a little about advanced programming techniques for MATLAB, i.e., vectorization.

GEORGIA INSTITUTE OF TECHNOLOGY. SCHOOL of ELECTRICAL and COMPUTER ENGINEERING. ECE 2026 Summer 2018 Lab #0: Introduction to MATLAB

George Mason University ECE 201: Introduction to Signal Analysis Spring 2017

DSP First. Laboratory Exercise #1. Introduction to MATLAB

EE3210 Lab 1: Introduction to MATLAB

1 Introduction and Overview

How to learn MATLAB? Some predefined variables

LAB 1: Introduction to MATLAB Summer 2011

ECE 3793 Matlab Project 1

DSP First Lab 02: Introduction to Complex Exponentials

Laboratory 1 Introduction to MATLAB for Signals and Systems

Creates a 1 X 1 matrix (scalar) with a value of 1 in the column 1, row 1 position and prints the matrix aaa in the command window.

Colorado State University Department of Mechanical Engineering. MECH Laboratory Exercise #1 Introduction to MATLAB

EE3TP4: Signals and Systems Lab 1: Introduction to Matlab Tim Davidson Ext Objective. Report. Introduction to Matlab

EGR 111 Introduction to MATLAB

ELEN E3084: Signals and Systems Lab Lab II: Introduction to Matlab (Part II) and Elementary Signals

EE 301 Signals & Systems I MATLAB Tutorial with Questions

1 Introduction to Matlab

A/D Converter. Sampling. Figure 1.1: Block Diagram of a DSP System

A Guide to Using Some Basic MATLAB Functions

EE 301 Lab 1 Introduction to MATLAB

Class #15: Experiment Introduction to Matlab

PC-MATLAB PRIMER. This is intended as a guided tour through PCMATLAB. Type as you go and watch what happens.

Introduction to MATLAB

Lab 1 Introduction to MATLAB and Scripts

MATLAB BASICS. < Any system: Enter quit at Matlab prompt < PC/Windows: Close command window < To interrupt execution: Enter Ctrl-c.

Introduction to MATLAB LAB 1

University of Alberta

DSP Laboratory (EELE 4110) Lab#1 Introduction to Matlab

Introduction to MATLAB

UNIVERSITI TEKNIKAL MALAYSIA MELAKA FAKULTI KEJURUTERAAN ELEKTRONIK DAN KEJURUTERAAN KOMPUTER

A very brief Matlab introduction

EEE161 Applied Electromagnetics Laboratory 1

Finding, Starting and Using Matlab

The value of f(t) at t = 0 is the first element of the vector and is obtained by

MAT 275 Laboratory 1 Introduction to MATLAB

An Introduction to MATLAB II

Signals and Systems Profs. Byron Yu and Pulkit Grover Fall Homework 1

Basic Simulation Lab with MATLAB

Laboratory 1 Octave Tutorial

AMS 27L LAB #2 Winter 2009

INTRODUCTION TO MATLAB PLOTTING WITH MATLAB

Physics 251 Laboratory Introduction to Spreadsheets

Matlab Introduction. Scalar Variables and Arithmetic Operators

Introduction to MATLAB

Introduction to Octave/Matlab. Deployment of Telecommunication Infrastructures

INTRODUCTION TO MATLAB, SIMULINK, AND THE COMMUNICATION TOOLBOX

AN INTRODUCTION TO MATLAB

Matlab Tutorial. Get familiar with MATLAB by using tutorials and demos found in MATLAB. You can click Start MATLAB Demos to start the help screen.

A Brief Introduction to MATLAB

A Very Brief Introduction to Matlab

MATH (CRN 13695) Lab 1: Basics for Linear Algebra and Matlab

Chapter 2. MATLAB Fundamentals

STAT/MATH 395 A - PROBABILITY II UW Winter Quarter Matlab Tutorial

Grace days can not be used for this assignment

ARRAY VARIABLES (ROW VECTORS)

ELEC4042 Signal Processing 2 MATLAB Review (prepared by A/Prof Ambikairajah)

EE-3221 MATLAB INTRODUCTION

Introduction to MATLAB

Math 7 Elementary Linear Algebra PLOTS and ROTATIONS

Homework 1 Description CmpE 362 Spring Instructor : Fatih Alagoz Teaching Assistant : Yekta Said Can Due: 3 March, 23:59, sharp

Interactive Computing with Matlab. Gerald W. Recktenwald Department of Mechanical Engineering Portland State University

Introduction to MATLAB

Appendix A. Introduction to MATLAB. A.1 What Is MATLAB?

PowerPoints organized by Dr. Michael R. Gustafson II, Duke University

MATLAB Fundamentals. Berlin Chen Department of Computer Science & Information Engineering National Taiwan Normal University

Eric W. Hansen. The basic data type is a matrix This is the basic paradigm for computation with MATLAB, and the key to its power. Here s an example:

Introduction to MatLab. Introduction to MatLab K. Craig 1

2.0 MATLAB Fundamentals

MATLAB Tutorial EE351M DSP. Created: Thursday Jan 25, 2007 Rayyan Jaber. Modified by: Kitaek Bae. Outline

INTRODUCTION TO MATLAB

Getting Started. Chapter 1. How to Get Matlab. 1.1 Before We Begin Matlab to Accompany Lay s Linear Algebra Text

MATLAB Project: Getting Started with MATLAB

Dr Richard Greenaway

Page 1 of 7 E7 Spring 2009 Midterm I SID: UNIVERSITY OF CALIFORNIA, BERKELEY Department of Civil and Environmental Engineering. Practice Midterm 01

Problem Set 8: Complex Numbers

An Introduction to Matlab

Objectives. 1 Running, and Interface Layout. 2 Toolboxes, Documentation and Tutorials. 3 Basic Calculations. PS 12a Laboratory 1 Spring 2014

Unix Computer To open MATLAB on a Unix computer, click on K-Menu >> Caedm Local Apps >> MATLAB.

Matlab is a tool to make our life easier. Keep that in mind. The best way to learn Matlab is through examples, at the computer.

MATLAB Project: Getting Started with MATLAB

QUICK INTRODUCTION TO MATLAB PART I

This is a basic tutorial for the MATLAB program which is a high-performance language for technical computing for platforms:

MATLAB/Octave Tutorial

EE 1105 Pre-lab 3 MATLAB - the ins and outs

Matlab Tutorial 1: Working with variables, arrays, and plotting

Introduction to Matlab

MORE MATLAB. MATLAB variables

Introduction to Matlab to Accompany Linear Algebra. Douglas Hundley Department of Mathematics and Statistics Whitman College

Section 7.6 Graphs of the Sine and Cosine Functions

Math12 Pre-Calc Review - Trig

WINTER 2017 ECE 102 ENGINEERING COMPUTATION STANDARD HOMEWORK #3 ECE DEPARTMENT PORTLAND STATE UNIVERSITY

Getting Started with MATLAB

Practice Reading for Loops

Matlab notes Matlab is a matrix-based, high-performance language for technical computing It integrates computation, visualisation and programming usin

Lab 1 Intro to MATLAB and FreeMat

EE 350. Continuous-Time Linear Systems. Recitation 1. 1

LAB 2: DATA FILTERING AND NOISE REDUCTION

Introduction to Matlab

Transcription:

George Mason University Signals and Systems I Spring 2016 Laboratory Project #1 Assigned: January 25, 2016 Due Date: Laboratory Section on Week of February 15, 2016 Description: The purpose of this laboratory is to review properties of some basic continuous-time signals and to review how MATLAB can be used to visualize these signals. The exercises focus on sinusoids and sums of sinusoids. In addition to exploring properties of these signals, this lab will also provide the opportunity to review the use of script files and functions in MATLAB. Pre-Lab: You should read the Pre-Lab section of the lab and go over all exercises in this section before going to your assigned lab session. Warm-up: This part of the lab must be completed during your assigned Lab time, and the steps marked Instructor Verification must be signed off on the Instructor Verification line during the lab by your lab TA or Learning Assistant (LA). When you have completed a step that requires verification, simply raise your hand and demonstrate the step to the TA or LA. Turn in the completed verification sheet to your TA when you leave the lab. Lab Report: For your lab report, it is only necessary to turn in a write-up for the exercises given in Section 3. Information on the format of the lab report will be given during the first lab period, and instructions will also be posted on-line. Note that you are asked to label the axes of your plots and include a title for every plot. In order to keep track of plots, include your plot in-line within your report. If you do not know what is expected, ask your TA who will grade your report. Forgeries and plagiarism are a violation of the honor code and will be referred to the George Mason Honor Committee for disciplinary action. You are allowed to discuss lab exercises with other students and you are allowed to consult old lab reports but the submitted work should be original and it should be your own work. In particular, any MATLAB code that you submit should be your own, the words in your report should be your own, and any plots that you submit should be your own. 1 Prelab In this first week, the Pre-Lab will be extremely short and very easy. Make sure that you read through the information below prior to coming to lab. You may wish to read Section B.2 of your textbook, Introduction to Systems and Signals by Lathi. Also review your ECE 201 notes on MATLAB and review what you may have learned about writing script files and functions. 1.1 Overview MATLAB will be used extensively in all the labs. The primary goal of this pre-lab is to refresh your memory on how to use MATLAB, and to introduce you to scripts and vectorization. Here are three specific goals for this pre-lab: (a) Review basic MATLAB commands and syntax, including the help system. (b) Write and edit your own script files in MATLAB, and run them as commands. (c) Learn a little about advanced programming techniques for MATLAB, i.e., vectorization.

1.2 Getting Started Start MATLAB and perform the following exercises, as necessary, to help you with a review of MATLAB and its capabilities. Focus, in particular, in understanding and being comfortable with parts (e)-(g). (a) View the MATLAB introduction by typing intro at the MATLAB prompt. This short introduction will demonstrate some of the basics of using MATLAB. (b) Run the MATLAB help desk by typing helpdesk. The help desk provides a hypertext interface to the MATLAB documentation. Under the MATLAB FILE tab at the top you can set paths, which may be important, and you may want to look at what is configurable under MATLAB preferences. (c) Explore the MATLAB help capability available at the command line. Try the following: help help plot help colon help ops help zeros help ones lookfor filter %<--- a VERY IMPORTANT notation %<--- keyword search NOTE: It is possible to force MATLAB to display only one screen of information at a time with the command more on. (d) Run the MATLAB demos: type demo and explore the basic MATLAB commands and plots. (e) Use MATLAB as a calculator. Try the following: pi*pi - 10 sin(pi/4) ans ˆ 2 %<--- "ans" holds the last result (f) Do variable name assignment in MATLAB. Try the following: x = sin( pi/5 ); cos( pi/5 ) %<--- assigned to what? y = sqrt( 1 - x*x ) ans (g) Complex numbers are natural in MATLAB and all of the basic operations are supported. Try the following: z = 3 + 4i, w = -3 + 4j real(z), imag(z) abs([z,w]) %<-- Vector constructor conj(z+w) angle(z) exp( j*pi ) exp(j*[ pi/4, 0, -pi/4 ])

2 Warm-up 2.1 MATLAB Array Indexing (a) Make sure that you understand the colon notation. In particular, explain in words what the following MATLAB code will produce jkl = 0 : 6 jkl = 2 : 4 : 17 jkl = 99 : -1 : 88 ttt = 2 : (1/9) : 4 tpi = pi * [ 0:0.1:2 ]; (b) Extracting and/or inserting numbers in a vector is very easy to do. Consider the following definition of xx: xx = [ zeros(1,3), linspace(0,1,5), ones(1,4) ] xx(4:6) size(xx) length(xx) xx(2:2:length(xx)) Explain the results echoed from the last four lines of the above code. (c) Observe the result of the following assignments: yy = xx; yy(4:6) = pi*(1:3) Now write a statement that will take the vector xx defined in part (b) and replace the even indexed elements (i.e., xx(2), xx(4), etc) with π π. Use a vector replacement, not a loop. Instructor Verification (separate page) 2.2 MATLAB Script Files (a) Experiment with vectors in MATLAB. Think of the vector as a set of numbers. Try the following: xk = cos( pi*(0:11)/4 ) %<---comment: compute cosines Explain how the different values of cosine are stored in the vector xk. What is xk(1)? Is xk(0) defined? NOTES: The semicolon at the end of a statement will suppress the echo to the screen. The text following the % is a comment; it may be omitted. (b) (A taste of vectorization) Loops can be written in MATLAB, but they are NOT the most efficient way to get things done. It s better to always avoid loops and use the colon notation instead. The following code has a loop that computes values of the cosine function. (The index of yy() must start at 1.) Rewrite this computation without using the loop (follow the style in the previous part). yy = [ ]; %initialize the yy vector to be empty for k=-5:5 yy(k+6) = cos( k*pi/5 ) end yy Explain why it is necessary to write yy(k+6). What happens if you use yy(k) instead? Instructor Verification (separate page)

(c) Plotting is easy in MATLAB for both real and complex numbers. The basic plot command will plot a vector y versus a vector x. Try the following: x = [-3-1 0 1 3 ]; y = x.*x - 3*x; plot( x, y ) z = x + y*sqrt(-1) plot( z ) %complex values: plots imag vs. real Use help arith to learn how the operation xx.*xx works when xx is a vector. When unsure about a command, use help. (d) Use the built-in MATLAB editor or another one of your choice one to create a script file called mylab1.m that consists of the following set of lines: tt = -1 : 0.01 : 1; xx = cos( 5*pi*tt ); zz = 1.4*exp(j*pi/2)*exp(j*5*pi*tt); plot(tt,xx, b-,tt,real(zz), r-- ), grid on title( TEST PLOT of a SINUSOID ) xlabel( TIME (sec) ) %plot a sinusoid Explain why the plot of real(zz) is a sinusoid. What is its phase and amplitude? Make a calculation of the phase from a time-shift measured on the plot. Instructor Verification (separate page) (e) Run your script from MATLAB. To run the file mylab1 that you created in part (d), try mylab1 type mylab1 %run the commands in the file %type the file mylab1.m to the screen 3 Laboratory: Manipulating Sinusoids with MATLAB Now you re on your own. This is the part of the lab for which you will be writing your lab report. 3.1 Plotting Sinusoids Write a MATLAB script file to do steps (a) through (e) below. Include a listing of the script file with your report. Include a short description of what you did along with plots in your Lab report. Don t submit a set of plots with no explanations or documentation of what you did. (a) Generate a time vector tt corresponding to a range of values of t that will cover approximately two cycles of a 440 Hz sinusoid. Use a definition for tt similar to part 2.2(d). Using T to denote the period of the sinusoids, define the starting time of the vector tt to be equal to T, and the ending time as +T. With this construction, the two cycles of the sinusoid will include t = 0. Make sure that you have at least 25 samples per period of the sinusoidal wave. In other words, when you use the colon operator to define the time vector, make the increment small enough to generate 25 samples per period.

1 0.5 0 0.5 1 1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 x 10 3 1 0.5 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1 0.5 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Figure 1: Three panel plot using the subplot command. (b) Generate two 440 Hz sinusoids, x 1 (t) = A 1 cos(2π(440)(t t m1 )) ; x 2 (t) = A 2 cos(2π(440)(t t m2 )) where the values of the amplitudes and time-shifts are as follows: Let A 2 be equal to your age and set A 1 = 1.2A 2. For the time-shifts, set t m1 = (37.2/M)T and t m2 = 41.3/D)T where D and M are the day and month of your birthday, and T is the period. Make a plot of both signals over the range of T t T. For your final printed output in part (d) below, use subplot(3,1,1) to make a three panel plot, and in the first panel use the hold command to overlay x 1 (t) and x 2 (t) on the same plot. Your plot will have the same form as shown in Fig. 1 (it will not look the same because the two sinusoids in this plot are very different). The last two panels will be for plots generated in part (c) and (d). Make sure that your horizontal axis is in seconds, not an index n. See help on subplot and hold if you need more information on how to generate these plots, and how to add color or use different line styles. (c) Create a third sinusoid that is the sum x 3 (t) = x 1 (t) + x 2 (t) In MATLAB this amounts to summing the vectors that hold the values of each sinusoid. Make a plot of x 3 (t) over the same range of time as used in the plots of part (b). Include this as the second panel in the plot by using subplot(3,1,2). (d) Create a fourth sinusoid as the product x 4 (t) = x 1 (t)x 2 (t)

In MATLAB this amounts to a point by point multiplication of the vectors that hold the values of each sinusoid. Make a plot of x 4 (t) over the same range of time as used in the plots of part (b). Include this in the third panel in the plot by using subplot(3,1,3). (e) Before printing the three plots, put a title on each subplot, and include your name in one of the titles. See help title, help print and help orient, especially orient tall. 3.2 Theoretical Calculations Remember that the phase of a sinusoid can be calculated after measuring the time location of a positive peak, 1 if we know the frequency. (a) Make measurements of the time-location of a positive peak and the amplitude from the plots of x 1 (t) and x 2 (t), and write those values for A i and t mi directly on the plots. Then calculate (by hand) the phases of the two signals, x 1 (t) and x 2 (t), by converting each time-shift t mi to phase. Write the calculated phases φ i directly on the plots. You may do this with the legend command or by using a TextBox in the Insert drop-down menu in the MATLAB figure. Note: when doing computations, express phase angles in radians, not degrees! (b) Measure the amplitude and time-shift of x 3 (t) directly from the plot and then calculate the phase (φ 3 ) by hand. Write these values directly on the plot to show how the amplitude and time-shift were measured, and how the phase was calculated. (c) Now use the phasor addition theorem. Carry out a phasor addition of complex amplitudes for x 1 (t) and x 2 (t) to determine the complex amplitude for x 3 (t). Use the complex amplitude for x 3 (t) to verify that your previous calculations of A 3 and φ 3 were correct. 3.3 Complex Amplitude Write one line of MATLAB code that will generate values of the sinusoid x 1 (t) above by using the complex-amplitude representation: Use constants for X and ω. 3.4 Periodic signals x 1 (t) = Re{Xe jωt } It is possible to generate arbitrary periodic signals by adding a set of harmonically-related sinusoids together. In this part you will write a function to generate a periodic signal using the following formula: N r(t) = C n cos(nω 0 t + θ n ) n=0 For this section, assume that the coefficients required to implement this summation, i.e., ω 0, C n, θ n, are known. You will load these values manually or from a file. See below for more information about the variables in the file and for a few hints. - Note that the fundamental frequency ω 0 is a scalar quantity, whereas the coefficients C n and θ n are stored in vectors of length N + 1. You can determine the length of a vector using the length command in MATLAB. 1 Usually we say time-delay or time-shift instead of the time location of a positive peak.

- Remember that MATLAB indexes begin with, one not zero. Thus the C 0 coefficient is the first entry in the Cn vector, i.e., C 0 =Cn(1). - In the exercises below, you will be asked to generate a specific number of periods of the periodic signal. If you do not recall the relationship between the period and the fundamental frequency, see Section B.2 of the textbook. - In addition to the variables w0, Cn, and thetan, the other variable stored in the file is Tsample. This variable is the distance between time samples in the vector t you will define. In other words, you ll define t as follows: t=0:tsample:tmax, where tmax is some multiple of the period of the signal. (a) Write a MATLAB function called harmonic to generate the signal r(t). The inputs to this function should be the scalar w0, containing the fundamental frequency, the vectors Cn and thetan, and the maximum time tmax or, if you prefer, the number of periods, nper. The output of the function should be the vector r containing the signal r(t) sampled at the specified values of time t. Your function may use either a for loop or a matrix multiply to implement the summation. If you use a for loop, only one such loop should be necessary. (b) Use the following values for the inputs to your function harmonic: >> w0 = 2*pi*440; >> Tsample = 1/(50*440); >> Cn=[0 1]; >> thetan = [0 0]; to create a signal r1 of length tmax = 100*2*pi/w0 or, equivalently, nper = 100. Make a fully-labeled plot of the first four periods of r 1 (t) versus time t. Listen to the sound using the command >> soundsc(r1,1/tsample) and describe what the signal sounds like. (c) Download the file data contained in the file param.mat that contains parameters w0 and Tsample, and the pair of vectors Cn and thetan. This file is available from the same place that you found this lab assignment. Load these parameters into MATLAB by typing load param.mat, and use these parameters in harmonic to create 100 periods of signal, and store. the result in r2. Make a fully-labeled plot of the first four periods of r2 versus time, and listen to the sound using the command >> soundsc(r2,1/tsample) What does the signal sound like? (d) Replace the angles θ n stored in thetan that you used to generate r2, with a set of random angles using the command: >> thetan = 2*pi*(rand(length(r2),1)-1); Again use the function harmonic to generate 100 periods of a signal and store the result in r3. Make a fully-labeled plot of the first four periods of r3 versus time, and listen to the sound. How do the signals r2 and r3 compare to each other visually? Describe the differences that you hear in the two signals.

Note: you will use summations like this later in the term when we study Fourier series. Periodic signals occur in many applications. For example, they play an important role in communication systems. There are also numerous natural phenomena that can be represented by periodic signals, e.g. ocean tides, a person s heartbeat.

Lab #1 ECE-220 Spring-2016 INSTRUCTOR VERIFICATION SHEET Turn this page in to your TA. Name: Date of Lab: Part 2.1 Vector replacement using the colon operator: Verified: Date/Time: Part 2.2(b) Explain why it is necessary to write yy(k+6). What happens if you use yy(k) instead? Verified: Date/Time: Part 2.2(d) Explain why the plot of real(zz) is a sinusoid. What is its amplitude and phase? In the space below, make a calculation of the phase from time-shift. Verified: Date/Time: