matlab lab manual.doc

28
Signals And Systems Lab Manual Name: _________________________________________ Reg. No:___________ Section: _________ Group: ______ University of Engineering & Technology, Taxila Prepared by: Checked by: Date:

Upload: ticpony

Post on 10-Jul-2016

260 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: matlab lab manual.doc

Signals And Systems

Lab Manual

Name: _________________________________________

Reg. No:___________ Section: _________ Group: ______

University of Engineering & Technology, Taxila

Prepared by: Checked by:Date:

Page 2: matlab lab manual.doc

Software Requirements

S.No.

Software Title Description

1 Matlab Computing mathematics laboratory

Table of Contents

Lab No. Lab Title Page

Lab # 1 Familiarize with the Matlab environment and running some basic Matlab commnds in Matlab

4

Lab # 2 Writing mathematical expressions and familiarizing with some more advanced matlab commands

8

Lab # 3 Understanding loops implementation in matlab 10

Lab # 4 Implementing complex algorithm in matlab using loops

11

Lab # 5 Implementing (1) Decibel (2) Taking input from the user (3) Root mean square (4) Harmonic mean (5) Selection sort

12

Lab # 6 Implementing Fourier transform in matlab 13Lab # 7 Verifying Fourier transform properties in matlab 14

Lab # 8 Convolution of two rectangular pulses 15Lab # 9 Convolution of any two arbitrary inputs 16

Lab # 10 Implementing Z-tranform in Matlab 17Lab # 11 Implementing Sampling in matlab 18

Lab # 12 Verfiying Nyguist theorem 19Lab # 13 Modulating a signal based on carrier frequency 20Lab # 14 Upsampling and downsampling of signal 21Lab # 15 Implementing a moving average filter 22Lab # 16 Implementing a moving average filter and plotting

the magnitude and phase of its fourier transform.23

Experiment # 1

Lab Title: Basic Matlab Tutorial

Page 3: matlab lab manual.doc

Learning Objectives:

Familiarize with the Matlab environment and running some basic Matlab commnds in Matlab

Equipment Required:

Matlab

Variables and ArraysThe functional unit of data in any Matlab program is array. An Array is a collection of data values organized into rows and columns and known by a single name. Arrays can be classified as either vectors or matrices. The term VECTOR is usually used to describe an array with only one dimension. While the term MATRIX is usually used to describe an array with two or more dimensions. Size of array is specified by the number of rows and the number of columns in the array, with the number of rows mentioned first. The total number of elements in the array will be the product of the number of rows and the number of columns. Try using these values:

[3.4][1.0 2.0 3.0][1.0; 2.0; 3.0][1, 2, 3; 4, 5, 6][1, 2, 3, 4, 5, 6][]

Not all the elements of an array need to be defined when it is created. If a specific array element is defined and onwe or more of the elements before it are not, then the earlier elements are automatically created and initialized to zero. For example, if c is not previously defined, the statement

C(2,3)=5Will produce matrix 0 0 0

0 0 5

Similarly the array d=[1 2]. Then the statementd(4)=4

will produce d=[1 2 0 4].

Initializing with shortcut expressionsMatlab provides a special shortcut notation for these circumstances using the COLON operator. The colon operator specifies a whole series of values by specifying the first vales in the series, the

Page 4: matlab lab manual.doc

stepping increment and then the last value in the series. The general form of a colon operator is

First: increment: last

For examplex=1:2:10

will generate x= 1 3 5 7 9Try using angles=(0.01:0.01:1.00)*pi;Transpose Operator(‘):This operator swaps the rows and columns of any array that it is applied to.For example try using:

F=[1:4]And F=[1:4]’

Initializing with Built-in functions: Try using these:

A=zeros(2)B=zeros(2,3)C=[1 2; 3 4]D=zeros(size(C))E=ones(3)Ones(3,1)Eye(3)Eye(3,2)Length(C) //Generate the longest dimension of the array.

Zeros can be used to create an all zero array of any desired size. If function has a single square array; it will generate a square array using the single argument as both the number of rows and columns. size function returns two values containing the number of rows and columns in an array.Initializing variables with keyboard input: Input function displays a prompt string in the command window and then waits for the user to type in a response. For example , consider the following statement:

My_val=input(‘enter an input value’);Multidimensioanl Array Matlab allows us to create arrays as many dimensions as necessary for any given problem. These arrays have one subscript for each dimension and an individual element in the array will be the product of the maximum value of each subscript. For example the following two statements create a 2X2X3 array C:

C(:,:,1)=[1 2 3; 4 5 6];C(:,:,2)=[7 8 9; 10 11 12];Whos C

Page 5: matlab lab manual.doc

SubArrays It is possible to select and use subsets of arrays as though they were separate arrays. To select a portion of array, just include a list of all of the elements to be selected in the parenthesis after the rray name. For example:

Arr1=[1.1 2.2 3.3 4.4 5.5] Try using Arr1(3)And Arr1([1 4])And also Arr1(1:2:5)

End Function:It is very useful for creating array subscripts. When used in an array subscript; end returns the highest value taken on by that subscript. For example. Suppose that array arr3 is defined as follows:

Arr3=[ 1 2 3 4 5 6 7 8];Then Arr1(5:end) would be the array [5 6 7 8] and array(end) would generate 8.The value returned by end is always the highest value of a given subscript. Is end appears in different subscripts, it can return different values within the same expression. For example, suppose that the 3X4 array Arr4 is defined as follows:

Arr4=[1 2 3 4; 5 6 7 8; 9 10 11 12];Then the expression

Arr4(2:end, 2:end)would return the array.(Try this one).

TASKSQuestion # 01: This M-file calculates and plot the function sin(x) for 0<=x<=6X=0:0.1:6;Y=sin(X);plot(X,Y);plot(X,Y)Question # 02: The following Matlab statement plot the function y(x)=2e-0.2x for the range 0<=x<=10

X=0:0.1:10;Y=2*exp(0.2*X);Plot(X,Y);

Question # 03: suppose that u=1 and v=3. Evaluate the following expressions using Matlab.

(a)4u/3v(b)2v-2/(u+v)2

(c) v3/v3-u3

(d)4/3 pi.v2

Question # 04:

Page 6: matlab lab manual.doc

(a)Generate a 6X6 Matrix.(b)Generate a 6X1 Matrix (c) Generate a 3X4 Matrix

Question # 05Answer the following questions for the array shown below.

1.1 0.0 2.1 -3.5 6.00.0 1.1 -6.6 2.8 3.41.1 0.1 0.3 -0.4 1.3-1.4 5.1 0.0 1.1 0.0

(a)what is the size of the array?(b)What is the value of the array(4,1)?(c) What is the size and value of array( : , 1 : 2 )?(d)What is the size and Value of the (array[1 3],end)?

Question # 06Are the following Matlab variable names legal or illegal? Why?(a)dog1(b)1dog(c) Do_you_know_the_way__to_lahore(d)_help

Question # 07Determine the size and contents of the follwings arrays. Note that the later arrays may depend on the definition of arrays defined earlier in this exercise(a)a=1:2:5(b)b=[a’ a’ a’](c) c=b(1:2:3,1:2:3);(d)d=a+b(2,:);(e)w=[zeros(1,3) ones(3,1)’ 3:5’](f) b([1 3],2 )=b([3 1],2);

Question # 08 Assume that the array is defined as follows; determine the contents of the following subarrays

1.1 0.0 2.1 3.5 6.0 0.0 1.1 6.6 2.8 3.42.1 0.1 0.3 0.4 1.31.4 5.1 0.0 1.1 0.0

(a)array(3,:)(b)array(:,3)(c) array(1:2:3,[3 3 4])

Page 7: matlab lab manual.doc

(d)array([1 1],:)

Experiment # 2

Lab Title: Basic Matlab Tutorial

Learning Objectives:

Writing mathematical expressions and familiarizing with some more advanced matlab commands

Equipment Required:

Matlab

Question # 01:

Page 8: matlab lab manual.doc

Assume that value has been initialized to 10pi and determine what is printed out by eah of the following statements:

(a)disp([‘value=’num2str(value)]);(b)disp([‘value=’int2str(value)]);(c) fprintf(‘value=%e\n’,value);(d)fprintf(‘value=%f\n’,value);(e)fprintf(‘value=%12.4f\n’,value);

Question # 02:Evaluate the following expressions

(a) 11/5+6(b) (11/5)+6(c) 11/(5+6)(d) 3^2^3(e) (3^2)^3(f) 3^(2^3)(g) round(-11/5)+6(h) ceil(-11/5)+6(i) floor(-11/5)+6

Question # 03:Evaluate the following Matlab expressions(a)5.5>=5(b)20>20(c) xor(17-pi<15,pi<3)(d)true>false(e)~~(35/17)==(35/17)(f) (17<=8)==(3/2==1)(g)17.5&&(3.3>2.)

Question # 04:The following statements are intended to alert a user to dangerously high oral thermometer readings(values are in degree Farenheit ). Are they correct or incorrect? If they are incorrect, why and correct them

if temp<97.5disp(‘Temperature below normal’)elseif temp>97.5disp(‘temperature normal’)elseif temp>99.5disp(‘temperature slightly high)elseif temp>103.0disp(‘temperature dangerously high’)end

Page 9: matlab lab manual.doc

Question # 05:The cost of sending a packet by an express delivery service is $12.00 for the first two pounds and $4.50 for each pound or fraction thereof over two pounds. If the package weighs more than 70 pounds, a $ 15.00 excess weight surcharge is added to cost. No package over 100 pounds will be accepted. Write a program that accepts the weight of a package in pounds and computes the cost of mailing the package. Be sure to handle the case of overweight packages.

Question # 06:Implement the following function f(x,y) as follows:X+Y for X>=0 and Y>=0X+Y2 for X>=0 and Y<0X2 + Y for X<0 and Y>=0X2+Y2 for X<0 and Y<0

Question # 07:Try these built-in functions in MatlabAbs(x)Acos(x)Asin(x)Atan(x)Atan2(y,x)Ceil(x)Fix(x)Floor(x)Round(x)Char(x)

Experiment # 3

Lab Title: Basic Matlab Tutorial

Learning Objectives:

Understanding loops implementation in matlab

Equipment Required:

Matlab

Question # 01:Implement unit impulse function in Matlab

Question # 02:

Page 10: matlab lab manual.doc

Implement Unit step function in matlab

Question # 03:Classify signal as even or odd in Matlab

Experiment # 4

Lab Title: Basic Matlab Tutorial

Learning Objectives:

Implementing complex algorithms in matlab using loops

Equipment Required:

Matlab

Question # 01:Calculate factorial of a numberQuestion # 02:Implement the equation y(x)=x2-3x+2 for all the values of x between -1 and 3 with the increment of 0.1.Question # 03:Take a signal and scale it.

Page 11: matlab lab manual.doc

Experiment # 5

Lab Title: Basic Matlab Tutorial

Learning Objectives:

Implementing (1) Decibel (2) Taking input from the user (3) Root mean square (4) Harmonic mean (5) Selection sort

Equipment Required:

Matlab

Question # 01:Engineers often measure the ratio of two power measurements in decibels or dB. The equation for the ratio of two power measurements in decibel is dB=10log10p2/p1where p2 is the power level being measured and P1 is some reference power level. Assume that the reference power level P1 is 1 Watt and write a program that calculates the decibel level corresponding to power levels between 1 and 20 watts in increment of 02 Watt steps. Plot the dB-versus-power level on a log-linear scale.

Page 12: matlab lab manual.doc

Question # 02:Write a matlab program that will accept an arbitrary number of possible input values and calculate both the arithmetic mean and geometric mean of the numbers. Use a While loop to get the input values and terminate the inputs when the user inputs a negative value. Question # 03:Write a matlab program that will accept an arbitrary number of inputs and caluculate the rms average of the numbers. Propmpt the user for the number of values to be entered and use a FOR loop to read in the numbers. Question # 04:Write a matlab program that will read an arbitrary number of possible input values and caluculate the harmonic mean of the numbers. Use any method you desire to read in the input values. Question # 05:Write a matlab program for the selection sort. The program should accept 5 input values and sort them according to the criteriaQuestion # 06:Modify the selection sort so that it accepts a second parameter which may be “UP” or “DOWN” . if the input argement is UP, sort the values in ascending order. If the argument is “DOWN” , sort the values in descending order. If the argument is missing, the default case is to sort the values in ascending order. (Be sure to handle the case of invalid arguments, and be sure to include the proper help information in your functon)

Experiment # 6

Lab Title: Basic Matlab Tutorial

Learning Objectives:

Implementing Fourier transform in matlab

Equipment Required:

Matlab

Question # 01:Look for the Matlab commands fftIfftConvQuestion # 02:

Page 13: matlab lab manual.doc

Generate a signal as sum of two sinusoidal of frequency f1=400Hz and f2=800Hz.Use fft to find the Fourier transform.Question # 03:Calculate Fourier transform of e^-at u(t).Plot original signal, magnitude and phase of its Fourier transform and verify it from text book example#4.1 Question # 04:Convolve the signals x1(t)=e^at and x2(t)=sint for 100 samples. Verify that “convolution in time domain equals multiplication in frequency domain.” Question # 05:Prove that FT of sinc is gate & ifft of gate is sinc.

Experiment # 7

Lab Title: Basic Matlab Tutorial

Learning Objectives:

Verifying fourier transform properties.

Equipment Required:

Matlab

Question # 01:Verify following fourier transform properties in matlabLinearity: a . x[n] + b . y[n] a. X + b.YShifting: x[n-nd] exp(-jwnd)XInverting: x[-n] X(exp(-jw))

Compute the LHS and take its Fourier Transform. Compute the RHS.

Page 14: matlab lab manual.doc

Compare the two: both results should be equal.

Experiment # 8

Lab Title: Basic Matlab Tutorial

Learning Objectives:

Convolution

Equipment Required:

Matlab

Question # 01:Convolution of any two rectangular pulses

Page 15: matlab lab manual.doc

Experiment # 9

Lab Title: Basic Matlab Tutorial

Learning Objectives:

Generalized Convolution

Equipment Required:

Matlab

Question # 01:Make your own convolution code; perform convolution of two rectangular pulses; show the step by step procedure (via flip and drag) of convolution; compare your results with the built in Convolution command.

Page 16: matlab lab manual.doc

Experiment # 10

Lab Title: Basic Matlab Tutorial

Learning Objectives:

Implementing Z-Tranform in matlab

Equipment Required:

Matlab

Question # 01:Find the Z-transform of

(1) Impulse(2) Unit step(3) Delayed impulse by one unit to the right(4) Delayed Unit step by one unit to the right(5) anU(n)(6) Sin wn(7) Coswn

Question # 02:Find the inverse Z-transform of all the answers collected from question # 01 and verify the answer that what you got in question 1 was right

Page 17: matlab lab manual.doc

Question # 03:Take any two vectors and find their roots

Question # 04:Display the pole-zero plot of A=[0 1 1]B=[1 -2 3]

Question # 05:Try to make your own matlab code for the Z-transform; (Bonus marks)

Experiment # 11

Lab Title: Basic Matlab Tutorial

Learning Objectives:

Implementing sampling in matlab

Equipment Required:

Matlab

Question # 01:Create a signal x(t)=coswo(t). Generate the impulse train p(t) and sample the signal using x(t)=x(t)p(t). Plot observed samples in Time Domain.

Question # 02:Now Plot spectra of x(t) & p(t) and convolve both spectras. Also obtain spectra of sampled signal from question 1.

Question # 03:Study Aliasing from question 2. Consider the following frequencies for Sampling. a)f0=fs/2 b)f0=3/2fs

Page 18: matlab lab manual.doc

Experiment # 12

Lab Title: Basic Matlab Tutorial

Learning Objectives:

Verifying nyguist theorm

Equipment Required:

Matlab

Question # 01:With reference to the previous lab; Take any arbitrary signal; sample it; Verify nyguist theorem.

Page 19: matlab lab manual.doc

Experiment # 13

Lab Title: Basic Matlab Tutorial

Learning Objectives:

Modulating a signal based on carrier frequency

Equipment Required:

Matlab

Question # 01:The experiment implements a gui-based tutorial of the effect of multiplying a cosine with a carrier frequency ‘fc’ with a given signal. And the effect are monitored both in time and frequency domain.The parameters that the gui would take:‘fc’: the carrier frequency‘fs’: the sampling frequency

The gui would show the input signal as sampledThe resulted signal after multiplication with the carrier frequency should be displayed.Display frequency spectrum of both the original signal and the modulated signal.

Page 20: matlab lab manual.doc

Experiment # 14

Lab Title: Basic Matlab Tutorial

Learning Objectives:

Upsampling and downsampling of signal

Equipment Required:

Multimedia

Question # 01:

Upsampling is the process of increasing the sampling rate of a signal. The upsampled signal satisfies the Nyquist-Shannon sampling theorem if the original signal does. Consider a discrete signal f(k) on a radian frequency digital frequency range. Let L denote the upsampling factor.

1. Add L-1 zeros between each sample in f(k). Or, equivalently define

2. Filter with a low-pass filter which, theoretically, should be the sinc filter with frequency cut off at pi/L.

Downsampling (or "subsampling") is the process of reducing the sampling rate of a signal. This is usually done to reduce the data rate or the size of the data.

Page 21: matlab lab manual.doc

If the sampling theorem is not satisfied then the resulting digital signal will have aliasing. To ensure that the sampling theorem is satisfied, a low-pass filter is used as an anti-aliasing filter to reduce the bandwidth of the signal before the signal is downsampled.

Let M denote the downsampling factor.

1. Filter the signal to ensure that the sampling theorem is satisfied. This filter should, theoretically, be the sinc filter with frequency cutoff at pi/M. Let the filtered signal be denoted g(k).

2. Reduce the data by picking out every Mth sample: h(k) = g(Mk). Data rate reduction occurs in this step.

Experiment # 15

Lab Title: Basic Matlab Tutorial

Learning Objectives:

Implementing a moving average filter

Equipment Required:

Multimedia

Question # 01:

Implement Moving average filter in matlab

Page 22: matlab lab manual.doc

Experiment # 16

Lab Title: Basic Matlab Tutorial

Learning Objectives:

Implementing a moving average filter and plotting the magnitude and phase of its fourier transform.

Equipment Required:

Multimedia

Question # 01:Implementing a moving average filter and plotting the magnitude and phase of its Fourier transform.