Operations on signals and sequences
Aim: To perform arithmetic operations different types of signals Using MATLAB Software.
Equipments:
PC with windows OS.
MATLAB Software
Basic Operation on Signals:
Time Shifting:
% program for time shifting of a Unit impulse signal
n1=input('enter the value of n1<0')
n2=input('enter the value of n2>0')
n=input('enter the value of n lying between n1 and n2 and not equal to zero')
t=[n1:n2];
x=zeros(1,length(t));
y=x;
i=find(t==0);
x(i)=1;
i=find(t==n);
y(i)=1;
subplot(2,1,1)
plot(t,x)
title("", "time", "amplitude")
title('Unit Impulse function')
subplot(2,1,2)
plot(t,y)
xlabel(‘time’)
ylabel(‘amplitude’)
if n>0
title('Delayed Unit Impulse by 3 units')
else
title('Advanced Unit Impulse by 3 units ')
end
Output:
% program for time shifting of a Unit step signal
fs=input('enter the sampling frequency')
T=1/fs;
t=-1*T:T/fs:T;
x=zeros(1,length(t));
x1=x;
x2=x;
i=find(t==0);
x(i:length(x))=1;
k=input('enter the amount of positive shift required in between -T and +T')
i=find(t==k);
x1(i:length(x))=1;
j=input('enter the amount of negative shift required in between -T and +T')
i=find(t==j);
x2(i:length(x))=1;
subplot(3,1,1)
plot(t,x)
xlabel(‘time’)
ylabel(‘amplitude’)
title('Unit Step signal with fs=1000')
subplot(3,1,2)
plot(t,x1)
xlabel(‘time’)
ylabel(‘amplitude’)
title('Unit Step sgnal delayed by 0.0005sec')
subplot(3,1,3)
plot(t,x2)
xlabel(‘time’)
ylabel(‘amplitude’)
title('Unit Step sgnal advanced by 0.0005sec')
Output:
% program for time shifting of a sinusoidal signal
Progarm-1:
f=input('enter the sampling frequency')
T=1/f
t=0:T/f:T;
x=sin(2*pi*f*t);
b= input('select a value for b which is greater than one')
t1=-1*b*T:T/f:b*T;
p=zeros(1,length(t1));
q=p;
i=find(t1==0);
p(i:i+length(t)-1)=x;
k=input('enter the amount of shift required which is bounded by -b.T and +b.T')
j=find(t1==k)
q(j:j+length(t)-1)=x;
if k<0
subplot(2,1,1)
plot(t1,p)
xlabel(‘time’)
ylabel(‘amplitude’)
title('sinusoidal pulse with f=500,b=2')
subplot(2,1,2)
plot(t1,q)
xlabel(‘time’)
ylabel(‘amplitude’)
title('sinusoidal pulse advanced by 0.002sec')
else
subplot(2,1,1)
plot (t1,p)
xlabel(‘time’)
ylabel(‘amplitude’)
title('sinusoidal pulse with f=500,b=2')
subplot(2,1,2)
plot(t1,q)
xlabel(‘time’)
ylabel(‘amplitude’)
title('sinusoidal pulse delayed by 0.002sec')
end
Output:
% program for time shifting of a sinusoidal signal
Program-2:
clc
clear all
close all
t = [0:.01:pi]; % independent (time) variable
A = 8; % amplitude
f1 = 2;
s1 = A*sin(2*pi*f1*t);
subplot(3,1,1)
plot(t,s1)
xlabel('t');
ylabel('amplitude');
title('input signal')
subplot(3,1,2)
plot(t+10,s1)
xlabel('t');
ylabel('amplitude');
title('right shifted signal')
subplot(3,1,3)
plot(t-10,s1)
xlabel('t');
ylabel('amplitude');
title('left shifted signal')
% program for time shifting of a sequence
clc
clear all
close all
n=0:1:4;
h=[1,1,1,-1,2];
subplot(3,1,1)
stem(n,h);
xlabel('n'); ylabel('h(n)'); title('impulse sequence');
subplot(3,1,2)
stem(n+2,h);
xlabel('n') ; ylabel('h(n)'); title('folded sequence');
subplot(3,1,3)
stem(n-2,h)
xlabel('n') ; ylabel('h(n)'); title('shifted sequence');
subplot(3,1,3)
Signal Addition and Substraction :
Addition: any two signals can be added to form a third signal,
z (t) = x (t) + y (t)
Multiplication :Multiplication of two signals can be obtained by multiplying their values at every instants . z (t) = x (t) *y (t)
%Program for addition and multiplication of continuous sinusoidal signals
t = [0:.01:1]; % independent (time) variable
A = 8; % amplitude
f1 = 2;
s1 = A*sin(2*pi*f1*t); % create a 2 Hz sine wave
f2 = 6;
s2 = A*sin(2*pi*f2*t); % create a 4 Hz sine wave
figure
subplot(4,1,1)
plot(t, s1)
title('1 Hz sine wave')
ylabel('Amplitude')
subplot(4,1,2) ;plot(t, s2)
title('2 Hz sine wave')
ylabel('Amplitude')
%plot the summed sine waves in the bottom panel
subplot(4,1,3) ;plot(t, s1+s2)
title('Summed sine waves')
ylabel('Amplitude')
xlabel('Time (s)')
%plot the multiplied sine waves
xmult=s1.*s2;
subplot(4,1,4);plot(xmult);
title('multiplication');
ylabel('Amplitude')
xlabel('Time (s)')
%Program for addition and multiplication of two discrete sinusoidal sequences with different time durations
f1=10;
f2=10;
T1=1/f1
t1=0:T1/f1:T1
x1=sin(2*pi*f1*t1)
T2=2/f2;
t2=0:T2/f2:T2
x2=sin(2*pi*f2*t2)
t=sort([t1,t2])
for i=2:length(t)
if t(i)==t(i-1)
t(i)=pi
end
end
j=find(t==pi)
t(j)=[]
p1=zeros(1,length(t))
for i1=1:length(t)
for j1=1:length(t1)
if t(i1)==t1(j1)
p1(i1)=x1(j1)
end
end
end
subplot(3,2,1)
stem(t1,x1)
xlabel('time')
ylabel('amplitude')
title('x1')
subplot(3,2,2)
stem(t,p1)
xlabel('time')
ylabel('amplitude')
title('p1')
p2=zeros(1,length(t))
for i2=1:length(t)
for j2=1:length(t2)
if t(i2)==t2(j2)
p2(i2)=x2(j2)
end
end
end
subplot(3,2,3)
stem(t2,x2)
xlabel('time')
ylabel('amplitude')
title('x2')
subplot(3,2,4)
stem(t,p2)
xlabel('time')
ylabel('amplitude')
title('p2')
p=p1+p2
q=p1.*p2
subplot(3,2,5)
stem(t,p)
xlabel('time')
ylabel('amplitude')
title('p1+p2')
subplot(3,2,6)
stem(t,q)
xlabel('time')
ylabel('amplitude')
title('p1.*p2')
Output:
%Program for addition and multiplication & addition of sequences
n1=1:1:9
s1 = [1 2 3 4 5 6 2 3 1];
subplot(4,1,1) % plot sequence 1
stem(n, s1)
xlabel('n1')
title('input sequence')
ylabel('Amplitude')
n2=-2:1:6;
s2=[1 1 1 0 2 3 1 1 0 ]
subplot(4,1,2) ;stem(n2, s2) % plot sequence 2
title('second sequence') ;
ylabel('Amplitude')
xlabel('n2')
s3=s1+s2;
subplot(4,1,3) ;stem(n2,s3) % plot summed sequence
title('Summed sequence')
ylabel('Amplitude')
xlabel('n2')
s4=s1.*s2;
subplot(4,1,4);stem(n2,s4); % plot multiplied sequence
title('multiplication');
ylabel('Amplitude')
xlabel('n2')
Time reversal:
Time reversal of a signal x(t) can be obtained by folding the signal about t=0. Y(t)=y(-t).
% Folding for signal or time reversal Unit Step Signal
t=-5:0.01:5
x=zeros(1,length(t));
i=find(t>=0);
x(i:length(x))=1;
subplot(2,1,1)
plot(t,x)
xlabel('time')
ylabel('amplitude')
title('Unit Step signal ')
axis([-2 2 -2 2])
x=zeros(1,length(t));
j=find(t==min(t));
x(j:i)=1;
subplot(2,1,2)
plot(t,x)
xlabel('time')
ylabel('amplitude')
title('Unit Step signal folded about Y-axis')
grid
axis([-5 5 -2 2])
Output:
% Folding for signal or time reversal sine wave
Clc
Close all
Clear all
t = [0:.01:1]; % independent (time) variable
A = 8; % amplitude
f1 = 2; % create a 2 Hz sine wave lasting 1 sec
x = A*sin(2*pi*f1*t);
lx=length(x);
nx=0:lx-1;
xf=fliplr(x);
nf=-fliplr(nx);
subplot(2,1,1);
stem(nx,x);
xlabel('nx');
ylabel('amplitude)');
title('original signal');
subplot(2,1,2);
stem(nf,xf);
xlabel('nf');
ylabel('amplitude');
title('folded signal');
% Folding for signal or time reversal Ramp wave
clc;
clear all
t=0:0.1:10;
x=0.5*t;
lx=length(x);
nx=0:lx-1;
xf=fliplr(x);
nf=-fliplr(nx);
subplot(2,1,1);
stem(nx,x);
xlabel('nx');
ylabel('x(nx)');
title('original signal');
subplot(2,1,2);
stem(nf,xf);
xlabel('nf');
ylabel('xf(nf)');
title('folded signal');
% Folding for signal or time reversal Sawtooth wave
fs=input('enter the sampling frequency:')
T=1/fs;
t= -1*T:T/fs: T;
p=zeros(1,length(t));
c=input('enter the number of samples to be included:')
i=find(t==0);
for j=i+1:i+c
p(j+1)=p(j)+1;
end
subplot(2,1,1)
plot(t,p)
xlabel('time')
ylabel('amplitude')
title('Sawtooth pulse')
p1=zeros(1,length(t));
p1(i-c:i-1)=fliplr(p(i+1:i+c))
subplot(2,1,2)
plot(t,p1)
xlabel('time')
ylabel('amplitude')
title('Sawtooth pulse folded about Y-axis')
Result:
enter the sampling frequency:1000
fs = 1000
enter the number of samples to be included:200
c=200
Output:
% Amplitude scaling
t = [0:.01:1]; % independent (time) variable
A = 8; % amplitude
f1 = 2; % create a 2 Hz sine wave lasting 1 sec
s1 = A*sin(2*pi*f1*t);
subplot(3,1,1)
plot(s1);
xlabel('t');
ylabel('amplitude');
title('input signal');
s2=2*s1;
subplot(3,1,2)
plot(s2);
xlabel('t');
ylabel('amplitude');
title('amplified input signal');
s3=s1/2;
subplot(3,1,3)
plot(s3);
xlabel('t');
ylabel('amplitude');
title('attenuated input signal');
Signal amplified and attenuated
Signal Amplification/Attenuation :
Y(n)= ax(n) if a < 1 attenuation
a >1 amplification
% Amplitude scaling of sine wave
clc;
clear all;
close all;
t=0:.01:1;
A = 8;
f1 = 2;
s1 = A*sin(2*pi*f1*t);
subplot(3,1,1);
plot(t,s1);
xlabel('time');
ylabel('amplitude');
title('input signal');
s2=2*s1;
subplot(3,1,2);
plot(t,s2);
xlabel('time');
ylabel('amplitude');
title('amplified input signal');
s3=s1/2;
subplot(3,1,3);
plot(s3);
xlabel('time');
ylabel('amplitude');
title('attenuated input signal');
Output:
% Amplitude scaling for sequences
n=0:1:6
s1 = [1 2 3 3 1 1 1]
subplot(3,1,1)
stem(n,s1);
xlabel('n');
ylabel('amplitude');
title('input signal');
s2=4*s1;
subplot(3,1,2)
stem(n,s2);
xlabel('t');
ylabel('amplitude');
title('amplified input signal');
s3=s1/4;
subplot(3,1,3)
stem(n,s3);
xlabel('t');
ylabel('amplitude');
title('attenuated input signal');
Time scaling:
The Time scaling of a signal x(t) can be accomplished by replacing t by at where t is a scaling factor.
Y(t)=x(at) : a= arbitrary constant
If a<1 (a=1/2) i e x(t/2)---- the signal y(t) is expanded by 2
If a>1 (a=2) i e x(2 t )---- the signal y(t) is compressed 2
% Time scaling of Triangular wave
fs=input('enter the sampling frequency')
T=1/fs;
t=0:T/fs:T;
p=zeros(1,length(t));
p1=p;
for i=2:((length(t)-1)/2)+1
p(i)=p(i-1)+1;
p(length(t)-(i-1))=p(i);
end
c=input('enter the scaling factor')
t1=t./c;
if c<1
subplot(2,1,1)
plot(t,p)
title('triangular pulse')
xlabel('time')
ylabel('amplitude')
grid
subplot(2,1,2)
plot(t1,p)
title('expanded triangular pulse')
xlabel('time')
ylabel('amplitude')
grid
else
subplot(2,1,2)
plot(t1,p)
grid
title('Compressed Triangular Pulse')
end
xlabel('time')
ylabel('amplitude')
Result:
enter the sampling frequency:10
fs =10
enter the scaling factor:2
c = 2
Output:
enter the sampling frequency10
fs = 10
enter the scaling factor:0.2
c =0.2
Output:
% Time scaling of sine wave
t = [0:.05:pi]; % independent (time) variable
A = 8; % amplitude
f1 = 2; % create a 2 Hz sine wave lasting 1 sec
s1 = A*sin(2*pi*f1*t);
subplot(3,1,1)
plot(s1);
xlabel('t');
ylabel('amplitude');
title ('sine signal')
s2=A*sin(2*2*pi*f1*t); % scaling by A=4
subplot(3,1,2)
plot(s2);
xlabel('t');
ylabel('amplitude');
title ('scaled sine signal with a=4')
s3=A*sin(.5*pi*f1*t); % scaling by A=1/4
subplot(3,1,3);
plot(s3);
xlabel('t');
ylabel('amplitude');
title ('scaled sine signal with a=1/4')
% Time scaled version of a Sawtooth Pulse
fs=input('enter the sampling frequency')
T=1/fs;
t=0:T/fs:T;
p=zeros(1,length(t));
k=input('enter the duration of the pulse interms of number of time instances to be included')
for i=2:k
p(i)=p(i-1)+1;
end
c=input('enter the scaling factor')
t1=t./c;
if c<1
subplot(2,1,1)
plot(t,p)
xlabel('time')
ylabel('amplitude')
grid
title('Sawtooth Pulse')
subplot(2,1,2)
plot(t1,p)
xlabel('time')
ylabel('amplitude')
grid
title('Expanded Sawtooth Pulse')
else
subplot(2,1,1)
plot(t,p)
xlabel('time')
ylabel('amplitude')
grid
title('Sawtooth Pulse')
subplot(2,1,2)
plot(t1,p)
xlabel('time')
ylabel('amplitude')
grid
title('Compressed Triangular Pulse')
end
Output:
Result: In this experiment the various operations on signals have been performed Using MATLAB have been demonstrated.
Viva Questions:
1. Define Delta Function.
Ans:The delta function is a generalized function that can be defined as the limit of a class of delta sequences. The delta function is sometimes called "Dirac's delta function" or the "impulse symbol”. The Dirac delta function, often referred to as the unit impulse or delta function, is the function that defines the idea of a unit impulse in continuous-time. Informally, this function is one that is infinitesimally narrow, infinitely tall, yet integrates to one.
2. What is Signal Modeling.
Ans: Small-signal modeling is a common analysis technique in engineering which is used to approximate the behavior of nonlinear devices with linear equations and signals.
3. Define Periodic and a periodic Signal.
Ans: A signal is said to be periodic, if it is repeated over a cycle of time or a regular interval of time.
A signal which does not repeat itself after a specific interval of time is called aperiodic signal.
4. Define Continuous and Discrete Time Signals.
Ans:If for a signal, the quantities are defined only on a discrete set of times, we call it a discrete-time signal
A signal is defined at any instant of time is called continuous signal .
-
UpdatedFeb 13, 2020
-
Views3,991
Sampling theorem verification
Finding the even and odd parts of signal/sequence and real and imaginary parts of signal
Auto correlation and cross correlation between signals and sequences
Genaration of various signals and sequences
Computation of unit sample, unit step and sinusoidal response of the given LTI system and verifying its physical reliability and stability properties
Basic operations on Matrices