II.b.tech-i-sem Bs Lab M
II.b.tech-i-sem Bs Lab M
LABORATORY MANUAL
(BASIC SIMULATION LAB)
II B. Tech I-SEM
Department of
ELECTRONICS & COMMUNICATION ENGINEERING
1
Department of ECE BS Lab Manual
CONTENTS
Experiment No-1
OPERATIONS ON MATRICES
Software Required:
Matlab software 7.0 and above.
Theory:
Program:
>> colvec=[13;20;5]
colvec =
13
20
5
% Creating a row vector
>> rowvec=[1 2 3]
3
Department of ECE BS Lab Manual
rowvec =
1 2 3
% Creating a matrix
>> matrix=[1 2 3;4 6 9;2 6 9]
matrix =
1 2 3
4 6 9
2 6 9
% Extracting sub matrix from matrix
>> sub_matrix=matrix(2:3,2:3)
sub_matrix =
6 9
6 9
% extracting column vector from matrix
>> col_vector=matrix(:,2)
col_vector =
2
6
6
% extracting row vector from matrix
>> row_vector=matrix(3,:)
row_vector =
2 6 9
4
Department of ECE BS Lab Manual
a=
2 4 -1
-2 1 9
-1 -1 0
b=
0 2 3
1 0 2
1 4 6
% matrix multiplication
>> x1=a*b
x1 =
3 0 8
10 32 50
-1 -2 -5
% vector multiplication
>> x2=a.*b
x2 =
0 8 -3
-2 0 18
-1 -4 0
% matrix addition
>> x3=a+b
5
Department of ECE BS Lab Manual
x3 =
2 6 2
-1 1 11
0 3 6
% matrix subtraction
>> x4=a-b
x4 =
2 2 -4
-3 1 7
-2 -5 -6
% matrix division
>> x5=a/b
x5 =
% vector division
>> x6=a./b
Warning: Divide by zero.
x6 =
% inverse of matrix
a >> x7=inv(a)
6
Department of ECE BS Lab Manual
x7 =
% transpose of matrix a
>> x8=a'
x8 =
2 -2 -1
4 1 -1
-1 9 0
x9 =
x10 =
8 64 -1
-8 1 729
-1 -1 0
Experiment No.-2
GENERATION OF SIGNALS AND SEQUENCES
AIM: Generate various signals and sequences (periodic and aperiodic) (
ramp,Impulse,unit step,square,sawtooth,triangular sinusoidal and sinc) using
Matlab software.
Software Required:
Matlab software 7.0 and above.
If the signal repeats itself at regular intervals then it is called periodic signal.
Otherwise they are called aperiodic signals.
Ramp sinal:
r(t)= t when t>=0
PROGRAM:
%generation of rampsignal
clc;
clear all;
close all;
8
Department of ECE BS Lab Manual
fs=500;
t=0:1/fs:0.1;
y1=t;
subplot(2,2,1);
plot(t,y1);
xlabel('time');
ylabel('amplitude');
title('ramp signal');
%generation of ramp
sequence subplot(2,2,2);
stem(y1);
xlabel('n');
ylabel('amplitude');
title('ramp sequence');
subplot(2,2,2);
stem(n,y3);
xlabel('n');
ylabel('amplitude');
title('unit step sequence');
plot(t,y6);;
axis([0 0.1 -2 2]);
xlabel('time');
ylabel('amplitude');
title(' triangular wave signal');
%generation of triangular wave sequence
subplot(2,2,4);
stem(y6);
xlabel('n');
ylabel('amplitude');
title('triangular wave sequence');
xlabel('n');
ylabel('amplitude');
title('sinc sequence');
output:
13
Department of ECE BS Lab Manual
14
Department of ECE BS Lab Manual
15
Department of ECE BS Lab Manual
16
Department of ECE BS Lab Manual
Experiment No. -3
BASIC OPERATIONS ON SIGNALS AND SEQUENCES
Software Required:
Matlab software 7.0 and above
.
Theory:
Signal Addition
Multiplication :
Multiplication of two signals can be obtained by multiplying their values at
every instants . z (t) = x (t) y (t)
Time reversal/Folding:
Time reversal of a signal x(t) can be obtained by folding the signal about
t=0. Y(t)=y(-t)
Time shifting: The time shifting of x(n) obtained by delay or advance the
signal in time by using y(n)=x(n+k)
If k is a positive number, y(n) shifted to the right i e the shifting delays the
signal
If k is a negative number, y(n ) it gets shifted left. Signal Shifting advances
the signal
Energy:
E=sum(abs(X).^2)
Average power:
P= (sum(abs(X).^2))/ length(x)
Program:
clc;
clear all;
close all;
t=0:.01:1;
% generating two input
signals x1=sin(2*pi*4*t);
x2=sin(2*pi*8*t);
subplot(2,2,1);
plot(t,x1);
xlabel('time');
ylabel('amplitude');
title('signal1:sine wave of frequency4Hz');
subplot(2,2,2);
plot(t,x2);
xlabel('time');
18
Department of ECE BS Lab Manual
ylabel('amplitude');
title('signal2:sine wave of frequency 8Hz');
% addition of
signals
y1=x1+x2;
subplot(2,2,3);
plot(t,y1);
xlabel('time');
ylabel('amplitude');
title('resultant signal:signal1+signal2');
% multiplication of
signals y2=x1.*x2;
subplot(2,2,4);
plot(t,y2);
xlabel('time');
ylabel('amplitude');
title('resultant signal:dot product of signal1 and signal2');
% scaling of a signal1
A=10;
y3=A*x1;
figure;
subplot(2,2,1);
plot(t,x1);
xlabel('time');
ylabel('amplitude');
title('sine wave of frequency
4Hz') subplot(2,2,2);
plot(t,y3);
xlabel('time');
ylabel('amplitude');
title('amplified input signal1 ');
% folding of a signal1
l1=length(x1);
nx=0:l1-1;
subplot(2,2,3);
plot(nx,x1);
xlabel('nx');
19
Department of ECE BS Lab Manual
ylabel('amplitude');
title('sine wave of frequency4Hz')
y4=fliplr(x1);
nf=-fliplr(nx);
subplot(2,2,4);
plot(nf,y4);
xlabel('nf');
ylabel('amplitude');
title('folded signal');
%shifting of asignal
figure;
t1=0:.01:pi;
x3=8*sin(2*pi*2*t1);
subplot(3,1,1);
plot(t1,x3);
xlabel('time t1');
ylabel('amplitude');
title('sine wave of frequency2Hz');
subplot(3,1,2);
plot(t1+10,x3);
xlabel('t1+10');
ylabel('amplitude');
title('right shifted
signal'); subplot(3,1,3);
plot(t1-10,x3);
xlabel('t1-10');
ylabel('amplitude');
title('left shifted signal');
%operations on sequences
n1=1:1:9;
s1=[1 2 3 0 5 8 0 2 4];
figure; subplot(2,2,1);
stem(n1,s1);
xlabel('n1');
ylabel('amplitude');
title('input sequence1');
20
Department of ECE BS Lab Manual
n2=-2:1:6;
s2=[1 1 2 4 6 0 5 3 6];
subplot(2,2,2);
stem(n2,s2);
xlabel('n2');
ylabel('amplitude');
title('input sequence2');
% addition of
sequences s3=s1+s2;
subplot(2,2,3);
stem(n1,s3);
xlabel('n1');
ylabel('amplitude');
title('sum of two sequences');
% multiplication of sequences
s4=s1.*s2;
subplot(2,2,4);
stem(n1,s4);
xlabel('n1');
ylabel('amplitude');
title('product of two sequences');
% scaling of a sequence
figure;
subplot(2,2,1);
stem(n1,s1);
xlabel('n1');
ylabel('amplitude');
title('input sequence1');
s5=4*s1; subplot(2,2,2);
stem(n1,s5);
xlabel('n1');
ylabel('amplitude');
title('scaled sequence1');
% shifting of a sequence
subplot(2,2,3);
21
Department of ECE BS Lab Manual
stem(n1-2,s1);
xlabel('n1');
ylabel('amplitude');
title('left shifted
sequence1');
subplot(2,2,4);
stem(n1+2,s1);
xlabel('n1');
ylabel('amplitude');
title('right shifted sequence1');
% folding of a
sequence l2=length(s1);
nx1=0:l2-1;
figure;
subplot(2,1,1);
stem(nx1,s1);
xlabel('nx1');
ylabel('amplitude');
title('input sequence1');
s6=fliplr(s1);
nf2=-fliplr(nx1);
subplot(2,1,2);
stem(nf2,s6);
xlabel('nf2');
ylabel('amplitude');
title('folded sequence1');
p1= (sum(abs(z1).^2))/length(z1);
p1
OUTPUT:
e1 =
71
e2 =
4.0388
p1 =
17.7500
p2 =
0.3672
Experiment No.-4
EVEN AND ODD PARTS OF SIGNAL AND SEQUENCE
& REAL AND IMAGINARY PARTS
AIM: Finding even and odd part of the signal and sequence and also find
real and imaginary parts of signal.
Software Required:
Matlab software 7.0 and above.
Theory:
Program:
Clc;
close all;
clear all;
% Even and odd parts of a signal
t=0:.005:4*pi;
x=sin(t)+cos(t); % x(t)=sint(t)+cos(t)
subplot(2,2,1)
plot(t,x)
xlabel('t');
ylabel('amplitude')
title('input signal') y=sin(-
t)+cos( -t) % y=x(-t)
subplot(2,2,2)
plot(t,y)
30
Department of ECE
subplot(
2,2,1);
xlabel('t');
ylabel('amplitude')
title('input signal with t=-
t') z=x+y
subplot(2,2,3)
plot(t,z/2)
xlabel('t');
ylabel('amplitude') title('even
part of the signal') p=x-y
subplot(2,2,4)
plot(t,p/2)
xlabel('t');
ylabel('amplitude'); title('odd
part of the signal');
% Even and odd parts of a sequence
z=[0,2+j*4,-3+j*2,5-j*1,-2-j*4,-j*3,0];
n=-3:3
stem(n,real(zc_even));
xlabel('n');
ylabel('amplitude');
title('real part of the even sequence');
subplot( 2,2,2);
stem(n,imag(zc_even));
xlabel('n');
ylabel('amplitude');
title('imaginary part of the even sequence');
subplot( 2,2,3);
stem(n,real(zc_odd));
xlabel('n');
ylabel('amplitude');
title('real part of the odd
sequence'); subplot( 2,2,4);
stem(n,imag(zc_odd));
xlabel('n');
ylabel('amplitude');
title('imaginary part of the odd sequence');
RESULT: Even and odd part of the signal and sequence is computed.
32
Department of ECE BS Lab Manual
Output:
33
Department of ECE BS Lab Manual
34
Department of ECE BS Lab Manual
35
Department of ECE BS Lab Manual
Experiment No.-5
CONVOLUTION BETWEEN SIGNALS& SEQUENCES
Aim: Write the program for convolution between two signals and also
between two sequences.
Software Required:
Matlab software 7.0 and above.
Theory:
y(n)=T[x(n)]
Program:
clc;
close all;
clear all;
%program for convolution of two
sequences x=input('enter input sequence');
h=input('enter impulse response');
y=conv(x,h);
subplot(3,1,1);
stem(x);
xlabel('n');
ylabel('x(n)');
title('input signal')
subplot(3,1,2);
stem(h);
xlabel('n');
ylabel('h(n)');
title('impulse response')
subplot(3,1,3); stem(y);
xlabel('n');
ylabel('y(n)'); title('linear
convolution')
disp('The resultant signal is');
disp(y)
37
Department of ECE BS Lab Manual
Output:
Experiment No. -6
AUTO CORRELATION AND CROSS CORRELATION
AIM: Write the program to compute Auto correlation and Cross correlation
between signals and sequences.
Software Required:
Mat lab software 7.0 and above
Theory:
Correlations of sequences:
1. Shifting
2. Multiplication
3. Addition
Cross correlation +∞
Autocorrelation
+∞
stem(x);
xlabel('n');
ylabel('x(n)');
title('input sequence');
subplot(2,2,2);
stem(h);
xlabel('n');
ylabel('h(n)');
title('impulse signal');
% cross correlation between two sequences
y=xcorr(x,h);
subplot(2,2,3);
stem(y);
xlabel('n');
ylabel('y(n)');
title(' cross correlation between two sequences ');
% auto correlation of input sequence
z=xcorr(x,x);
subplot(2,2,4);
stem(z);
xlabel('n');
ylabel('z(n)');
title('auto correlation of input sequence');
subplot(2,2,1);
plot(t,x1);
xlabel('t');
ylabel('x1(t)');
title('input signal');
subplot(2,2,2);
plot(t,h1);
xlabel('t');
ylabel('h1(t)');
title('impulse signal');
% cross correlation
subplot(2,2,3);
z1=xcorr(x1,h1);
plot(z1); xlabel('t');
ylabel('z1(t)');
Software Required:
Mat lab software 7.0 and above
Theory:
LINEARITY PROPERTY:
Any system is said to be linear if it satisfies the superposition principal.
superposition principal state that Response to a weighted sum of input
signal equal to the corresponding weighted sum of the outputs of the system
to each of the individual input signals.
Y(n)=T[x(n)]
Y1(n)=T[X1(n)] : Y2(n)=T[X2(n)]
Y3(n)= T [x3(n)]
Program:
clc;
clear all;
close all;
% entering two input sequences and impulse sequence
x1 = input (' type the samples of x1 ');
x2 = input (' type the samples of x2 ');
if(length(x1)~=length(x2))
disp('error: Lengths of x1 and x2 are
different'); return;
end;
h = input (' type the samples of h ');
% length of output sequence
N = length(x1) + length(h) -1;
disp('length of the output signal will be
'); disp(N);
% entering scaling factors
a1 = input (' The scale factor a1 is
'); a2 = input (' The scale factor a2
is '); x = a1 * x1 + a2 * x2;
% response of x and
x1 yo1 = conv(x,h);
y1 = conv(x1,h);
% scaled response of
x1 y1s = a1 * y1;
% response of x2
y2 = conv(x2,h);
% scaled response of
x2 y2s = a2 * y2;
yo2 = y1s + y2s;
disp ('Input signal x1 is '); disp(x1);
disp ('Input signal x2 is '); disp(x2);
disp ('Output Sequence yo1 is ');
disp(yo1); disp ('Output Sequence yo2 is');
disp(yo2); if ( yo1 == yo2 )
disp(' yo1 = yo2. Hence the LTI system is LINEAR ')
end;
Output:
Input signal x2 is
2348
Software Required:
Mat lab software 7.0 and above
Theory:
Program:
clc; clear
all; close
all;
% delayed input
xd = [zeros(1,d), x];
nxd = 0 : length(xd)-1;
49
Department of ECE BS Lab Manual
%delayed output
yd = conv(xd,h);
nyd = 0:length(yd)-1;
disp(' Original Input Signal x(n) is
'); disp(x);
disp(' Delayed Input Signal xd(n) is
'); disp(xd);
disp(' Original Output Signal y(n) is
'); disp(y);
disp(' Delayed Output Signal yd(n) is ');
disp(yd);
xp = [x , zeros(1,d)];
subplot(2,1,1);
stem(nxd,xp);
grid;
xlabel( ' Time Index n ' );
ylabel( ' x(n) ' );
title( ' Original Input Signal x(n) ' );
subplot(2,1,2);
stem(nxd,xd);
grid;
xlabel( ' Time Index n ' );
ylabel( ' xd(n) ' );
title( ' Delayed Input Signal xd(n) ' );
yp = [y zeros(1,d)];
figure;
subplot(2,1,1);
stem(nyd,yp);
grid;
xlabel( ' Time Index n ' );
ylabel( ' y(n) ' );
title( ' Original Output Signal y(n) '
); subplot(2,1,2);
stem(nyd,yd);
grid;
xlabel( ' Time Index n ' );
ylabel( ' yd(n) ' );
title( ' Delayed Output Signal yd(n) ' );
50
Department of ECE BS Lab Manual
Output:
Experiment No. -8
UNIT SAMPLE, UNIT STEP AND SINUSOIDAL RESPONSE OF
THE GIVEN LTI SYSTEM AND VERIFYING ITS STABILITY
AIM: Compute the Unit sample, unit step and sinusoidal response of
the given LTI system and verifying its stability
Software Required:
Mat lab software 7.0 and above
Theory:
A discrete time system performs an operation on an input signal based on
predefined criteria to produce a modified output signal. The input signal x(n)
is the system excitation, and y(n) is the system response. The transform
operation is shown as,
If the input to the system is unit impulse i.e. x(n) = δ(n) then the output
of the system is known as impulse response denoted by h(n) where,
h(n) = T[δ(n)]
we know that any arbitrary sequence x(n) can be represented as a weighted
sum of discrete impulses. Now the system response is given by,
Program:
% verifing stability
figure; zplane(b,a);
Result: The Unit sample, unit step and sinusoidal response of the given
LTI system is computed and its stability verified.
Hence all the poles lie inside the unit circle, so system is stable.
Output:
56
Department of ECE BS Lab Manual
57
Department of ECE BS Lab Manual
58
Department of ECE BS Lab Manual
Experiment No-9
GIBBS PHENOMENON
Program:
clc; clear
all; close
all;
t=0:0.1 :( pi*8);
y=sin(t);
subplot(5,1,1);
plot(t,y);
xlabel('k');
ylabel('amplitude');
title('gibbs
phenomenon'); h=2;
%k=3;
for k=3:2:9
y=y+sin(k*t)/k; %fourier series of sin signal
subplot(5,1,h);
plot(t,y);
xlabel('k');
ylabel('amplitude');
h=h+1;
end
Result: Gibbs phenomenon is verified.
59
Department of ECE BS Lab Manual
Output:
60
Department of ECE BS Lab Manual
Experiment No-10
Software Required:
Matlab software 7.0 and above.
Theory:
Fourier Transform :
Program:
clc; clear
all; close
all;
fs=1000;
N=1024; % length of fft sequence
t=[0:N-1]*(1/fs);
61
Department of ECE BS Lab Manual
% input signal
x=0.8*cos(2*pi*100*t);
subplot(3,1,1); plot(t,x);
ylabel('amplitude');
title('magnitude of fft signal')
%phase spectrum
Xphase=angle(x1)*(180/pi);
subplot(3,1,3);
plot(k,Xphase);
grid;
xlabel('t');
ylabel('angle in degrees');
title('phase of fft signal');
Experiment No-11(a)
AIM: Finding the Laplace transform & Inverse Laplace transform of some
signals.
Software Required:
Matlab software 7.0 and above.
Theory:
Program:
clc; clear
all; close
all;
%representation of symbolic variables
syms f t w s;
%laplace transform of t
f=t;
z=laplace(f);
disp('the laplace transform of f = ');
disp(z);
64
Department of ECE
%inverse laplace
transform y1=ilaplace(z);
disp('the inverse laplace transform of z =
'); disp(y1);
y2=ilaplace(v1);
disp('the inverse laplace transform of v1 =
'); disp(y2);
y3=ilaplace(v2);
disp('the inverse laplace transform of v2 = ');
disp(y3);
x1=11*s^3+52*s^2+86*s+72;
x2=4*s*(s+2)^2*(s+3);
x3=x1/x2;
y4=ilaplace(x3);
disp('the inverse laplace transform of x3 =
'); disp(y4);
BS Lab Manual
Department of ECE BS Lab Manual
Output:
ans =
-(-cos(w)*w+sin(w)*s)/(s^2+w^2)
Experiment No-11(b)
WAVEFORM SYNTHESIS USING LAPLACE TRANSFORMS
Software Required:
Matlab software 7.0 and above.
Theory:
Consider the square wave of period ‘T’which can be represented with unit
step functions as
f(t)=u(t)-2u(t-T/2)+2u(t-T)-2u(t-3T/2)+………..
Program:
clc; clear
all; close
all; syms
s; T=1;
Output:
68
Department of ECE BS Lab Manual
Experiment No-12
LOCATING POLES AND ZEROS IN S-PLANE & Z-PLANE
AIM: Write the program for locating poles and zeros and plotting pole-zero
maps in s-plane and z-plane for the given transfer function.
Software Required:
Matlab software 7.0 and above.
Theory:
Z-transforms
Bilateral Z-transform
Unilateral Z-transform
Example:
Program:
clc; clear
all; close
all;
%enter the numerator and denamenator cofficients in square brackets
num=input('enter the numerator cofficients');
den=input('enter the denamenator cofficients');
%find the transfer function using built-in function 'filt'
H=filt(num,den)
%find locations of
zeros z=zero(H);
disp('zeros are at ');
disp(z);
%find residues,pole locations and gain constant of
H(z) [r p k]=residuez(num,den);
disp('poles are at ');
disp(p);
%plot the pole zero map in z-plane
zplane(num,den);
title('pole-zero map of LTI system in z-plane');
Result : Pole-zero maps are plotted in s-plane and z-plane for the given
transfer function.
70
Department of ECE BS Lab Manual
Output:
Transfer function:
1 - z^-1 + 4 z^-2 + 3.5 z^-3
------------------------------
2 + 3 z^-1 - 2.5 z^-2 + 6 z^-3
poles are at
-2.4874
0.4937 + 0.9810i
0.4937 - 0.9810i
Transfer function:
s^3 - s^2 + 4 s + 3.5
-------------------------
2 s^3 + 3 s^2 - 2.5 s + 6
poles ar at
-2.4874
0.4937 + 0.9810i
0.4937 - 0.9810i
zeros ar at
0.8402 + 2.1065i
0.8402 -
2.1065i -0.6805
71
Department of ECE BS Lab Manual
72
Department of ECE BS Lab Manual
73
Department of ECE BS Lab Manual
Experiment No-13
GENERATION OF GAUSSIAN NOISE
AIM: Write the program for generation of Gaussian noise and computation of
its mean, mean square value, skew, kurtosis and probability distribution
function.
Software Required:
Matlab software 7.0 and above.
Theory:
Program:
clc; clear
all; close
all;
%generates first set of 2000 samples of Gaussian distributed
random numbers
x1=randn(1,2000);
%generates second set of 2000 samples of Gaussian distributed
random numbers
x2=randn(1,2000);
%plot the joint distribution of both the sets using
dot. plot(x1,x2,'.');
title('scatter plot of gaussian distributed random numbers');
%generates two sets of 2000 samples of uniform distributed
random numbers
x3=rand(1,2000);
x4=rand(1,2000);
figure;
plot(x3,x4,'.');
title('scatter plot of uniform distributed random numbers');
figure;
subplot(2,1,1);
%plot the histogram graph of x2
74
Department of ECE BS Lab Manual
hist(x2);
title(' gaussian distribution');
subplot(2,1,2);
%plot the histogram graph of x4
hist(x4);
title(' uniform distribution');
ymu=mean(x2)
ymsq=sum(x2.^2)/length(x2)
ysigma=std(x2)
yvar=var(x2)
yskew=skewness(x2)
ykurt=kurtosis(x2)
Output:
ymu =
0.0172
ymsq =
0.9528
ysigma =
0.9762
yvar =
0.9530
yskew =
-0.0041
ykurt =
2.9381
75
Department of ECE BS Lab Manual
76
Department of ECE BS Lab Manual
77
Department of ECE BS Lab Manual
78
Department of ECE BS Lab Manual
EXP.NO: 14
SAMPLING THEOREM VERIFICATION
Software Required:
Matlab software 7.0 and above.
Theory:
Sampling Theorem:
\A bandlimited signal can be reconstructed exactly if it is sampled at a rate
atleast twice the maximum frequency component in it." Figure 1 shows a
signal g(t) that is bandlimited.
Program:
Clc;
Clear all;
Close all;
t=-10:.01:10;
T=4;
fm=1/T;
x=cos(2*pi*fm*t);
subplot(2,2,1);
plot(t,x);
xlabel('time');
ylabel('x(t)'); title('continous
time signal'); grid;
n1=-4:1:4;
fs1=1.6*fm;
fs2=2*fm;
fs3=8*fm;
x1=cos(2*pi*fm/fs1*n1);
subplot(2,2,2);
stem(n1,x1);
xlabel('time');
ylabel('x(n)');
title('discrete time signal with
fs<2fm'); hold on;
subplot(2,2,2);
plot(n1,x1);
grid; n2=-
5:1:5;
82
Department of ECE BS Lab Manual
x2=cos(2*pi*fm/fs2*n2);
subplot(2,2,3);
stem(n2,x2);
xlabel('time');
ylabel('x(n)');
title('discrete time signal with fs=2fm');
hold on;
subplot(2,2,3);
plot(n2,x2)
grid; n3=-
20:1:20;
x3=cos(2*pi*fm/fs3*n3);
subplot(2,2,4);
stem(n3,x3);
xlabel('time');
ylabel('x(n)');
title('discrete time signal with fs>2fm')
hold on;
subplot(2,2,4);
plot(n3,x3)
grid;
OUTPUT:
84
Department of ECE BS Lab Manual
EXP.No:15
REMOVAL OF NOISE BY AUTO CORRELATION/CROSS
CORRELATION
AIM: Write the program for Removal of noise by using auto correlation.
Software Required:
Matlab software 7.0 and above.
Theory:
T/2
Lim 1/T ∫ S(t)n(t-T) dt=0 for all T
T--∞ -T/2
T/2
Qff(T)= Lim 1/T ∫ f(t)f(t-T) dt
T--∞ -T/2
T/2
= Lim 1/T ∫ [s(t)+n(t)] [s(t-T)+n(t-T)] dt
T--∞ -T/2
85
Department of ECE BS Lab Manual
=Qss(T)+Qnn(T)+Qsn(T)+Qns(T)
The periodic signal s(t) and noise signal n(t) are uncorrelated
Qsn(t)=Qns(t)=0 ;
Then Qff(t)=Qss(t)+Qnn(t)
Program:
clc; clear
all; close
all;
t=0:0.2:pi*8;
%input signal
s=sin(t);
subplot(6,1,1);
plot(s); title('signal
s'); xlabel('t');
ylabel('amplitude');
%generating noise
n = randn([1 126]);
%noisy signal
f=s+n;
subplot(6,1,2)
plot(f);
title('signal f=s+n');
xlabel('t');
ylabel('amplitude');
86
Department of ECE BS Lab Manual
%aucorrelation of input
signal as=xcorr(s,s);
subplot(6,1,3);
plot(as);
title('auto correlation of s');
xlabel('t'); ylabel('amplitude');
%aucorrelation of noise
signal an=xcorr(n,n);
subplot(6,1,4)
plot(an);
title('auto correlation of n');
xlabel('t');
ylabel('amplitude');
%aucorrelation of transmitted
signal cff=xcorr(f,f);
subplot(6,1,5)
plot(cff);
title('auto correlation of
f'); xlabel('t');
ylabel('amplitude');
%aucorrelation of received
signal hh=as+an;
subplot(6,1,6)
plot(hh);
title('addition of as+an');
xlabel('t');
ylabel('amplitude');
EXP.No:16
EXTRACTION OF PERIODIC SIGNAL MASKED BY NOISE USING
CORRELATION
AIM: Write the program for extraction of periodic signal using correlation.
Software Required:
Matlab software 7.0 and above.
Theory:
A signal is masked by noise can be detected either by correlation techniques
or by filtering.Actually, the two techniques are equivalent. The correlation
technique is a measure of extraction of a given signal in the time domain
whereas filtering achieves exactly the same results in frequency domain.
Program:
clear all;
close
all; clc;
t=0:0.1: pi*4;
%input signal1
s=sin(t);
subplot(7,1,1)
plot(s); title('signal
s'); xlabel('t');
ylabel('amplitude');
%input signal2
c=cos(t);
subplot(7,1,2)
plot(c); title('signal
c'); xlabel('t');
ylabel('amplitude');
%signal+noise
f=s+n;
subplot(7,1,3);
plot(f);
title('signal f=s+n');
xlabel('t');
ylabel('amplitude');
%crosscorrelation of signal1&signal2
asc=xcorr(s,c);
subplot(7,1,4)
plot(asc);
title(' correlation of s and c');
xlabel('t');
ylabel('amplitude');
%crosscorrelation of
noise&signal2 anc=xcorr(n,c);
subplot(7,1,5)
plot(anc);
title(' correlation of n and c');
xlabel('t');
ylabel('amplitude');
%crosscorrelation of f&signal2
cfc=xcorr(f,c);
subplot(7,1,6)
plot(cfc);
title(' correlation of f and c');
xlabel('t');
ylabel('amplitude');
%extracting periodic signal
hh=asc+anc;
subplot(7,1,7)
plot(hh);
title('addition of sc+nc');
xlabel('t');
90
Department of ECE BS Lab Manual
ylabel('amplitude');
Output:
92
Department of ECE BS Lab Manual
EXP.No:17
VERIFICATION OF WIENER-KHINCHIN RELATION
Software Required:
Matlab software 7.0 and above.
Theory:
The wiener-khinchin theorem states that the power spectral density of a
wide sense stationary random process is the fourier transform of the
corresponding autocorrelation function.
Continuous case:
Sxx(f)=∫rxx(T)e-j2πft dT
Where rxx(T)=E[x(t)x*(t-
T)]
Discrete case:
Sxx(f)=∑rxx[k]e-j2πkf
Where
rxx[k]=E[x(n)x*(n-k)]
Program:
clc; clear
all; close
all;
t=0:0.1:2*pi;
%input signal
x=sin(2*t);
subplot(3,1,1);
plot(x);
xlabel('time');
ylabel('amplitude');
title('input signal');
%autocorrelation of input signal
xu=xcorr(x,x);
93
Department of ECE BS Lab Manual
%fft of autocorrelation
signal y=fft(xu);
subplot(3,1,2);
plot(abs(y));
xlabel('f');
ylabel('amplitude');
title('fft of autocorrelation of input
signal'); %fourier transform of input signal
y1=fft(x);
%finding the power spectral
density y2=(abs(y1)).^2;
subplot(3,1,3);
plot(y2);
xlabel('f');
ylabel('magnitude');
title('PSD of input signal');
Result:
Output:
95