0% found this document useful (0 votes)
60 views20 pages

Laboratory Exercise 1: Discrete-Time Signals: Time-Domain Representation

The document describes MATLAB programs and results from experiments with discrete-time signals, including unit sample sequences, exponential sequences, sinusoidal sequences, random signals, and signal smoothing. The programs generate various types of sequences and plot the results. Questions and answers are provided to explain the purpose of commands used in the programs and parameters controlling the sequences. Plots of sequences generated with different parameters are displayed and compared.

Uploaded by

why1076
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
60 views20 pages

Laboratory Exercise 1: Discrete-Time Signals: Time-Domain Representation

The document describes MATLAB programs and results from experiments with discrete-time signals, including unit sample sequences, exponential sequences, sinusoidal sequences, random signals, and signal smoothing. The programs generate various types of sequences and plot the results. Questions and answers are provided to explain the purpose of commands used in the programs and parameters controlling the sequences. Plots of sequences generated with different parameters are displayed and compared.

Uploaded by

why1076
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 20

1

Name: Nguyn Trng Phng 11141410


Section:
Laboratory Exercise 1
DISCRETE-TIME SIGNALS: TIME-DOMAIN REPRESENTATION

1.1 GENERATION OF SEQUENCES
Project 1.1 Unit sample and unit step sequences
A copy of Program P1_1 is given below:
% Program P1_1
% Generation of a Unit Sample Sequence
clf;
% Generate a vector from -10 to 20
n = -10:1:20;
% Generate the unit sample sequence
u = [zeros(1,10) 1 zeros(1,20)];
% Plot the unit sample sequence
stem(n,u);
xlabel('Time index n');ylabel('Amplitude');
title('Unit Sample Sequence');
axis([-10 20 0 1.2]);
Answers:
Q1.1 The unit sample sequence u[n] generated by running Program P1_1 is shown
below:

2
Q1.2 The purpose of clf command is clear current figure.
The purpose of axis command is control axis scaling and appearance.
The purpose of title command is adds graph title.
The purpose of xlabel command is adds X-axis label.
The purpose of ylabel command is adds X-axis label.
Q1.3 The modified Program P1_1 to generate a delayed unit sample sequence ud[n] with a delay of
11 samples is given below along with the sequence generated by running this program.

% Program P1_1
% Generation of a Unit Sample Sequence
clf;
% Generate a vector from -10 to 20
n=-10:20;
% Generate the unit sample sequence
ud = [zeros(1,21) 1 zeros(1,31-21-1)];
% Plot the unit sample sequence
stem(n,ud);
xlabel('Time index n');ylabel('Amplitude');
title('Unit Sample Sequence with a delay of 11 samples');
axis([-10 20 0 1.2]);


3

Q1.4 The modified Program P1_1 to generate a unit step sequence s[n] is given below along with
the sequence generated by running this program.
% Program P1_1
% Generation of a Unit Sample Sequence
clf;
% Generate a vector from 0 to 30
n=0:30;
% Generate the unit sample sequence
u=ones(31);
% Plot the unit sample sequence
stem(n,u);
xlabel('Time index n');ylabel('Amplitude');
title('Unit Sample Sequence');
axis([-10 30 0 1.2]);

Q1.5 The modified Program P1_1 to generate a unit step sequence sd[n] with an advance of 7
samples is given below along with the sequence generated by running this program.
% Generate a vector from -10 to 20
n = -10:1:20;
%n=0:30;
% Generate the unit sample sequence
%u = [zeros(1,10) 1 zeros(1,20)];
4
u=[zeros(1,3) ones(1,28)];
% Plot the unit sample sequence
stem(n,u);
xlabel('Time index n');ylabel('Amplitude');
title('Unit Sample Sequence with an advance of 7 samples');
axis([-10 20 0 1.2]);



Project 1.2 Exponential signals
A copy of Programs P1_2 and P1_3 are given below.
P1_2:
clf;
c = -(1/12)+(pi/6)*i;
K = 2;
n = 0:40;
x = K*exp(c*n);
subplot(2,1,1);
stem(n,real(x));
xlabel('Time index n');ylabel('Amplitude');
title('Real part');
subplot(2,1,2);
stem(n,imag(x));
xlabel('Time index n');ylabel('Amplitude');
title('Imaginary part');
5

P1_3:
% Program P1_3
% Generation of a real exponential sequence
clf;
n = 0:35; a = 1.2; K = 0.2;
x = K*a.^n;
stem(n,x);
xlabel('Time index n');ylabel('Amplitude');
title('Real-valued Exponential Sequence ');
y = sum(x.*x);

Answers:
Q1.6 The complex-valued exponential sequence generated by running Program P1_2 is shown below:


Q1.7 The parameter controlling the rate of growth or decay of this sequence is - real part of c.
The parameter controlling the amplitude of this sequence is k.
Q1.8 The result of changing the parameter c to (1/12)+(pi/6)*i is ascending graph.
6
Q1.9 The purpose of the operator real is get complex real part.
The purpose of the operator imag is get complex imaginary part.
Q1.10 The purpose of the command subplot is Create axes in tiled positions.
Q1.11 The real-valued exponential sequence generated by running Program P1_3 is shown below:




Q1.12 The parameter controlling the rate of growth or decay of this sequence is - a
The parameter controlling the amplitude of this sequence is - k
Q1.13 The difference between the arithmetic operators ^ and .^ is - ^ Matrix power
and .^ Array power.
Q1.14 The sequence generated by running Program P1_3 with the parameter a changed to 0.9 and the
parameter K changed to 20 is shown below:
7


Q1.15 The length of this sequence is - n
It is controlled by the following MATLAB command line: n = 0:35;
It can be changed to generate sequences with different lengths as follows (give an
example command line and the corresponding length): n = 0:40;
Q1.16 The energies of the real-valued exponential sequences x[n]generated in Q1.11 and Q1.14
and computed using the command sum are - y = sum(x.*x);


Project 1.3 Sinusoidal sequences
A copy of Program P1_4 is given below.
% Program P1_4
% Generation of a sinusoidal sequence
n = 0:40;
f = 0.1;
phase = 0;
A = 1.5;
arg = 2*pi*f*n - phase;
x = A*cos(arg);
clf; % Clear old graph
stem(n,x); % Plot the generated sequence
axis([0 40 -2 2]);
8
grid;
title('Sinusoidal Sequence');
xlabel('Time index n');
ylabel('Amplitude');
axis;
y = x.^2;
P = (1/length(y))*sum(y);

Answers:
Q1.17 The sinusoidal sequence generated by running Program P1_4 is displayed below.


Q1.18 The frequency of this sequence is - f
It is controlled by the following MATLAB command line: f = 0.1;
A sequence with new frequency 0.5 can be generated by the following command line:
f = 0.5;
The parameter controlling the phase of this sequence is - phase
The parameter controlling the amplitude of this sequence is - A
9
The period of this sequence is - 1/f = 10.
Q1.19 The length of this sequence is - 41.
It is controlled by the following MATLAB command line: n = 0:40;
A sequence with new length 51 can be generated by the following command line:
n = 0:50;
Q1.20 The average power of the generated sinusoidal sequence is
P = (1/length(y))*sum(y);
Q1.21 The purpose of axis command is - Control axis scaling and appearance.
The purpose of grid command is - Grid lines.
Q1.22 The modified Program P1_4 to generate a sinusoidal sequence of frequency 0.9 is given below
along with the sequence generated by running it.
% Generation of a sinusoidal sequence
n = 0:40;
f = 0.9;
phase = pi;
A = 1;
arg = 2*pi*f*n - phase;
x = A*cos(arg);
clf; % Clear old graph
stem(n,x); % Plot the generated sequence
axis([0 40 -2 2]);
grid;
title('Sinusoidal Sequence');
xlabel('Time index n');
ylabel('Amplitude');
axis;

10

A comparison of this new sequence with the one generated in Question Q1.17 shows -

A sinusoidal sequence of frequency 1.1 generated by modifying Program P1_4 is shown below.

A comparison of this new sequence with the one generated in Question Q1.17 shows -
11

Q1.23 The sinusoidal sequence of length 50, frequency 0.08, amplitude 2.5, and phase shift of 90
degrees generated by modifying Program P1_4 is displayed below.

The period of this sequence is 12.5.
Q1.24 By replacing the stem command in Program P1_4 with the plot command, the plot obtained
is as shown below:

12
The difference between the new plot and the one generated in Question Q1.17 is - Linear
plot.
Q1.25 By replacing the stem command in Program P1_4 with the stairs command the plot
obtained is as shown below:

The difference between the new plot and those generated in Questions Q1.17 and Q1.24 is -
Stairstep plot.
Project 1.4 Random signals
Answers:
Q1.26 The MATLAB program to generate and display a random signal of length 100 with elements
uniformly distributed in the interval [2, 2] is given below along with the plot of the random sequence
generated by running the program:
a=-2;
b=2;
x=a+(b-a).*rand(1,100);
stem(x);
xlabel('Time index n');
ylabel('Amplitude');
axis([0 100 -2.5 2.5]);
title('The Random Sequence ');

13






Q1.27 The MATLAB program to generate and display a Gaussian random signal of length 75 with
elements normally distributed with zero mean and a variance of 3 is given below along with the plot of the
random sequence generated by running the program:

x=3*randn(1,75);
stem(x);
xlabel('Time index n');
ylabel('Amplitude');
title('The Random Sequence ');
axis();
14



Q1.28 The MATLAB program to generate and display five sample sequences of a random sinusoidal
signal of length 31
{X[n]} = {Acos(
o
n + )}
where the amplitude A and the phase are statistically independent random variables with
uniform probability distribution in the range

0 A 4 for the amplitude and in the range 0
for the phase is given below. Also shown are five sample sequences generated by running this
program five different times.
n = 0:30;
f = 0.1;
Am = 4;
ph = 2*pi;
A = Am*rand(1);
phase = ph*rand(1);
% generate the sequence
arg = 2*pi*f*n + phase;
x = A*cos(arg);
subplot(5,1,1);
stem(n,x); % Plot the generated sequence
axis([0 length(n) -Am Am]);
title('Random Sinusoidal Sequence');
15
xlabel('Time index n');
ylabel('Amplitude');
subplot(5,1,2);
stem(n,x);
xlabel('Time index n');
ylabel('Amplitude');
subplot(5,1,3);
stem(n,x);
xlabel('Time index n');
ylabel('Amplitude');
subplot(5,1,4);
stem(n,x);
xlabel('Time index n');
ylabel('Amplitude');
subplot(5,1,5);
stem(n,x);
xlabel('Time index n');
ylabel('Amplitude');

1.2 SIMPLE OPERATIONS ON SEQUENCES
Project 1.5 Signal Smoothing
16
A copy of Program P1_5 is given below.
% Program P1_5
% Signal Smoothing by Averaging
clf;
R = 51;
d = 0.8*(rand(R,1) - 0.5); % Generate random noise
m = 0:R-1;
s = 2*m.*(0.9.^m); % Generate uncorrupted signal
x = s + d'; % Generate noise corrupted signal
subplot(2,1,1);
plot(m,d','r-',m,s,'g--',m,x,'b-.');
xlabel('Time index n');ylabel('Amplitude');
legend('d[n] ','s[n] ','x[n] ');
x1 = [0 0 x];x2 = [0 x 0];x3 = [x 0 0];
y = (x1 + x2 + x3)/3;
subplot(2,1,2);
plot(m,y(2:R+1),'r-',m,x,'g--');
legend( 'y[n] ','x[n] ');
xlabel('Time index n');ylabel('Amplitude');
Answers:
Q1.29 The signals generated by running Program P1_5 are displayed below:

Q1.30 The uncorrupted signal s[n]is smooth signal.
17
The additive noise d[n]is not smooth signal.
Q1.31 The statement x = s + d CANNOT be used to generate the noise corrupted signal
because d is random noise signal.
Q1.32 The relations between the signals x1, x2, and x3, and the signal x are input samples around the
sample x at instant n.
Q1.33 The purpose of the legend command is display legend.
Project 1.6 Generation of Complex Signals
A copy of Program P1_6 is given below.
% Program P1_6
% Generation of amplitude modulated sequence
clf;
n = 0:100;
m = 0.4;fH = 0.1; fL = 0.01;
xH = sin(2*pi*fH*n);
xL = sin(2*pi*fL*n);
y = (1+m*xL).*xH;
plot(n,y);
grid;
xlabel('Time index n');ylabel('Amplitude');
Answers:
Q1.34 The amplitude modulated signals y[n] generated by running Program P1_6 for various values
of the frequencies of the carrier signal xH[n] and the modulating signal xL[n], and various values of
the modulation index m are shown below:

Q1.35 The difference between the arithmetic operators * and .* is * matrix multiply
18
and .* array multiply.
A copy of Program P1_7 is given below.
% Program P1_7
% Generation of a swept frequency sinusoidal sequence
n = 0:100;
a = pi/2/100;
b = 0;
arg = a*n.*n + b*n;
x = cos(arg);
clf;
plot(n, x);
axis([0,100,-1.5,1.5]);
title('Swept-Frequency Sinusoidal Signal');
xlabel('Time index n');
ylabel('Amplitude');
grid; axis;
Answers:
Q1.36 The swept-frequency sinusoidal sequence x[n] generated by running Program P1_7 is
displayed below.

19
Q1.37 The minimum and maximum frequencies of this signal are minimum frequencies : 0 and
maximum frequencies : 0.5.
Q1.38 The Program 1_7 modified to generate a swept sinusoidal signal with a minimum frequency of 0.1
and a maximum frequency of 0.3 is given below:
% Ggenerate a swept sinusoidal signal with
% a minimum frequency of 0.1 and a maximum frequency of 0.3
n = 20:60;
a = pi/2/100;
b = 0;
arg = a*n.*n + b*n;
x = cos(arg);
clf;
plot(n, x);
title('Swept-Frequency Sinusoidal Signal');
xlabel('Time index n');
ylabel('Amplitude');
grid; axis;
1.3 WORKSPACE INFORMATION
Q1.39 The information displayed in the command window as a result of the who command is list current
variables.
Q1.40 The information displayed in the command window as a result of the whos command is list
current variables, long form.
1.4 OTHER TYPES OF SIGNALS (Optional)
Project 1.8 Squarewave and Sawtooth Signals
Answer:
Q1.41 MATLAB programs to generate the square-wave and the sawtooth wave sequences of the type
shown in Figures 1.1 and 1.2 are given below along with the sequences generated by running these
programs:
A=3;%Amplitude
n=0:0.002:10;
u=A/2.*square(2*pi*0.5*n)+(A/2);%Square wave message , tao sng vung
plot(n,u);
axis([0 10 0 4]);
xlabel('Time index n');
ylabel('Amplitude');
title('Square-wave ');
20

A=3;%Amplitude
n=0:0.002:10;
u=A/2.*sawtooth(2*pi*0.5*n)+(A/2);
plot(n,u);
axis([0 10 0 4]);
xlabel('Time index n');
ylabel('Amplitude');
title('sawtooth -wave ');


Date: 19/2/2014 Signature:

You might also like