Vous êtes sur la page 1sur 9

Signals, Spectra and Signal Processing (EC413L1)

Name: Salut, Frances Raphael Q. Date: August 2, 2016


Section: EC41FB1 Rating:

Exercises #04
The Difference Equation

Part 1 – Impulse and step response

>> b = [1];a = [1 -1 0.9];


>> n = [-20:120];s = [zeros(1,20) 1
zeros(1,120)];
>> n = [-20:120];u = [zeros(1,20) ones(1,121)];
>> x = s;
>> y = filter(b,a,x);stem(n,y);grid on;axis([1 -1
-20 120]);

>> x = u;
>> y = filter(b,a,x);stem(n,y);grid on;
axis([1 -1 -20 120]);

1. For each of the systems defined by difference equations, determine and plot the
impulse and step response. Use the Copy figure function of the MATLAB to plot the
output in a separate sheet of paper. Label each plots accordingly.
For (a):

>> b = [1];a = [1 -0.6 0.08];


>> n = [-20:120];s = [zeros(1,20) 1
zeros(1,120)];
>> n = [-20:120];u = [zeros(1,20)
ones(1,121)];
>> x=s;
>> y = filter(b,a,x);stem(n,y);grid
on;axis([1 -1 -20 120]);
>> title('Impulse Response');
xlabel('time index'); ylabel('y(n)')

>> x=u;
>> y = filter(b,a,x);stem(n,y);grid
on;axis([1 -1 -20 120]);
>> title('Step Response');
xlabel('time index n'); ylabel('y(n)')

For (b):

>> b = [2 0 -1];a = [1 -0.7 0.1];


>> x=s;
>> n = [-20:120];s = [zeros(1,20) 1
zeros(1,120)];
>> n = [-20:120];u = [zeros(1,20)
ones(1,121)];
>> y = filter(b,a,x);stem(n,y);grid
on;axis([1 -1 -20 120]);
>> title('Impulse Response');
xlabel('time index'); ylabel('y(n)')
>> x=u;
>> y = filter(b,a,x);stem(n,y);grid
on;axis([1 -1 -20 120]);
title('Step Response'); xlabel('time
index n'); ylabel('y(n)')

For (c):

>> b = [1 -1 0];a = [1 -4 4];


>> x=s;
>> n = [-20:120];s = [zeros(1,20) 1
zeros(1,120)];
>> n = [-20:120];u = [zeros(1,20)
ones(1,121)];
>> y = filter(b,a,x);stem(n,y);grid
on;axis([1 -1 -20 120]);
>> title('Impulse Response');
xlabel('time index'); ylabel('y(n)')
>> x=u;
>> y = filter(b,a,x);stem(n,y);grid
on;axis([1 -1 -20 120]);
>> title('Step Response'); xlabel('time
index n'); ylabel('y(n)')

For (d):

>> b = [1 2 1];a = [1 -0.5 0.25];


>> x=s;
>> y = filter(b,a,x);stem(n,y);grid
on;axis([1 -1 -20 120]);
>> n = [-20:120];s = [zeros(1,20) 1
zeros(1,120)];
>> n = [-20:120];u = [zeros(1,20)
ones(1,121)];
>> title('Impulse Response');
xlabel('time index'); ylabel('y(n)')
>> x=u;
>> y = filter(b,a,x);stem(n,y);grid
on;axis([1 -1 -20 120]);
>> title('Step Response'); xlabel('time
index n'); ylabel('y(n)')

Part 2 – Response to any arbitrary


input

For (a)

>> b=[1]; a=[5 0 0 0 0 0 0 0 0 0


0 0 0 0 0 0 0 0 0 0 -5];
>> n = [-20:120];u = [zeros(1,20)
ones(1,121)];
>> n = [-20:120];s = [zeros(1,20)
1 zeros(1,120)];
>> x=s;
>> y = filter(b,a,x);stem(n,y);grid
on;axis([1 -1 -20 120]);
>> x=u;
>> y = filter(b,a,x);stem(n,y);grid
on;axis([1 -1 -20 120]);

>> b=[1]; a=[sin(pi*n/25) 0 0 0 0 0 0 0 0 0 0 0 0 0


00000000000000000000000000
00000000000000000000000000
00000000000000000000000000
0 0 0 0 0 0 0 0 -sin(pi*n/25)];
>> n = [-20:120];u = [zeros(1,20) ones(1,121)];
>> n = [-20:120];s = [zeros(1,20) 1 zeros(1,120)];
>> x=s;
>> y = filter(b,a,x);stem(n,y);grid on;axis([1 -1 -20
120]);

>> x=u;
>> y = filter(b,a,x);stem(n,y);grid
on;axis([1 -1 -20 120]);

Part 3 – Convolution vs. filtering


For (a):

>> b=[1 2]; a=[1 -3 -4];


>> n = [-15:15];u = [zeros(1,15)
ones(1,16)];
>> n = [-15:15];s = [zeros(1,15) 1
zeros(1,15)];
>> x=s;
>> y = filter(b,a,x);stem(n,y);grid
on;axis([1 -1 -15 15]);

For (b):
>> n=[-30:30]; x=(0.5).^n.*(n>=0);
>> stem(n,x);grid

For (c):

>> n = [-15:15];
x = (0.5).^(n);
stem(n,x);
grid on;
xlabel('time index n');
ylabel('y(n)');
title('Impulse response');
F = conv2(y,x);
plot(F);
stem(F);
grid on;

For (d):
>> b = [1];a = [1 -1 0.9];
>> n = [-15:15];
>> xlabel('time index n');
>> ylabel('y(n)');
>> title('Impulse response');
>> y = filter(b,a,x);stem(n,y);grid
on;axis([1 -1 -20 120]);

Vous aimerez peut-être aussi