Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
17 views

Lab DSP

The document contains lab manuals and exercises for a digital signal processing course. It includes questions on Fourier transforms, z-transforms, filtering and convolution. The document contains sample code and equations for students to analyze digital signals and understand fundamental DSP concepts.

Uploaded by

aftab_haris
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

Lab DSP

The document contains lab manuals and exercises for a digital signal processing course. It includes questions on Fourier transforms, z-transforms, filtering and convolution. The document contains sample code and equations for students to analyze digital signals and understand fundamental DSP concepts.

Uploaded by

aftab_haris
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 29

COLLEGE OF ENGINEERING AND

COMPUTING

Department of
ELECTRICAL AND ELECTRONICS
ENGINEERING (EEE)

EEE 472
Digital Signal Processing
LAB MANUAL

INSTRUCTOR: DR. Edriss Ahmed

LAB-1
Page 1
%Q1
w=-10*pi:0.1:10*pi;
x=j*w/1+(j*w);
mag=abs(x);
subplot(2,1,1)
plot(w,mag)
xlabel('x')
ylabel('jw')
title('magnitude')
ph=phase(x);
subplot(2,1,2)
plot(w,ph)
xlabel('x')
ylabel('jw')
title('phase')
figure;

%Q2
t=-10:0.1:10;
x=imag(3-exp(1-j*2*pi)*t);
mag=abs(x);
subplot(2,1,1)
plot(t,mag)
xlabel('x')
ylabel('jw')
title('magnitude')
ph=phase(x);
subplot(2,1,2)

Page 2
plot(t,ph)
xlabel('x')
ylabel('jw')
title('phase')

%Q3
t=-10:0.01:10;
x1=1*sin(4*pi*t+0);
subplot(3,3,1)
plot(t,x1,'r')
xlabel('t')
ylabel('x1(t)')
title('x1')
x2=sqrt(3)*sin(4*pi*t+pi/4);
subplot(3,3,2)
plot(t,x2,'y')
xlabel('t')
ylabel('x2(t)')
title('x2')
x3=x1+x2;
subplot(3,3,3)
plot(t,x3,'b')
xlabel('t')
ylabel('x3(t)')
title('x3')

Page 3
%Q4
t=-10:0.01:10;
a1=1;
a2=1;
a3=1;
w1=4*pi;
w2=sqrt(25)*pi;
w3=sqrt(23)*pi;
q1=0;
q2=pi/4;
q3=pi/6;
x1=a1*sin(w1*t+q1)
subplot(3,3,1)
plot(t,x1,'r')
xlabel('t')
ylabel('x1(t)')
title('x1')
x2=a2*sin(w2*t+q2)
subplot(3,3,2)
plot(t,x2,'b')
xlabel('t')
ylabel('x2(t)')
title('x2')
x3=a3*sin(w3*t+q3)
subplot(3,3,3)
plot(t,x3,'g')
xlabel('t')

Page 4
ylabel('x3(t)')
title('x3')
x4=x1+x2+x3;
subplot(3,3,4)
plot(t,x4,'y')
xlabel('t')
ylabel('x4(t)')
title('x4')

%Q5
t=2:0.1:10000;
x=exp(-2*t).*((sin(3.*t)).^2);
energy=sum(x)*0.01

%Q6
t=-10:0.1:10;
sum=0;
for k=0:6
x=exp(j*(2*pi*k*t/8));
sum=sum+x;
end
r=real(sum);
subplot(3,3,1)
plot(t,r)
xlabel('time')
ylabel('r(t)')

Page 5
title('real part')
i=imag(sum);
subplot(3,3,2)
plot(t,i)
xlabel('time')
ylabel('i(t)')
title('imaginary part')

LAB-2
1)
N = 12;
n=[0:2*N-1];
M=4;
x_M=sin((2*pi*M*n)/N);
subplot(2,2,1)
stem(n,x_M,'filled');
title('x[n]=sin((2*pi*M*n)/N)')

Page 6
xlabel('n')
ylabel('x4[n]')

M=5;
x_M=sin((2*pi*M*n)/N);
subplot(2,2,2)
stem(n,x_M,'filled');
title('x[n]=sin((2*pi*M*n)/N)')
xlabel('n')
ylabel('x5[n]')

M=7;
x_M=sin((2*pi*M*n)/N);
subplot(2,2,3)
stem(n,x_M,'filled');
title('x[n]=sin((2*pi*M*n)/N)')
xlabel('n')
ylabel('x7[n]')

M=10;
x_M=sin((2*pi*M*n)/N);
subplot(2,2,4)
stem(n,x_M,'filled');
title('x[n]=sin((2*pi*M*n)/N)')
xlabel('n')
ylabel('x10[n]')
figure;
-------------------------------------------------------------------------------------------------------------------
2)
N=6;
n=[0:7*N];
x2=2*cos(2*n/N)+cos(3*n/N);
x3=cos(2*pi*n/N)+3*sin(5*(pi/2)*n/N);
subplot(2,1,1)
stem(n,x2)
title('x2[n]')
subplot(2,1,2)
stem(n,x3)
title('x3[n]')
figure;

Page 7
---------------------------------------------------------------------------------------------------------------------
3) a)
nx=[-3:7];
x=[0 0 0 2 0 1 -1 3 0 0 0];
stem(nx,x,'filled')
title('x[n]')
xlabel('n')
ylabel('x[n]')
figure;
b)
n=[-3:7];
x=[2 0 1 -1 3 0];
nx=[0 0 0 x 0 0];
ny1=n+2;
ny2=n-1;
ny3=-n;
ny4=-n+1;
subplot(2,2,1)
stem(ny1,nx,'filled')
xlabel('time')
ylabel('x[n-2]')
title('x[n-2]')
subplot(2,2,2)
stem(ny2,nx,'filled')
xlabel('time')
ylabel('x[n+1]')
title('x[n+1]')
subplot(2,2,3)
stem(ny3, nx, 'filled')
xlabel('time')
ylabel('x[-n]')
title('x[-n]')
subplot(2,2,4)
stem(ny4,nx,'filled')
xlabel('time')
ylabel('x[-n+1]')
title('x[-n+1]')
figure;
---------------------------------------------------------------------------------------------------------------------

4)
n=[0:15];
x1=sin((pi/5)*n);
subplot(2,2,1)

Page 8
stem(n,x1,'filled')
xlabel('n')
ylabel('x1[n]')
title('x1[n]')

x2=cos((3*pi/5)*n);
subplot(2,2,2)
stem(n,x2,'filled')
xlabel('n')
ylabel('x2[n]')
title('x2[n]')

n=[0:32];
x3= sin((pi/4)*n) .* cos((pi/4)*n);
subplot(2,2,3)
stem(n,x3,'filled')
xlabel('n')
ylabel('x3[n]')
title('x3[n]')
figure;

n=[-8:8];
m=[-3:3];
x=2*m+1;
nx=[0 0 0 0 0 x 0 0 0 0 0];
stem(n,nx,'filled')
xlabel('n')
ylabel('x[n]')

LAB-3
n=-10:20;
subplot(311);
u=[ zeros(1,10) 1 zeros(1,20) ];
stem(n,u,'filled');
xlabel('time index N');
ylabel('Amplitude');

Page 9
title('unit sample sequence');
axis([ -10 20 -0.2 1.2]);
grid on

subplot(312);
u=[ zeros(1,10) zeros(1,11) 1 zeros(1,20-11) ];
stem(n,u,'filled');
xlabel('time index N');
ylabel('Amplitude');
title('delayed unit sample sequence');
axis([ -10 20 -0.2 1.2]);
grid on

subplot(313);
ud=[ zeros(1,10) ones(1,21) ];
stem(n,ud,'filled');
xlabel('time index N');
ylabel('Amplitude');
title('unit step sequence');
axis([ -10 20 -0.2 1.2]);
grid on
Ex:1.2
c=-1/12+pi*i/6;
k=2;
n=0:40;
x=k*exp(c*n);
subplot(211);
stem(n,real(x),'filled');

Page 10
xlabel('time index N');
ylabel('Amplitude');
title('real part of complex exp');
grid on
%the rate of growth or decay parameter is the real
part of c
subplot(212);
stem(n,imag(x),'filled');
xlabel('time index N');
ylabel('Amplitude');
title('imag part of complex exp');
grid on
figure;

Ex:1.3
n=0:35;
a=1.2;
k=0.2;
x=k*a.^n;
stem(n,x,'filled');
xlabel('time index N');
ylabel('Amplitude');
title('real exp');
grid on

Page 11
LAB-4
Ex:2.1
n=[0:29];
x=cos(2*pi*n/10);
n1=64;
x1=fft(x,n1);
mag_x1=abs(x1);

Page 12
f1=[0:n1-1]/n1;
subplot(311);
plot(f1,mag_x1,'-x');
title('N=64');
axis([0 1 0 20])

n=[0:29];
x=cos(2*pi*n/10);
n1=128;
x1=fft(x,n1);
mag_x1=abs(x1);
f1=[0:n1-1]/n1;
subplot(312);
plot(f1,mag_x1,'-x');
title('N=128');
axis([0 1 0 20])

n=[0:29];
x=cos(2*pi*n/10);
n1=256;
x1=fft(x,n1);
mag_x1=abs(x1);
f1=[0:n1-1]/n1;
subplot(313);
plot(f1,mag_x1,'-x');
title('N=256');
axis([0 1 0 20])

Page 13
Ex:2.2
clc;
close all;
clear;

n=[0:29];
x =cos(2*pi*n/10);
xx =[x x];
xxx =[x x x];

n1=2^10;

x1=fft(x,n1);
x2=fft(xx,n1);
x3=fft(xxx,n1);

mag_x1=abs(x1);
mag_x2=abs(x2);
mag_x3=abs(x3);

f=[0:n1-1]/n1;

subplot(311);
plot(f,mag_x1);
title('"3" periods');

subplot(312);

Page 14
plot(f,mag_x2);
title('"6" periods');

subplot(313);
plot(f,mag_x3);
title('"9" periods');

LAB-5
Q1)
syms n
x1=0.5^n;
disp('z-transform of 0.5^n is');
x1=ztrans(x1)

%b
x2=1+n*(0.4)^(n-1);
disp('z-transform of 1+n*(0.4)^(n-1) is');
x2=ztrans(x2)

Page 15
Q2)
syms n
syms z
x1=1/(1-(1.5*(1/z))+(0.5*(1/z^2)));
disp('inverse z transform is');
x1=iztrans(x1,z,n)

%b
x2=1/((1-(1/z))*(1+(1/z))^2);
disp('inverse z transform is');
x2=iztrans(x2,z,n)

Q3)
syms n z
x1n=0.4^n;

Page 16
x2n=0.5^n;
x1z=ztrans(x1n);
x2z=ztrans(x2n);
x3z=x1z*x2z;
conv1=iztrans(x3z);
disp('convolution of x1z and x2z is')
simplify(conv1)

deconvx1z=x3z/x1z;
deconvx2z=iztrans(deconvx1z);
disp('deconvolution of x1z is')
simplify(deconvx2z)

deconvx3z=x3z/x2z;
deconvx4z=iztrans(deconvx3z);
disp('deconvolution of x2z is')
simplify(deconvx4z)

Q4)
H=tf('z');
Ts=0.1;
b=[3 2 1];
a=[1 -3 2];
disp('the given tf is ')
H=tf([b],[a],Ts)

[r,p,k]=residue(b,a)
disp('the num and den coefficients extracted from r,p,k,')
[b,a]=residue(r,p,k)

Page 17
Q5)
syms z
a=[1 0.8 0.8];
zeros=roots(a)
b=[1 0 0.49];
poles=roots(b)
h=tf('z');
ts=0.1;
h=tf([a],[b],ts)
zgrid on
pzmap(h)

Q6)
syms z n
h=1/(1-(0.8*(z^-
1))+(0.16*(z^2)));
h=iztrans(h);
simplify(h)
n=15;
b=[0 0 1];
a=[1 -.8 0.16];
[h,n]=impz(b,a,n);
stem(n,h)
xlabel('n')
ylabel('h(n)')

ans= 25*symsum(-r3^(n + 1)/(50*r3 - 60), r3 in RootOf(z3^3 + (25*z3)/4 - 5, z3))

Page 18
LAB-6
Exercise

Page 19
n=0:100;
s1=cos(2*pi*.05*n);
s2=cos(2*pi*.47*n);
x=s1+s2;
m=input('Enter the length of the filter = ')
num=ones(1,m);
y=filter(num,1,x)./m;

subplot(221);
plot(n,s1);
grid on;
xlabel('time (sec)');
ylabel('s1(t)');
title('signal # 1');

subplot(222)
plot(n,s2);
grid on;
xlabel('time (sec)');
ylabel('s2(t)');
title('signal # 2');

subplot(223)
plot(n,x);
grid on;
xlabel('time (sec)');
ylabel('x(t)');
title('Input signal');

Page 20
subplot(224)
plot(n,y);
grid on;
xlabel('time (sec)');
ylabel('y(t)');
title('Output signal');
Q3.1
n=0:100;
Figure 1 M=2
s1=cos(2*pi*.155*n);
s2=cos(2*pi*.617*n);
x=s1+s2;
m=input('Enter the length of the filter = ')
num=ones(1,m);
y=filter(num,1,x)./m;

subplot(221);
plot(n,s1);
grid on;
xlabel('time (sec)');
ylabel('s1(t)');
title('signal # 1');

subplot(222)
plot(n,s2);
grid on;
xlabel('time (sec)');
ylabel('s2(t)');

Page 21
title('signal # 2');

subplot(223)
Figure 2 M=3
plot(n,x);
grid on;
xlabel('time (sec)');
ylabel('x(t)');
title('Input signal');

subplot(224)
plot(n,y);
grid on;
xlabel('time (sec)');
ylabel('y(t)');
title('Output signal');

LAB-7
Program1:

Page 22
x1=input('Enter the first sequence: ');
n1=length(x1);

x2=input('Enter the second sequence: ');


n2=length(x1);

mode=input('enter the mode: ');


y=cconv(x1,x2,mode)
Enter the first sequence: [1 1 2]
Enter the second sequence: [1 2 3 4]
enter the mode: 4

y = 11 11 7 11
*************************************

Enter the first sequence: [3 2 1]


Enter the second sequence: [1 2 3 2 1]
enter the mode: 5

y = 7 9 14 14 10
**************************************

Program2:
x1=input('Enter the first sequence: ');
n1=length(x1);

x2=input('Enter the second sequence: ');


n2=length(x2);

n=max(n1,n2);
x1=[ x1 zeros(1,(n-n1)) ];
Page 23
x2=[ x2 zeros(1,(n-n2)) ];

for nn=0:(n-1)
y(nn+1)=0;
for t=0:(n-1)
k=mod( nn-t ,n );
y(nn+1)=y(nn+1) + x1(t+1)*x2(k+1);
end
end
y

Enter the first sequence: [1 1 2]


Enter the second sequence: [1 2 3 4]

y = 11 11 7 11
*******************************************

Enter the first sequence: [3 2 1]


Enter the second sequence: [1 2 3 2 1]

y= 7 9 14 14 10

LAB-8
LOW Pass Filter
fs=8000;
Page 24
n=50;
w=1200/(fs/2);
b=fir1(n,w,'low');
freqz(b,1,128,8000);
[h,w]=freqz(b,1,128,8000);
subplot(2,1,1)
plot(w,abs(h))
title('Normalized Magnitude Plot')
grid
subplot(2,1,2)
figure(2);
zplane(b,1)
title('zplane')

High Pass Filter


fs=8000;
n=50;
w=1200/(fs/2);

Page 25
b=fir1(n,w,'high');
freqz(b,1,128,8000);
subplot(2,1,2)
figure(2);
[h,w]=freqz(b,1,128,8000);
plot(w,abs(h))
title('Magnitude Plot')
grid
figure(3);
zplane(b,1)
title('zplane')

Multi Band Filter


n=50;
w=[0.2 0.4 0.6];
b=fir1(n,w);

Page 26
freqz(b,1,128,8000);figure(2);
[h,w]=freqz(b,1,128,8000);
plot(w,abs(h))
grid
figure(3);
zplane(b,1)

Band Pass Filter


fs=8000;
n=40;
b=fir1(n,[1200/4000 1800/4000],'bandpass');

Page 27
freqz(b,1,128,8000);figure(2);
[h,w]=freqz(b,1,128,8000);
plot(w,abs(h))
grid
figure(3);
zplane(b,1)

Notch Filter
fs=8000;
n=40;
b=fir1(n,[1500/4000 1550/4000],'stop');

Page 28
freqz(b,1,128,8000);figure(2);
[h,w]=freqz(b,1,128,8000);
plot(w,abs(h))
grid
figure(3);

Page 29

You might also like