# How to implement a dirac delta as input signal for this system

y[n] = b0x[n] +b1x[n-1]


I have this MA filter in matlab as following

 load handel;
x = y;

b0 = 0.5;
b1 = 0.5;

N = length(x); % Length of input signal
y = zeros(1,20); % Allocate space for output

y(1) = b0*x(1); % First sample, assuming x(0) = 0
for n=2:N % Remaining samples
y(n) = b0*x(n) + b1*x(n-1);

end;

soundsc(y,Fs);


I was asked to create an input signal x[n] = dirac[n] where i save the x[n] for n = 0...19 in a vector and plot both signals in the same window for axis ([-1 20 ,0 1.5]).

I have tried so far that the new signal should look like this y1(n) = b0*dirac(n) + b1*dirac(n-1) but not sure if this is the right way or I maybe just not understood something?

• well, if you put an impulse through a system, you get the impulse response, in your case [b0, b1]. – Marcus Müller Mar 24 at 6:58
• does it mean that it looks like h[n] = b0 + b1? – Adam Mar 24 at 7:03
• how about impulse? – Hazem Mar 24 at 7:06
• @Adam no. I meant exactly what I wrote! The impulse response of your system has length 2 and is the vector [b0, b1]. – Marcus Müller Mar 24 at 7:16
• I mean, do it on paper. If you input 1,0,0,0,0,0… to your y[n] = b0 * x[n] + b1 * x[n-1], you simply get [b0, b1, 0, …] out. That's what we call impulse response. Because it's the response to an impulse. Since you're a student of something related to signal processing, you should be getting yourself really familiar with impulse responses and basics of system theory! – Marcus Müller Mar 24 at 7:23

## 1 Answer

The output sequence y(n) is a linear regression of the input sequence x(n) which "keeps memory" of the last 2 samples of the input to compute the output.

Allocating the sequence x(n), required being a dirac pulse, into an array x[n] is a correct begin. Then you can develop the output sequence y(n) per input sequence x(n). For that I suggest you to exploit the functionality of matlab and to avoid the for loop:

y = zeros(1,20); % Allocate space for output
y(1) = b0*x(1); %initial condition
y(2:20) = b0*x(2:20) + b1*x(1:20); % for n > 0


You should obtain an array of 20 samples of y(n) that you can easily plot using the function plot(x,y). Note: since the dirac function is symbolic, you must decide by your own at which time the pulse should rise (e.g. at n=0 or otherwise). For that I suggest you the example in the documentation of the function called "Plot Dirac Delta Function".