Expt. No.
: 1
GENERATION OF SIGNALS
AIM:
To generate the following signals using MATLAB2015a
1. Unit impulse signal
2. Unit step signal
3. Unit ramp signal
4. Exponential increasing signal
5. Exponential decreasing signal
6. Sine signal
7. Triangular signal
8. Gaussian signal
9. Parabolic signal
REQUIRED SOFTWARE:
Matlab
MATLAB PROGRAM:
1.Unit impulse signal, Unit step signal, Unit ramp signal:
n=10
t=-n:1:n
i=[zeros(1,n) 1 zeros(1,n)]
subplot(3,1,1)
stem(t,i)
s=[zeros(1,n) 1 ones(1,n)]
subplot(3,1,2)
stem(t,s)
r=[zeros(1,n) 0 1:n]
subplot(3,1,3)
stem(t,r)
2.Exponential
a.increasing signal,
b. decreasing signal
n=10
t=-n:.01:n
einc=exp(t)
subplot(2,1,1)
plot(t,einc)
subplot(2,1,2)
edic=exp(-t)
plot(t,edic)
3. Sine Wave
n=10
t=0:.01:n
f1=150
fs=500
f=f1/fs
s=sin(2*pi*f*t)
plot(t,s)
4. Triangular Wave
n=100
t=0:.1:n
w=.5
y=sawtooth(t,w)
plot(t,y)
5. Parabolic :
n=10
t=-n:.01:n
y=power(t,2)
plot(t,y)
6.Gaussian Waveforms:
n=10
t=-n:.01:n
g=exp(-1*power(t,2))
plot(t,g)
grid on
OUTPUT GRAPH:
Unit impulse and ramp
Triangular wave
Sine wave
Gaussian Function
Exponential function
RESULT & INFERENCE : The signals are created using matlab.
Expt. No.: 2
CONVOLUTION OF SIGNALS
AIM:
To write the programs for finding the linear and circular convolution of two signals using
MATLAB 2015a.
APPARATUS REQUIRED:
Matlab software
MATLAB PROGRAM:
1.PROGRAM FOR LINEAR CONVOLUTION WITH FUNCTION,
clc
clear all
close all
x=input('enter x: ')
h=input('enter h: ')
m=length(x)
n=length(h)
c=m+n-1
t=0:c-1
y=conv(x,h)
stem(t,y)
2.PROGRAM FOR LINEAR CONVOLUTION WITHOUT FUNCTION,
close all
clear all
x=input('Enter x: ')
h=input('Enter h: ')
m=length(x);
n=length(h);
X=[x,zeros(1,n)];
H=[h,zeros(1,m)];
for i=1:n+m-1
Y(i)=0;
for j=1:m
if(i-j+1>0)
Y(i)=Y(i)+X(j)*H(i-j+1);
else
end
end
end
Y
stem(Y);
ylabel('Y[n]');
xlabel('----->n');
title('Convolution of Two Signals without conv function')
3.PROGRAM FOR CIRCULAR CONVOLUTION WITH FUNCTION,
Clc
clear all
close all
x=input('enter x: ')
h=input('enter h: ')
a=length(x)
b=length(h)
if(a>=b)
n=a;
else
n=b;
end
y=cconv(x,h,n)
t=0:n-1
stem(t,y)
OUTPUT
Linear convolution
enter x: [1 2 3 4]
x =1 2 3 4
enter h: [8 6 7 5 1 ]
h =8 6 7 5 1
m=4
n =5
c =8
t =0 1 2 3 4 5 6 7
y =8 22 43 69 56 45 23 4
Linearconvolutionwithoutfunction
Enter x: [1 2 3 4]
x =1 2 3 4
Enter h: [8 6 7 5 1]
h =8 6 7 5 1
Y =8 22 43 69 56 45 23 4
Circular convolution
enter x: [1 2 3 4]
x =1 2 3 4
enter h: [5 6 7 8]
h =5 6 7 8
a =4
b =4
y = 66 68 66 60
t =0 1 2 3
RESULT & INFERENCE:
Convolution of two signals both linear and circular is founded successfully using
function and without function.
Expt. No.: 3
CORRELATION OF SIGNALS
AIM:
To write the program for finding the correlation of two signals using MATLAB 2015a.
APPARATUS REQUIRED:
Matlab software
CORRELATION :
Program:
CROSS CORRELATION & AUTO CORRELATION
clc
clear all
close all
x1=input('function1 = ')
x2=input('function2 = ')
m=length(x1)
n=length(x2)
c=m+n-1
x3=fliplr(x1)
x4=fliplr(x2)
k=0
for i=1:m
for j=1:n
y1(i,j+k)=x1(i)*x4(j)
y2(i,j+k)=x1(i)*x3(j)
y3(i,j+k)=x2(i)*x4(j)
end
k=k+1
end
z1=sum(y1)
z2=sum(y2)
z3=sum(y3)
t=0:c-1
plot(t,z1,'r')
hold on
plot(t,z2,'b')
plot(t,z3,'g')
hold off
legend('cross','auto','auto2')
OUTPUT:
function1 = [1 2 3 4]
x1 =1 2 3 4
function2 = [5 6 7 8]
x2 =5 6 7 8
m=4
n=4
c =7
x3 = 4 3 2 1
x4 = 8 7 6 5
k=0
y1 = 8
y2 = 4
y3 = 40
y1 = 8 7
y2 = 4 3
y3 = 40 35
y1 = 8 7 6
y2 = 4 3 2
y3 = 40 35 30
y1 = 8 7 6 5
y2 = 4 3 2 1
y3 = 40 35 30 25
k= 1
y1 =
8 7 6 5
0 16 0 0
y2 =
4 3 2 1
0 8 0 0
y3 =
40 35 30 25
0 48 0 0
y1 =
8 7 6 5
0 16 14 0
y2 =
4 3 2 1
0 8 6 0
y3 =40 35 30 25
0 48 42 0
y1 =
8 7 6 5
0 16 14 12
y2 =
4 3 2 1
0 8 6 4
y3 =
40 35 30 25
0 48 42 36
y1 =
8 7 6 5 0
0 16 14 12 10
y2 =
4 3 2 1 0
0 8 6 4 2
y3 =
40 35 30 25 0
0 48 42 36 30
k=
y1 =
8 7 6 5 0
0 16 14 12 10
0 0 24 0 0
y2 =
4 3 2 1 0
0 8 6 4 2
0 0 12 0 0
y3 =
40 35 30 25 0
0 48 42 36 30
0 0 56 0 0
y1 =
8 7 6 5 0
0 16 14 12 10
0 0 24 21 0
y2 =
4 3 2 1 0
0 8 6 4 2
0 0 12 9 0
y3 =
40 35 30 25 0
0 48 42 36 30
0 0 56 49 0
y1 =
8 7 6 5 0
0 16 14 12 10
0 0 24 21 18
y2 =
4 3 2 1 0
0 8 6 4 2
0 0 12 9 6
y3 =
40 35 30 25 0
0 48 42 36 30
0 0 56 49 42
y1 =
8 7 6 5 0 0
0 16 14 12 10 0
0 0 24 21 18 15
y2 =
4 3 2 1 0 0
0 8 6 4 2 0
0 0 12 9 6 3
y3 =
40 35 30 25 0 0
0 48 42 36 30 0
0 0 56 49 42 35
k= 3
y1 =
8 7 6 5 0 0
0 16 14 12 10 0
0 0 24 21 18 15
0 0 0 32 0 0
y2 =
4 3 2 1 0 0
0 8 6 4 2 0
0 0 12 9 6 3
0 0 0 16 0 0
y3 =
40 35 30 25 0 0
0 48 42 36 30 0
0 0 56 49 42 35
0 0 0 64 0 0
y1 =
8 7 6 5 0 0
0 16 14 12 10 0
0 0 24 21 18 15
0 0 0 32 28 0
y2 =
4 3 2 1 0 0
0 8 6 4 2 0
0 0 12 9 6 3
0 0 0 16 12 0
y3 =
40 35 30 25 0 0
0 48 42 36 30 0
0 0 56 49 42 35
0 0 0 64 56 0
y1 =
8 7 6 5 0 0
0 16 14 12 10 0
0 0 24 21 18 15
0 0 0 32 28 24
y2 =
4 3 2 1 0 0
0 8 6 4 2 0
0 0 12 9 6 3
0 0 0 16 12 8
y3 =
40 35 30 25 0 0
0 48 42 36 30 0
0 0 56 49 42 35
0 0 0 64 56 48
y1 =
8 7 6 5 0 0 0
0 16 14 12 10 0 0
0 0 24 21 18 15 0
0 0 0 32 28 24 20
y2 =
4 3 2 1 0 0 0
0 8 6 4 2 0 0
0 0 12 9 6 3 0
0 0 0 16 12 8 4
y3 =
40 35 30 25 0 0 0
0 48 42 36 30 0 0
0 0 56 49 42 35 0
0 0 0 64 56 48 40
k=
z1 =
8 23 44 70 56 39 20
z2 =
4 11 20 30 20 11 4
z3 =
40 83 128 174 128 83 40
t=
0 1 2 3 4 5 6
RESULT & INFERENCE : Correlation of two signals if founded successfully.
Expt. No.: 4
SPECTRAL ANALYSIS OF SIGNALS
AIM:
To understand, the frequency components available in the signal
To understand how the noise is affecting the original signal and its analysis in
frequency domain
SYSTEM REQUIREMENTS:
Matlab software
MATLAB PROGRAM:
(i) Generation of multi frequency input:
clear all
close all
clc
n=512;
t=0:100;
f1=50;
f2=100;
f3=150;
f4=250;
fs=1000;
s=sin(2*pi*f1/fs*t)+sin(2*pi*f2/fs*t)+sin(2*pi*f3/fs*t)+sin(2*pi*f4/fs*t);
figure(1);
plot(t,s)
(ii) Frequency plot of the generated input:
sf=fft(s,n)
h=0:fs/n:fs-fs/n
figure(2);
plot(h,abs(sf))
(iii) Adding Noise to the input and frequency response:
sn1=awgn(s,0)
sn2=awgn(s,-10)
sn3=awgn(s,10)
sf1=fft(sn1,n)
sf2=fft(sn2,n)
sf3=fft(sn3,n)
sm1=abs(sf1)
sm2=abs(sf2)
sm3=abs(sf3)
figure(3)
subplot(311)
plot(h,sm1)
subplot(312)
plot(h,sm2)
subplot(313)
plot(h,sm3)
SAMPLE OUTPUT:
s1-10Hz signal
1
0
-1
0 50 100 150 200 250
s2-20Hz signal
1
0
-1
0 50 100 150 200 250
s3-50Hz signal
Magnitude
1
0
-1
0 50 100 150 200 250
Time
s=s1+s2+s3(Sum of the signals)
5
0
-5
0 50 100 150 200 250
Fig.1 Input sinusoids and their sum
Spectra of the sum of the signals
120
100
80
Magnitude
60
40
20
0
0 50 100 150
Frequency
Fig.2 Spectra of the sum of sinusoids
Input signal (Blue) + Noise signal (Red)
4
-2
-4
0 50 100 150 200 250
Spectra of the input signal with noise
150
100
50
0
0 50 100 150
Fig.3 Top: Input signal with noise Bottom: Spectra of the input signal with noise
ACTUAL OUTPUT:
RESULT& INFERENCE:
The spectral anaylysis is completed.
Expt. No.: 5
DESIGN OF IIR BANDPASS ELLIPTICAL FILTER
AIM:
To design an IIR band pass butterworth, Chebyshev type-I and type-II and elliptical
filters using MATLAB R2015.
APPARATUS REQUIRED:
System with MATLAB R2015a.
ALGORITHM:
1. Get the input sinusoids for varying frequencies
2. Get the pass band ripple and stop band attenuation
3. Get the order and filter cut off frequencies
4. Get the sampling frequency
5. Define the IIR band pass elliptical filter and get the filtered output
6. Compute the power spectrum
7. Plot the magnitude responses
MATLAB PROGRAM:
Write a MATLAB program to design an IIR band pass elliptical filter for the given
specifications. Plot the magnitude response and the corresponding power spectral density
output.
Order of the filter N=4
Passband ripple = 0.1dB;
Stop band attenuation = 40dB
Cutoff frequencies fc1=15Hz & fc2=45Hz
Sampling frequency fs = 150Hz
Input frequencies: f1= 10Hz; f2= 20Hz; f3= 40Hz; f4= 60Hz
clear all
close all
clc
n=512;
N=4;
t=0:100;
f1=10;
f2=20;
f3=40;
f4=60;
fs=150;
s=sin(2*pi*f1/fs*t)+sin(2*pi*f2/fs*t)+sin(2*pi*f3/fs*t)+sin(2*pi*f4/fs*t);
figure(1);
plot(t,s);
k1=15;
k2=45;
rp=0.1;
rs=0.2;
figure(2)
%butter
[b1,a1]=butter(N,[k1 k2]*2/fs);
[h1,w1]=freqz(b1,a1,n);
subplot(221)
plot(w1*fs/(2*pi),abs(h1));
%chebyshev type 1
[b2,a2]=cheby1(N,rp,[k1 k2]*2/fs);
[h2,w2]=freqz(b2,a2,n);
subplot(222);
plot(w2*fs/(2*pi),abs(h2));
%chebyshev type 2
[b3,a3]=cheby2(N,rs,[k1 k2]*2/fs);
[h3,w3]=freqz(b3,a3,n);
subplot(223);
plot(w3*fs/(2*pi),abs(h3));
%elliptocal
[b4,a4]=ellip(N,rp,rs,[k1 k2]*2/fs);
[h4,w4]=freqz(b4,a4,n);
subplot(224);
plot(w4*fs/(2*pi),abs(h4));
SAMPLE OUTPUT:
s1-10Hz signal
1
-1
0 50 100 150 200 250
s2-20Hz signal
1
-1
0 50 100 150 200 250
s3-40Hz signal
1
-1
0 50 100 150 200 250
s4-50Hz signal
1
-1
0 50 100 150 200 250
Fig.1 Input sinusoids of varying frequencies
s=s1+s2+s3+s4
4
-1
-2
-3
-4
0 50 100 150 200 250
Fig.2 Sum of the sinusoids
Response of the filter
1
0.9
0.8
0.7
0.6
Gain(dB)
0.5
0.4
0.3
0.2
0.1
0
0 10 20 30 40 50 60 70 80
Frequency(Hz)
Fig.3 Magnitude response of Elliptical BPF
Filtered output
2
Amplitude
-2
-4
0 50 100 150 200 250
Time
Frequency spectrum of the filtered signal
PSD-Power Spectral Density
150
100
50
0
0 10 20 30 40 50 60 70 80
Frequency(Hz)
Fig.4 Filtered output and its frequency spectrum
ACTUAL OUTPUT:
RESULT & INFERENCE:
For elliptical signal
clear all
close all
clc
n=512;
N=4;
t=0:100;
f1=10;
f2=20;
f3=40;
f4=60;
fs=150;
s1=sin(2*pi*f1/fs*t);
s2=sin(2*pi*f2/fs*t);
s3=sin(2*pi*f3/fs*t);
s4=sin(2*pi*f4/fs*t);
figure(1)
subplot(4,1,1)
plot(t,s1)
subplot(4,1,2)
plot(t,s2)
subplot(4,1,3)
plot(t,s3)
subplot(4,1,4)
plot(t,s4)
s=sin(2*pi*f1/fs*t)+sin(2*pi*f2/fs*t)+sin(2*pi*f3/fs*t)+sin(2*pi*f4/fs*t);
figure(2)
plot(t,s);
k1=15;
k2=45;
rp=0.1;
rs=0.2;
[b,a]=ellip(N,rp,rs,[k1 k2]*2/fs);
%for stop band [b,a]=butter(N,[75 220]*2/fs,'stop');
[h,w]=freqz(b,a,n);
figure(3);
plot(w*fs/(2*pi),abs(h));
sf=filter(b,a,s);
c=fft(s,n);
d=fft(sf,n);
e=0:fs/n:fs-fs/n;
figure(4)
subplot(211)
plot(e,abs(c))
subplot(212)
plot(e,abs(d))
Expt. No.: 6
DESIGN OF FIR FILTER USING HAMMING WINDOW
AIM:
To design a FIR filter using Hamming window with MATLAB R2015a.
APPARATUS REQUIRED:
System with MATLAB R2015a.
ALGORITHM:
1. Get the pass band and stop band ripples
2. Get the pass band and stop band edge frequencies
3. Get the sampling frequency.
4. Calculate the order of the filter
5. Find the window coefficients
6. Plot the magnitude responses
MATLAB PROGRAM:
Write a MATLAB program to design a FIR filter for LPF, HPF, BPF, BSF using Hamming
window for the given specification and plot their magnitude responses.
Pass band ripple = 0.02
Stop band ripple = 0.01
Pass band frequency = 1000
Stop band frequency = 1500
Sampling frequency = 5000
clear all
close all
clc
rp=0.02
rs=0.01
fpb=1000
fsb=1500
fs=5000
n=(-20*log10(sqrt(rp*rs))-13)/(14.6*(fsb-fpb)/fs)
N=ceil(n)
if(mod(N,2)>0)
N=N-1
end
W=hamming(N+1)
b1=fir1(N,fpb*2/fs,'low',W)
[h1,w1]=freqz(b1,1,512)
figure(1)
subplot(221)
plot(w1*fs/(2*pi),20*log10(abs(h1)))
b2=fir1(N,fpb*2/fs,'high',W)
[h2,w2]=freqz(b2,1,512)
subplot(222)
plot(w2*fs/(2*pi),20*log10(abs(h2)))
b3=fir1(N,[fpb fsb]*2/fs,'stop',W)
[h3,w3]=freqz(b3,1,512)
subplot(223)
plot(w3*fs/(2*pi),20*log10(abs(h3)))
b4=fir1(N,[fpb fsb]*2/fs,'bandpass',W)
[h4,w4]=freqz(b4,1,512)
subplot(224)
plot(w4*fs/(2*pi),20*log10(abs(h4)))
SAMPLE OUTPUT:
Magnitude response of FIR low pass filter Magnitude response of FIR high pass filter
50 50
0
0
Gain(dB)
Gain(dB)
-50
-50
-100
-150 -100
0 0.5 1 0 0.5 1
(a)Normalized frequency----> (b)Normalized frequency---->
Magnitude response of FIR band pass filter Magnitude response of FIR band stop filter
0 5
0
-50
Gain(dB)
Gain(dB)
-5
-100
-10
-150 -15
0 0.5 1 0 0.5 1
(c)Normalized frequency----> (d)Normalized frequency---->
Fig.1 Magnitude responses of FIR LPF, HPF, BPF and BSF using Hamming window
ACTUAL OUTPUT:
RESULT & INFERENCE:
Fir filter using hamming window are designed successfully.