# Write a MATLAB program to sketch the following discrete-time signals in the time range of –10 ≤ n ≤ 10. Please label all the graph axes clearly. If the sequence is complex, plot the magnitude and angle separately. i) x(n) = u(n) – u(n – 3)

838 views (last 30 days)
n=-10:10;
u(1:21)=ones(1,21); %creates a unit step sequence for u(n)
%how to write a delayed version of sequence i.e for u(n-3) ?

Aliya Patel on 23 Nov 2018
t = (-10:1:10)'; %%Can change the interval time by replacing 1 with 0.1
step1 = t>=0; %% For u[n]
step2 = t>=3 %%For u[n-3]
x=step1-step2
plot(t,x) %%scatter can be used instead of plot
xlabel('time');
ylabel('amplitude');
title('x(n)=u(n)-u(n-3)');

#### 1 Comment

Satadru Mukherjee on 21 Mar 2020
This is wrong , your code is not taking care of the time index :-/

Satadru Mukherjee on 21 Mar 2020
Edited: Walter Roberson on 21 Mar 2020
n1=-10:10;
x=(n1>=0);
n2=n1+3;
y=x;
u=min(min(n1),min(n2));
t=max(max(n1),max(n2));
r=u:1:t;
z1=[];
temp=1;
for i=1:length(r)
if(r(i)<min(n1) || r(i)>max(n1))
z1=[z1 0];
else
z1=[z1 x(temp)];
temp=temp+1;
end
end
z2=[];
temp=1;
for i=1:length(r)
if(r(i)<min(n2) || r(i)>max(n2))
z2=[z2 0];
else
z2=[z2 y(temp)];
temp=temp+1;
end
end
z=z1-z2;
subplot(3,1,1);
stem(r,z1);
xlabel('Time sample');
ylabel('Amplitude');
title('First signal');
subplot(3,1,2);
stem(r,z2);
xlabel('Time sample');
ylabel('Amplitude');
title('Second signal');
subplot(3,1,3);
stem(r,z);
xlabel('Time sample');
ylabel('Amplitude');
title('Signal after Subtraction');

Show 1 older comment
Walter Roberson on 16 May 2020
It appends x(temp) to the end of z1. They wrote the code using that technique because people tend to learn the [] concatenation before they gain the experience to initialize an array to full size and write at a particular in the array.
hani mahook on 19 Oct 2020
i need to solv thes Plot the signal given by x1(t) =    0, t ≤ 0 t + 1, 0 ≤ t ≤ 1 1, 1 ≤ t ≤ 2 0, t ≥ 2
John D'Errico on 19 Oct 2020