0% found this document useful (0 votes)
66 views

Lab Manual For Digital Signal Processing: Masters of Electrical Engineering

The document is a lab manual for digital signal processing that contains 6 practical experiments. The first practical aims to find the z-transformation and inverse z-transformation of various sequences. The second practical finds the frequency response and pole-zero maps of low-pass and high-pass filters. The third practical involves designing analog and digital filters as well as analyzing different window functions. The fourth practical calculates the convolution of two sequences using the conv function and an algorithm.

Uploaded by

Vishal
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
66 views

Lab Manual For Digital Signal Processing: Masters of Electrical Engineering

The document is a lab manual for digital signal processing that contains 6 practical experiments. The first practical aims to find the z-transformation and inverse z-transformation of various sequences. The second practical finds the frequency response and pole-zero maps of low-pass and high-pass filters. The third practical involves designing analog and digital filters as well as analyzing different window functions. The fourth practical calculates the convolution of two sequences using the conv function and an algorithm.

Uploaded by

Vishal
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

LAB MANUAL FOR DIGITAL SIGNAL PROCESSING


MASTERS OF ELECTRICAL ENGINEERING
VISHAL B. RATHOD 06-Jun-12

DATE:-

INDEX
SR NO. 1 DESCRIPTION FIND THE Z-TRANSFORMATION AND INVERSE Z-TRANSFORMATION. PAGE 1 DATE SIGN

FIND FREQUENCY RESPONSE OF LPF, HPF FILTERS AND OBTAIN POLE-ZERO MAP.

TO DESIGN ANALOG FILTER, DIGITAL FILTER AND WINDOW FUNCTION.

10

FIND CONVOLUTION OF TWO SEQUENCES.

20

TO PERFORM MOVING AVERAGE FILTER AND ALSO PERFORM IT FOR SINE WAVE.

25

ii SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

PACTICAL: - 1 AIM:- FIND THE Z-TRANSFORMATION AND INVERSE Z-TRANSFORMATION. PART 1[A] FIND THE Z-TRANSFOR OF THE FOLLOWING. 1. X (n) = 2 u (n) (1/2) ^n u (n). MATLAB FUNCTION:syms n ztrans(2 0-.5^n) OUTPUT:ans = (2*z)/ (z - 1) - z/ (z - 1/2) 4. X (n) = Sin (wn). MATLAB FUNCTION:syms n w ztrans(sin(w*n)) OUTPUT:ans = (z*sin(w))/(z^2 - 2*cos(w)*z + 1)

2. X (n) = 3 (2) ^n 4 (3) ^n. MATLAB FUNCTION:syms n ztrans(2^n*3-3^n*4) OUTPUT:ans = (3*z)/ (z - 2) - (4*z)/ (z - 3)

5. X (n) = a^n Cos (wn). MATLAB FUNCTION:syms n w a ztrans(a^n*cos(w*n)) OUTPUT:ans = -(z*(cos(w) z/a))/(a*(z^2/a^2 (2*z*cos(w))/a + 1))6. X (n) = a^n Cos (wn).

3. X (n) = Cos (wn). MATLAB FUNCTION:syms n w ztrans(cos(w*n)) OUTPUT:ans = (z*(z - cos(w)))/(z^2 - 2*cos(w)*z + 1)

6. X (n) = a^n Sin (wn). MATLAB FUNCTION:syms n w a ztrans(a^n*sin(n*w)) OUTPUT:ans = (z*sin(w))/(a*(z^2/a^2 - (2*z*cos(w))/a + 1)

DATE:-

PART: - 1[B] FIND INVERSE Z-TRANSFORM OF FOLLOWING. [1] X (z) =1/ (1-2*(z) -1) syms n syms z iztrans(z/(z-2)) ans = ans = 2^n 2*2^n + 4*(1/2) ^n [2] X (z) =(6-9*(z-1)/[1-2.5*(z)-1+(z)-2] syms n syms z iztrans((6*(z)^2-9*z)/((z)^2-2.5*z+1))

BY PARTIAL FRACTION EXPANSION

[3] 1/[1-1.5*(z)^-1+0.5(z)^-2] syms n syms z b=[1 0 0] a=[1 -1.5 0.5] [r,p,k]=residuez(b,a)

p = 1.0000 0.5000 k=0

Ans= b= 1 0 0

a = 1.0000 -1.5000 0.5000 r= 2 -1 [4] X(z)=[1+(z)^-1]/[1+(z)^-1+0.5*(z)^-2] syms n syms z b=[1 1 0]


2 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

a=[1 1 0.5] [r,p,k]=residuez(b,a) Ans= b= 1 1 0

syms n syms z b=[1 2 1] a=[1 -1 0.356] [r,p,k]=residuez(b,a)

a = 1.0000 1.0000 0.5000 r = 0.5000 - 0.5000i 0.5000 + 0.5000i p = -0.5000 + 0.5000i -0.5000 - 0.5000i k= 0

Ans= b= a= r= 1 2 1

1.0000 -1.0000 0.3560 -0.9045 - 5.9963i -0.9045 + 5.9963i

p=

0.5000 + 0.3256i 0.5000 - 0.3256i

[5] X(z)=[1+2(z)^-1+(z)^-2]/[1-(z)^1+0.356*(z)^-2]

k=

2.8090

BY POWER SERIES EXPANSION

[6] X(z)=[1+2(z)^-1+(z)^-2]/[1-(z)^-1+0.356*(z)^-2] n=4 b=[1 2 1 zeros(1,n)] a=[1 -1 0.356] [q,r]=deconv(b,a) Ans= n= b= a= 4 1 2 1 0 0 0 0

1.0000 -1.0000 0.3560

3 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

q= r=

1.0000 3.0000 3.6440 2.5760 1.2787

Columns 1 through 6 0 0 0 0 0 0.3617

Column 7 -0.4552

4 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

PRACTICAL: - 2 AIM: - FIND THE FREQUENCY RESPONSE OF LPF AND HPF FILTER. OBTAIN POLE ZERO MAP. [1] FIND FREQUENCY RESPONSE OF LOW PASS FILTER. ONE POLE LPF G(s) = (1-a) / (1 - a*z-1) MATLAB PROGRAM:a=0.8; num=[1-a,0] den=[1,-a] freqz(num,den) RESULT:num = 0.2000 0

den = 1.0000 -0.8000

5 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

[2] FIND FREQUENCY RESPONSE OF LOW PASS FILTER. ONE POLE ONE ZERO LPF G(s)= {(1-a)/(1+a)}*{(1+(a*z-1))/(1-(a*z-1))} MATLAB PROGRAM:a=0.9; num=[1-a,a-a^2] den=[1+a,-a^2-a] freqz(num,den) RESULT:num = 0.1000 0.0900

den = 1.9000 -1.7100

6 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

[3] FIND FREQUENCY RESPONSE OF HIGH PASS FILTER. ONE POLE HPF G(s) = (1-a) / (1+a*z-1) MATLAB PROGRAM:a=1.1; num=[1-a,0] den=[1,a] freqz(num,den)

RESULT:num = -0.1000 0

den = 1.0000 1.1000

7 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

[4] FIND FREQUENCY RESPONSE OF HIGH PASS FILTER. ONE POLE ONE ZERO LPF= POLE AT z = -a ZERO AT Z= 1. G(s)=(z-1)/(z+a) MATLAB PROGRAM:a=1.2; num=[1,-1] den=[1,a] freqz(num,den) RESULT:num =1 -1 den = 1.0000 1.2000

8 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

[5] FOR THE GIVEN FUNCTION OBTAIN PLOE- ZERO DIAGRAM. X (Z) = [1-1.6180Z-1 + Z-2] / [1-1.5161 Z-1 +0.878 Z-2]. MATLAB PROGRAM:num=[1 -1.618 1] den=[1 -1.516 0.878] zplane(num,den) PROGRAM OUTPUT:-

9 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

PRACTICAL:-3 AIM: - TO DESIGN ANALOG FILTER AND DIGITAL FILTER AND WINDOW FUNCTION. PART [A]:- ANALOG FILTER DESIGN [1] For data sampled at 1000 Hz, design a 9th-order high pass Butterworth filter with cutoff frequency of 300 Hz, which corresponds to a normalized value of 0.6: MATLAB PROGRAM:[z,p,k] = butter(9,300/500,'high'); [sos,g] = zp2sos(z,p,k); % Convert to SOS form Hd = dfilt.df2tsos(sos,g); % Create a dfilt object h = fvtool(Hd); % Plot magnitude response set(h,'Analysis','freq') % Display frequency response PROGRAM OUTPUT:-

10 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

[2] For data sampled at 1000 Hz, design a 9th-order low pass Chebyshev Type I filter with 0.5 dB of ripple in the pass band and a pass band edge frequency of 300 Hz, which corresponds to a normalized value of 0.6: MATLAB PROGRAM:[z,p,k] = cheby1(9,0.5,300/500); [sos,g] = zp2sos(z,p,k); % Convert to SOS form Hd = dfilt.df2tsos(sos,g); % Create a dfilt object h = fvtool(Hd) % Plot magnitude response set(h,'Analysis','freq') % Display frequency response PROGRAM OUTPUT:-

11 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

[3] For data sampled at 1000 Hz, design a ninth-order lowpass Chebyshev Type II filter with stopband attenuation 20 dB down from the passband and a stopband edge frequency of 300 Hz, which corresponds to a normalized value of 0.6: MATLAB PROGRAM:[z,p,k] = cheby2(9,20,300/500); [sos,g] = zp2sos(z,p,k); % Convert to SOS form Hd = dfilt.df2tsos(sos,g); % Create a dfilt object h = fvtool(Hd); % Plot magnitude response set(h,'Analysis','freq') % Display frequency response

PROGRAM OUTPUT:-

12 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

[4] For data sampled at 1000 Hz, design a sixth-order lowpass elliptic filter with a passband edge frequency of 300 Hz, which corresponds to a normalized value of 0.6, 3 dB of ripple in the passband, and 50 dB of attenuation in the stopband: MATLAB PROGRAM:[z,p,k] = ellip(6,3,50,300/500); [sos,g] = zp2sos(z,p,k); % Convert to SOS form Hd = dfilt.df2tsos(sos,g); % Create a dfilt object h = fvtool(Hd) % Plot magnitude response set(h,'Analysis','freq') % Display frequency response PROGRAM OUTPUT:-

13 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

PART [B]:- DIGITAL FILTER DESIGN

[1] DESIGN A 48TH-ORDER FIR BANDPASS FILTER WITH PASSBAND 0.35 0.65: MATLAB PROGRAM:b = fir1(48,[0.35 0.65]); freqz(b,1,512) PROGRAM OUTPUT:-

14 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

[2]DESIGN A 30TH-ORDER LOWPASS FILTER AND OVERPLOT THE DESIRED FREQUENCY RESPONSE WITH THE ACTUAL FREQUENCY RESPONSE: MATLAB PROGRAM:f = [0 0.6 0.6 1]; m = [1 1 0 0]; b = fir2(30,f,m); [h,w] = freqz(b,1,128); plot(f,m,w/pi,abs(h)) legend('Ideal','fir2 Designed') title('Comparison of Frequency Response Magnitudes')

PROGRAM OUTPUT:-

15 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

PART [B]:- TO OBTAIN WINDOW FUNCTIONS

[1] CREATE A 64-POINT HAMMING WINDOW AND DISPLAY THE RESULT IN WVTOOL. MATLAB PROGRAM:L=64; wvtool(hamming(L))

PROGRAM OUTPUT:-

16 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

[2] CREATE A 200-POINT KAISER WINDOW WITH A BETA OF 2.5 AND DISPLAY THE RESULT USING WVTOOL

MATLAB PROGRAM:w = kaiser(200,2.5); wvtool(w)

PROGRAM OUTPUT:-

17 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

[3]CREATE A 64-POINT BARTLETT WINDOW AND DISPLAY THE RESULT USING WVTOOL. MATLAB PROGRAM:L=64; wvtool(bartlett(L))

PROGRAM OUTPUT:-

18 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

[4] CREATE A 64-POINT BLACKMAN WINDOW AND DISPLAY THE RESULT USING WVTOOL. MATLAB PROGRAM:L=64; wvtool(blackman(L))

PROGRAM OUTPUT:-

19 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

PRACTICAL:-4 AIM: - FIND THE CONVOLUTION OF TWO SEQUENCES. x (n) = [ 1 , 2 , 3 , 1] and h (n) = [4 , 3 , 2 , 1].

1. USING CONV FUNCTION MATLAB PROGRAM:seq1=input('enter the x(n) array=') %[ 1 2 3 1]; l1=length(seq1)-1 n1=0:1:l1 subplot(3,1,1);stem(n1,seq1) seq2=input(' enter the h(n) array=') %[ 4 3 2 1]; l2=length(seq2)-1 n2=0:1:l2 subplot(3,1,2);stem(n1,seq2) seq3=conv(seq1,seq2) l3=length(seq3)-1 n3=0:1:l3 subplot(3,1,3);stem(n3,seq3) WORKPACE OUTPUT:enter the x(n) array=[1 2 3 1] seq1 = 1 l1 = 3 n1 = 0 1 2 3 2 3 1

enter the h(n) array=[4 3 2 1] seq2 = 4 l2 = 3 n2 = 0 1 2 3 3 2 1

seq3 = 4 l3 = 6 n3 = 0 1 2 3 4 5 6 11 20 18 11 5 1

20 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

PROGRAM OUTPUT:-

2. USING ALGORITHM (WITHOUT CONV FUNCTION) MATLAB PROGRAM:clc; clear all; x= input('input sequence x:') h=input ('input sequense h:') n1= length(x); %finds length of seq x n2= length(h); %finds the length of seq h N= n1+n2-1; %finds the length of convolution m= n2+2*n1; p=1; for v=1:m if v<=n1 h1(v)=0; elseif v>n1+n2 h1(v)=0; else h1(v)=h(p) p=p+1 end
21 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

end nz=n1+1 for n=1:N y(n)=0; for k=1:n1 y(n)= y(n)+x(k)*h1(n+nz-k) end end

PROGRAM OUTPUT:input sequence x:[1 2 3 1] x= 1 2 3 1 0 p= 4 h1 = 0 3 2 1 p= 5 0 0 4 nz = 5 y= 4 0 0 4 3 y= 4 y= 4 0 0 0 4 3 2 1 0 0 0 4 3 2

input sequense h:[4 3 2 1] h= 4 h1 = 0 p= 2 h1 = 0 p= 3 h1 = 0 0

22 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

y= 4 y= 4 y= 4 11 y= 4 11 y= 4 11 y= 4 11 y= 4 11 y= 4 11 20 y= 4 11 20 y= 4 11 20 y= 1 8 2 3

4 11 20 y=

4 11 20 14 y= 4 11 20 18 y= 4 11 20 18 y= 4 11 20 18 y= 4 11 20 18 y= 4 11 20 18 11 y= 4 11 20 18 11 y= 4 11 20 18 11 y= 4 11 20 18 11 y= 4 11 20 18 11 5 3 0 0 8 2 0

23 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

y= 4 11 20 18 11 y= 4 11 20 18 11 y= 5 0 5 0

4 11 20 18 11 y= 4 11 20 18 11

24 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

PRACTICAL: - 5 AIM:-TO PERFORM MOVING AVERAGE FILTER. ALSO PERFORM FOR SINEWAVE. PART [A]:- MOVING AVERAGE FILTER MATLAB PROGRAM: clc; clear all; n=50; % no of sample m=0:1:n-1 s=2*m.*(0.9.^m); % s-uncorrupted signal subplot(4,1,1); stem(m,s) %stem (x,y)plot the data sequence y at the value specified in x xlabel('n'); ylabel('Amplitude of S(n)'); %random noise signal d=rand(n,1)-0.5; % s-randomnoise signaql subplot(4,1,2); stem(m,d); xlabel('n');ylabel('Noise d(n)'); %corrupted signal x=s+d'; subplot(4,1,3); stem(m,x) xlabel('n');ylabel('corrupted signal x(n)'); figure; subplot(2,1,1); plot(m,s,'b',m,d,'r',m,x,'g') xlabel('Time');ylabel('Amplitude of signal'); legend('s[n]','d[n]','x[n]'); M=input('Number of input samples'); b=ones(M,1)/M; y=filter(b,1,x); subplot(2,1,2) plot(m,s,'b',m,y,'r') legend('s[n]','y[n]'); xlabel('Time');ylabel('Amplitude of signal');

25 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

PROGRAM OUTPUT: - :

Number of input samples50

26 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

PART [B]:- MOVING AVERAGE FILTER FOR SINE WAVE WRITE DOWN THE M-FILE FOR THE UP SAMPLING OF A SINUSOIDAL INPUT SIGNAL. TAKE LENGHT OF INPUT SIGNAL = 50. INPUT SIGNAL FREQUENCY = 50 AND SAMPLING RATE = 3. MATLAB PROGRAM:clc; clear all; n=50; % total number of samples %m= 0:1:n-1; x=-pi:(7.28*(pi/180)):pi; s=sin(x); %s=plot(x,sin(x));grid on subplot(4,1,1); stem(x,s) xlabel('n-sample no');ylabel('amplitude of s(n)'); %generate random noise signal d=rand(n,1)-0.5; % d-random noise signal subplot(4,1,2); stem(x,d); xlabel('n');ylabel('Noise d(n)'); %currupted signal w=s+d'; subplot(4,1,3); stem(x,w); xlabel('n');ylabel('currupted signal w(n)'); figure; subplot(2,1,1); plot(x,s,'b',x,d,'r',x,w,'g') xlabel('Time'); ylabel('Amplitude of signal'); legend( 's(n)','d(n)','w(n)'); % filtering of signal M=input('Number of input samples= '); b=ones(M,1)/M; y=filter(b,1,x); subplot(2,1,2); plot(x,s,'b',x,y,'r');

27 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

PROGRAM OUTPUT:-

28 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

DATE:-

SARVAJANIK COLLAGE OF ENGINNERING AND TECHNOLOGY SURAT-GUJARAT SUBJECT: - DIGITAL SIGNAL PROCESSING PREPARED BY:VISHAL B. RATHOD. KRUNAL SHAH. VIDHY MODY. KOMAL GAMIT.

29 SARVAJANIK COLLAGE OF ENGINEERING AND TECHNOLOGY- SURAT

You might also like