[go: up one dir, main page]

0% found this document useful (0 votes)
214 views14 pages

Laboratory Exercise 2: Discrete-Time Systems: Time-Domain Representation

1) The document describes a program that simulates a discrete-time moving average filter. It generates a sum of two sinusoidal signals as input and applies the moving average filter. 2) For a filter length of 2, the high frequency sinusoid is suppressed in the output, while the low frequency sinusoid passes through. 3) Modifying the filter to y[n] = 0.5(x[n]-x[n-1]) results in the high frequency sinusoid passing through and the low frequency being suppressed instead. 4) Running the filter for different lengths and input frequencies shows that longer filter lengths suppress higher frequencies, while shorter lengths pass more frequencies.

Uploaded by

Nguyễn Hưng
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
214 views14 pages

Laboratory Exercise 2: Discrete-Time Systems: Time-Domain Representation

1) The document describes a program that simulates a discrete-time moving average filter. It generates a sum of two sinusoidal signals as input and applies the moving average filter. 2) For a filter length of 2, the high frequency sinusoid is suppressed in the output, while the low frequency sinusoid passes through. 3) Modifying the filter to y[n] = 0.5(x[n]-x[n-1]) results in the high frequency sinusoid passing through and the low frequency being suppressed instead. 4) Running the filter for different lengths and input frequencies shows that longer filter lengths suppress higher frequencies, while shorter lengths pass more frequencies.

Uploaded by

Nguyễn Hưng
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 14

Name:

Section:

Laboratory Exercise 2
DISCRETE-TIME SYSTEMS: TIME-DOMAIN REPRESENTATION

2.1 SIMULATION OF DISCRETE-TIME SYSTEMS

Project 2.1 The Moving Average System

A copy of Program P2_1 is given below:

% Program P2_1
% Simulation of an M-point Moving Average Filter
% Generate the input signal
n = 0:100;
s1 = cos(2*pi*0.05*n); % A low-frequency sinusoid
s2 = cos(2*pi*0.47*n); % A high frequency sinusoid
x = s1+s2;
% Implementation of the moving average filter
M = input('Desired length of the filter = ');
num = ones(1,M);
y = filter(num,1,x)/M;
% Display the input and output signals
clf;
subplot(2,2,1);
plot(n, s1);
axis([0, 100, -2, 2]);
xlabel('Time index n'); ylabel('Amplitude');
title('Signal #1');
subplot(2,2,2);
plot(n, s2);
axis([0, 100, -2, 2]);
xlabel('Time index n'); ylabel('Amplitude');
title('Signal #2');
subplot(2,2,3);
plot(n, x);
axis([0, 100, -2, 2]);
xlabel('Time index n'); ylabel('Amplitude');
title('Input Signal');
subplot(2,2,4);
plot(n, y);
axis([0, 100, -2, 2]);
xlabel('Time index n'); ylabel('Amplitude');
title('Output Signal');
axis;

1
Answers:

Q2.1 The output sequence generated by running the above program for M = 2 with x[n] = s1[n]+s2[n] as
the input is shown below.

Signal #1 Signal #2
2 2

1 1
Amplitude

Amplitude
0 0

-1 -1

-2 -2
0 50 100 0 50 100
Time index n Time index n
Input Signal Output Signal
2 2

1 1
Amplitude

Amplitude

0 0

-1 -1

-2 -2
0 50 100 0 50 100
Time index n Time index n
The
component of the inputx[n] suppressed by the discrete-time system simulated by this program is –
s2(dữ liệu tín hiệu tần số thấp) _Dự đoán bộ lọc hạ thông,
Q2.2 Program P2_1 is modified to simulate the LTI system y[n] = 0.5(x[n]–x[n–1]) and process the
input x[n] = s1[n]+s2[n] resulting in the output sequence shown below :
% Program P2_1
% Simulation of an M-point Moving Average Filter
% Generate the input signal
n = 0:100;
s1 = cos(2*pi*0.05*n); % A low-frequency sinusoid
s2 = cos(2*pi*0.47*n); % A high frequency sinusoid
x = s1+s2;
% Implementation of the moving average filter
M = 2;
num = [1 -1];
y = filter(num,1,x)/M;
% Display the input and output signals
clf;
subplot(2,2,1);
plot(n, s1);
axis([0, 100, -2, 2]);

2
xlabel('Time index n'); ylabel('Amplitude');
title('Signal #1');
subplot(2,2,2);
plot(n, s2);
axis([0, 100, -2, 2]);
xlabel('Time index n'); ylabel('Amplitude');
title('Signal #2');
subplot(2,2,3);
plot(n, x);
axis([0, 100, -2, 2]);
xlabel('Time index n'); ylabel('Amplitude');
title('Input Signal');
subplot(2,2,4);
plot(n, y);
axis([0, 100, -2, 2]);
xlabel('Time index n'); ylabel('Amplitude');
title('Output Signal');
axis;

Signal #1 Signal #2
2 2

1 1
Amplitude

Amplitude

0 0

-1 -1

-2 -2
0 50 100 0 50 100
Time index n Time index n
Input Signal Output Signal
2 2

1 1
Amplitude

Amplitude

0 0

-1 -1

-2 -2
0 50 100 0 50 100
Time index n Time index n

The effect of changing the LTI system on the input is – Dự đoán tín hiệu tần số cao đi qua_ Bộ
lọc thượng thông,
Q2.3 Program P2_1 is run for the following values of filter length M and following values of the fre quencies
of the sinusoidal signals s1[n] and s2[n]. The output generated for these different values of M and
the frequencies are shown below. From these plots we make the following observations -
% Program P2_1
% Simulation of an M-point Moving Average Filter
% Generate the input signal

3
n = 0:100;
s1 = cos(2*pi*0.1*n); % A low-frequency sinusoid
s2 = cos(2*pi*0.5*n); % A high frequency sinusoid
x = s1+s2;
% Implementation of the moving average filter
M = 4;
num = ones(1,M);
y = filter(num,1,x)/M;
% Display the input and output signals
clf;
subplot(2,2,1);
plot(n, s1);
axis([0, 100, -2, 2]);
xlabel('Time index n'); ylabel('Amplitude');
title('Signal #1');
subplot(2,2,2);
plot(n, s2);
axis([0, 100, -2, 2]);
xlabel('Time index n'); ylabel('Amplitude');
title('Signal #2');
subplot(2,2,3);
plot(n, x);
axis([0, 100, -2, 2]);
xlabel('Time index n'); ylabel('Amplitude');
title('Input Signal');
subplot(2,2,4);
plot(n, y);
axis([0, 100, -2, 2]);
xlabel('Time index n'); ylabel('Amplitude');
title('Output Signal');
axis;

4
Signal #1 Signal #2
2 2

Amplitude 1 1

Amplitude
0 0

-1 -1

-2 -2
0 50 100 0 50 100
Time index n Time index n
Input Signal Output Signal
2 2

1 1
Amplitude

Amplitude
0 0

-1 -1

-2 -2
0 50 100 0 50 100
Time index n Time index n
% Program P2_1
% Simulation of an M-point Moving Average Filter
% Generate the input signal
n = 0:100;
s1 = cos(2*pi*0.5*n); % A low-frequency sinusoid
s2 = cos(2*pi*0.01*n); % A high frequency sinusoid
x = s1+s2;
% Implementation of the moving average filter
M = ;
num = ones(1,M);
y = filter(num,1,x)/M;
% Display the input and output signals
clf;
subplot(2,2,1);
plot(n, s1);
axis([0, 100, -2, 2]);
xlabel('Time index n'); ylabel('Amplitude');
title('Signal #1');
subplot(2,2,2);
plot(n, s2);
axis([0, 100, -2, 2]);
xlabel('Time index n'); ylabel('Amplitude');
title('Signal #2');
subplot(2,2,3);
plot(n, x);
axis([0, 100, -2, 2]);
xlabel('Time index n'); ylabel('Amplitude');
title('Input Signal');
subplot(2,2,4);

5
plot(n, y);
axis([0, 100, -2, 2]);
xlabel('Time index n'); ylabel('Amplitude');
title('Output Signal');
axis;

Signal #1 Signal #2
2 2

1 1
Amplitude

Amplitude
0 0

-1 -1

-2 -2
0 50 100 0 50 100
Time index n Time index n
Input Signal Output Signal
2 2

1 1
Amplitude

Amplitude

0 0

-1 -1

-2 -2
0 50 100 0 50 100
Time index n Time index n
Q2.4 The required modifications to Program P2_1 by changing the input sequence to a swept-frequency
sinusoidal signal (length 101, minimum frequency 0, and a maximum frequency 0.5) as the input signal
(see Program P1_7) are listed below:
% Program P2_1
% Simulation of an M-point Moving Average Filter
% Generate the input signal
n = 0:100;
arg=a*n*n+b*n;
a=pi/200;
x=cos(arg);
b=0;
% Implementation of the moving average filter
M =2 ;
num = ones(1,M);
y = filter(num,1,x)/M;
% Display the input and output signals
clf;
subplot(2,1,1);
plot(n, x);
axis([0, 100, -2, 2]);
xlabel('Time index n'); ylabel('Amplitude');

6
title('Signal #1');
subplot(2,1,2);
plot(n, y);
axis([0, 100, -2, 2]);
xlabel('Time index n'); ylabel('Amplitude');
title('Signal #2');
title('Output Signal');
axis;

The output signal generated by running this program is plotted below .

-1

-2
0 50 100

Input Signal
2

1
Amplitude

-1

-2
0 10 20 30 40 50 60 70 80 90 100
Time index n The
results of Questions Q2.1 and Q2.2 from the response of this system to the swept-frequency signal can
be explained as follows:

Thành phần tần số thấp phía bên trái đồ thị được đi qua thành phần tần số cao của đồ thị bị chặn.

2.2 LINEAR TIME-INVARIANT DISCRETE-TIME SYSTEMS

Project 2.5 Computation of Impulse Responses of LTI Systems

A copy of Program P2_5 is shown below:


% Program P2_5
% Compute the impulse response y
clf;
N = 40;
num = [2.2403 2.4908 2.2403];

7
den = [1 -0.4 0.75];
y = impz(num,den,N);
% Plot the impulse response
stem(y);
xlabel('Time index n'); ylabel('Amplitude');
title('Impulse Response'); grid;

Answers:

Q2.19 The first 40 samples of the impulse response of the discrete-time system of Project 2.3 generated by
running Program P2_5 is given below:

Impulse Response
4

2
Amplitude

-1

-2

-3
0 5 10 15 20 25 30 35 40
Time index n

Q2.20 The required modifications to Program P2_5 to generate the impulse response of the following causal
LTI system :

y[n] + 0.71y[n-1] – 0.46y[n-2] – 0.62y[n-3]

= 0.9x[n] – 0.45x[n-1] + 0.35x[n-2] + 0.002x[n-3]

are given below:s


% Program P2_5
% Compute the impulse response y
clf;
N = 40;

8
num = [0.9 -0.45 0.35 0.02];
den = [1 0.71 -0.46 -0.62];
y = impz(num,den,N);
% Plot the impulse response
stem(y);
xlabel('Time index n'); ylabel('Amplitude');
title('Impulse Response'); grid;

Impulse Response
2

1.5

1
Amplitude

0.5

-0.5

-1

-1.5
0 5 10 15 20 25 30 35 40
Time index n

The first 45 samples of the impulse response of this discrete-time system generated by running the
modified is given below :
% Program P2_5
% Compute the impulse response y
clf;
N = 45;
num = [0.9 -0.45 0.35 0.02];
den = [1 0.71 -0.46 -0.62];
y = impz(num,den,N);
% Plot the impulse response
stem(y);
xlabel('Time index n'); ylabel('Amplitude');
title('Impulse Response'); grid;

9
Impulse Response
2

1.5

1
Amplitude

0.5

-0.5

-1

-1.5
0 5 10 15 20 25 30 35 40 45
Time index n
Q2.21 The MATLAB program to generate the impulse response of a causal LTI system of Q2.20 using the
filter command is indicated below:
% Program P2_5
% Compute the impulse response y
clf;
N = 40;
num = [0.9 -0.45 0.35 0.02];
den = [1 0.71 -0.46 -0.62];
x=[1 zeros(1,N-1)];
y = filter(num,den,x);
% Plot the impulse response
stem(y);
xlabel('Time index n'); ylabel('Amplitude');
title('Impulse Response'); grid;

The first 40 samples of the impulse response generated by this program are shown below :

10
Impulse Response
2

1.5

1
Amplitude

0.5

-0.5

-1

-1.5
0 5 10 15 20 25 30 35 40
Time index n
Comparing the above response with that obtained in Question Q2.20 we conclude - hai đồ thị giống
nhau.

Q2.22 The MATLAB program to generate and plot the step response of a causal LTI system is indicated
below:
% Program P2_5
% Compute the impulse response y
clf;
N = 40;
num = [0.9 -0.45 0.35 0.02];
den = [1 0.71 -0.46 -0.62];
x=[1 ones(1,N-1)];
y = filter(num,den,x);
% Plot the impulse response
stem(y);
xlabel('Time index n'); ylabel('Amplitude');
title('Impulse Response'); grid;

The first 40 samples of the step response of the LTI system of Project 2.3 are shown below :

11
Impulse Response
1.6

1.4

1.2

1
Amplitude

0.8

0.6

0.4

0.2

-0.2
0 5 10 15 20 25 30 35 40
Time index n

Project 2.7 Convolution

A copy of Program P2_7 is reproduced below :


% Program P2_7
clf;
h = [3 2 1 -2 1 0 -4 0 3]; % impulse response
x = [1 -2 3 -4 3 2 1]; % input sequence
y = conv(h,x);
n = 0:14;
subplot(2,1,1);
stem(n,y);
xlabel('Time index n'); ylabel('Amplitude');
title('Output Obtained by Convolution'); grid;
x1 = [x zeros(1,8)];
y1 = filter(h,1,x1);
subplot(2,1,2);
stem(n,y1);
xlabel('Time index n'); ylabel('Amplitude');
title('Output Generated by Filtering'); grid;

Answers:

Q2.28 The sequences y[n] and y1[n] generated by running Program P2_7 are shown below :

12
Output Obtained by Convolution
20

10
Amplitude
0

-10

-20
0 2 4 6 8 10 12 14
Time index n
Output Generated by Filtering
20

10
Amplitude

-10

-20
0 2 4 6 8 10 12 14
Time index n

The difference between y[n] and y1[n] is - giống nhau

x1[n] as the input, obtained by zero-padding x[n], for generating y1[n] is –


The reason for using
đệm thêm 8 số 0 để x1 có chiều dài bằng 15 => y1 có chiều dài bằng 15 thì mới bằng
y[n]

Q2.29 The modified Program P2_7 to develop the convolution of a length-15 sequence h[n] with a length-10
sequence x[n]is indicated below:
% Program P2_7
clf;
h = [3 2 1 -2 1 0 -4 0 3 2 5 5 5 5 1]; % impulse response
x = [1 -2 3 -4 3 2 1 6 8 7]; % input sequence
y = conv(h,x);
n = 0:23;
subplot(2,1,1);
stem(n,y);
xlabel('Time index n'); ylabel('Amplitude');
title('Output Obtained by Convolution'); grid;
x1 = [x zeros(1,14)];
y1 = filter(h,1,x1);
subplot(2,1,2);
stem(n,y1);
xlabel('Time index n'); ylabel('Amplitude');
title('Output Generated by Filtering'); grid;

13
The sequences y[n] and y1[n] generated by running modified Program P2_7 are shown below :

Output Obtained by Convolution


150

100
Amplitude

50

-50
0 5 10 15 20 25
Time index n
Output Generated by Filtering
150

100
Amplitude

50

-50
0 5 10 15 20 25
Time index n

The difference between y[n] and y1[n] is - hai đồ thị giống nhau

14

You might also like