+ All Categories

Download - Dsp docfinal

Transcript

1. INTRODUCTION

Every day we use several thirdapplications to perform effects on our images and we useseveral effects on images as compression and enhancement etc.This project deals with the practical implementation of imageas resize of image which changes the size of image usingbipolar interpolation algorithm on images throughimageprocessing toolbox in Mat lab we also used guide toolboxfor building interface and deploy toolbox to make a standaloneapplication compiled on Mat lab gcc compiler.

1.1True color (RGB):- RGB colour model is an additive colour model in which red, green, and blue light are added together invarious ways to reproduce a broad array of colours. The name ofthe model comes from the initials of the three additive primarycolours red, green, and blue. The main purpose of the RGB colour model is for the sensing, representation, and display ofimages in electronic systems, such as televisions and computers, though it has also been used in conventional photography. Before the electronic age, the RGB colour model already had a solid theory behind it, based in human perception of colours.

1.2. Bilinear Interpolation:-bilinear interpolation is an extension of linearInterpolation for interpolating functions of two variables (e.g., x and y) on a regular 2D grid.

1.3Interface:Interface for the program is developed using thematlab code, matlab has an inbuilt tool box called Guide whichis used to draw the inteface when ever the interface iscompletes the tool box automtically generates figure (.fig) ofthe interface, asv and the matlab code the code needs to bemanipulated and the function of each element in the GUI needsto defined manually.

1.4 Deployment: The built interface, figure and soure code arefinally deployed using the deployment toolbox in the matlab.

1

the deployment toolbox automatically deploys the project usingthe predefined compiler if the compinler is not set previouslyusing mex-setup we need to define the compiler. In order todeploy an application the application data shuold be exportedto a new project and the primary ‘.m’ file os given as mainfile and ‘.csv’ and ‘.fig’ are given as support files and theproject is then deployed

2. DESIGN ALGORITHM1.Implementaion of image resize button call back:- In this we are implementing resize of the imagewhich is compression and enhancement of the image . Toresize an image, use the imresize function. When you resizean image, you specify the image to be resized and themagnification factor. To enlarge an image, specify amagnification factor greater than 1. To reduce an image,specify a magnification factor between 0 and 1.

2. Implementation of image choice call back:-This is useful if you want to keep your choices in some central

location so that, for example, you can easily access those choices forvalidation or for building a select form element. 3.Implementation of image write call back :-

2

This callback function enables you to monitor the frames beingacquired by viewing a sample frame periodically.To implementthis function, the callback function acquires a single frame ofdata and displays the acquired frame in a MATLAB® figurewindow. The function also accesses the event structure passedas an argument to display the timestamp of the frame beingdisplayed. The drawnow command in the callback function forcesMATLAB to update the display.

function display_frame(obj,event)

sample_frame = peekdata(obj,1);

imagesc(sample_frame);

drawnow; % force an update of the figure window

abstime = event.Data.AbsTime;

t = fix(abstime);

sprintf('%s %d:%d:%d','timestamp', t(4),t(5),t(6))To see how this function can be used as a callback

4.Image reading:- To import an image from any supportedgraphics image file format, in any of the supported bitdepths, use the imread function. This example reads a truecolor image into the MATLAB workspace as the variable RGB.RGB = imread ('football.jpg');If the image file format uses 8-bit pixels, imread storesthe data in the workspace as a uint8 array. For fileformats that support 16-bit data, such as PNG and TIFF,imread creates a uint16 array.

3

Imread uses two variables to store an indexed image in theworkspace: one for the image and another for itsassociated color map. imread always reads the color mapinto a matrix of class double, even though the image arrayitself may be of class uint8 or uint16.

[X,map] = imread ('trees.tif'); 5.Image saving:-

Imsave creates a Save Image tool in aseparate figure that is associated with the image in thecurrent figure, called the target image. The Save Imagetool displays an interactive file chooser dialog box(shown below) in which you can specify a path andfilename. When you click Save, the Save Image tool writesthe target image to a file using the image file format youselect in the Files of Type menu. imsave uses imwrite tosave the image, using default options.

4

3. IMPLEMENTATION

1.1The domain is defined by the resize of the image.

%FUNCTION 2_IMAGE RESIZE function resizeButton_callback(hObject, eventdata) %Get data img=getappdata(hFigure,'UserData'); img=double(img); oldsize=size(img); H=str2double(get(hWidthEditBox,'String')); W=str2double(get(hHeightEditBox,'String')); newsize=[W H]; %Routine % Scaling factor factor = (oldsize(1:2)-1)./(newsize-1); % Create new grid (foundation for image) u = 0:newsize(1)-1; v = 0:newsize(2)-1; [U, V] = ndgrid(u, v); % Make a conection between the new grid and the old size u = u.*factor(1) + 1; v = v.*factor(2) + 1; % Compute the location of each new point relative to one nearest % neighbor of the original image U = U.*factor(1); U = U - fix(U); V = V.*factor(2); V = V - fix(V);

5

% Perform interpolation element by element U = repmat(U, [1 1 3]); V = repmat(V, [1 1 3]); N = (V-1).*((U-1).*img(floor(u), floor(v), :) - ... U.*img(ceil(u), floor(v), :)) - ... V.*((U-1).*img(floor(u), ceil(v), :) - ... U.*img(ceil(u), ceil(v), :)); N=uint8(N); [H W C]=size(N); hFigure=figure(... 'Units','Pixels',... 'Position',[100 100 W H],... 'Toolbar','none',... 'MenuBar','none',... 'NumberTitle','off',... 'Color',[1 1 1],... 'Name','RESIZED IMAGE'); hAxes=axes(... 'visible','off',... 'Units','Pixels',... 'Position',[0 0 W H],... 'NextPlot','ReplaceChildren',... 'XLimMode','Manual',... 'YLimMode','Manual',... 'XLim',[1 W],... 'YLim',[1 H],... 'YDir','Reverse'); imagesc(N) setappdata(hFigure,'UserData',N); End

1.2 Image choice call back

%FUNCTION 1_IMAGE READ function imageChoice_callback(hObject,eventdata)

img=imread(get(hImageChoice,'String'),'.jpg');

6

% W=width% H=height% C=3 for RGB color images

[H W C]=size(img);oldsize=size(img);hFigure=figure(...'Units','Pixels',...'Position',[200 200 W H],...'Toolbar','none',...'MenuBar','none',...'NumberTitle','off',...'Color',[1 1 1],...'Name','IMAGE RESIZE');

hAxes=axes(...'visible','off',...'Units','Pixels',...'Position',[0 0 W H],...'NextPlot','ReplaceChildren',...'XLimMode','Manual',...'YLimMode','Manual',...'XLim',[1 W],...'YLim',[1 H],...'YDir','Reverse');

imagesc(img);

setappdata(hFigure,'UserData',img);

end

1.3 image write call back function

%FUNCTION 1_IMAGE READ

function imageChoice_callback(hObject,eventdata)

7

img=imread(get(hImageChoice,'String'),'.jpg');

% W=width

% H=height

% C=3 for RGB color images

[H W C]=size(img);

oldsize=size(img);

hFigure=figure(...

'Units','Pixels',...

'Position',[200 200 W H],...

'Toolbar','none',...

'MenuBar','none',...

'NumberTitle','off',...

'Color',[1 1 1],...

'Name','IMAGE RESIZE');

hAxes=axes(...

'visible','off',...

'Units','Pixels',...

'Position',[0 0 W H],...

'NextPlot','ReplaceChildren',...

'XLimMode','Manual',...

'YLimMode','Manual',... 'XLim',[1 W],... 'YLim',[1 H],... 'YDir','Reverse');

8

imagesc(img);

setappdata(hFigure,'UserData',img);

4. RESULTSWe have taken a .jpeg(joint photographers entertainment group) image and it is processed and read into a matrix the effects are performed on the matrix and matrix casted and displayed using imshow function matlab. The two effects performed are compression and enhancement Screen shots:- Given input of the project

9

Output of the project:-

10

11

5. CONCLUSION Image processing toolbox can be employed for generation

of Photoshop Effects easily on mat lab by using severalalgorithms. People with mere knowledge also can buildapplications with interface using guide toolbox on mat lab.

Mat lab also facilitates on applicationsthat can run in stand lone environment using GCC compiler in-built in mat lab. This can be achieved through deploymenttoolbox. Several other effects such as Gaussian Blur,Sharpening , Contrast, Filters etc can be performed usingimage processing tools in mat lab very easily.

12

6. FUTURE SCOPE

This project currently designed to perform only two effects so this can be used to perform the effects likecompression and enhancement by adding functions. This project doesn’t use rapid code iteration so it is taking more time to process high resolution images. In Future we can use rapid code iteration to cope up with time complexity..

13

References

1. Matlab GUI forums.2. DIGITAL IMAGE PROCESSING2nd Edition, ADDISON3. GUIDE toolbox tutorial on Matlab site.4. Gaussian functions from

thilinasameera.wordpress.com

5.Deployment tutorial for gcc compiler

14

7. APPENDIX-1 1. Matlab code for projectfunction Resizeclose all;clc; %FIGUREhFigure=figure(...

15

'Units','Pixels',... 'Position',[500 300 198 348],... 'Toolbar','none',... 'MenuBar','none',... 'NumberTitle','off',... 'Color',[1 1 1],... 'menubar','figure',...... 'toolbar','figure',........ 'Name','IMAGE RESIZE'); %PANELhPanel=uipanel(... 'Parent', hFigure,... 'Units','Pixels',... 'Position',[0 0 198 348],... 'BackgroundColor',[0.3 0 0]); %TEXT STRING_IMAGEhImageChoice=uicontrol(... 'Style','Edit',... 'Parent',hPanel,... 'Units','Pixel',... 'Position',[10 250 180 25],... 'String','car.jpg',... 'BackgroundColor',[1 1 1]); %BUTTON 1_GET IMAGEhButton=uicontrol(... 'Style','pushbutton',... 'Parent',hPanel,... 'Units','Pixels',... 'Position',[25 300 150 20],... 'String','GET IMAGE',... 'BackgroundColor',[0.3 0 0],... 'foregroundColor',[1 1 1],....... 'Callback',@imageChoice_callback); % LABEL_NAME OF IMAGEhImageChoiceText=uicontrol(... 'Style','Text',... 'Parent',hPanel,... 'Units','Pixels',... 'Position',[10 270 180 20],... 'String','Enter the name of your image(.jpg):',... 'foregroundColor',[1 1 1],....... 'BackgroundColor',[0.3 0 0],...

16

'HorizontalAlignment','Center'); %TEXT STRING_ENTER DESIRED WIDTHhWidthEditBox=uicontrol(... 'Style','Edit',... 'Parent',hPanel,... 'Units','Pixel',... 'Position',[10 200 180 25],... 'String','300',... 'BackgroundColor',[1 1 1]); %LABEL_DESIRED WIDTH?hWidthText=uicontrol(... 'Style','Text',... 'Parent',hPanel,... 'Units','Pixels',... 'Position',[10 220 180 20],... 'String','Enter Desired Width (in Pixels)',...S 'foregroundColor',[1 1 1],....... 'BackgroundColor',[0.3 0 0],... 'HorizontalAlignment','Center'); %TEXT STRING_ENTER DESIRED HEIGHThHeightEditBox=uicontrol(... 'Style','Edit',... 'Parent',hPanel,... 'Units','Pixel',... 'Position',[10 150 180 25],... 'String','200',... 'BackgroundColor',[1 1 1]); %LABEL_DESIRED HEIGHT?hHeightText=uicontrol(... 'Style','Text',... 'Parent',hPanel,... 'Units','Pixels',... 'Position',[10 170 180 20],... 'String','Enter Desired Height (in Pixels)',... 'foregroundColor',[1 1 1],....... 'BackgroundColor',[0.3 0 0],... 'HorizontalAlignment','Center'); %BUTTON 2_RESIZE IMAGEhButton2=uicontrol(... 'Style','pushbutton',... 'Parent',hPanel,... 'Units','Pixels',...

17

'Position',[25 120 150 20],... 'String','RESIZE IMAGE',... 'BackgroundColor',[0.3 0 0],... 'foregroundColor',[1 1 1],....... 'Callback',@resizeButton_callback); %TEXT STRING_ENTER THE PATHhImageWriteEditBox=uicontrol(... 'Style','Edit',... 'Parent',hPanel,... 'Units','Pixel',... 'Position',[10 60 180 25],... 'String','C:/s453/My Documents',... 'BackgroundColor',[1 1 1]); %BUTTON 3_SAVE IMAGEhButton3=uicontrol(... 'Style','pushbutton',... 'Parent',hPanel,... 'Units','Pixels',... 'Position',[25 30 150 20],... 'String','SAVE IMAGE',... 'BackgroundColor',[0.3 0 0],... 'foregroundColor',[1 1 1],....... 'Callback',@imageWrite_callback); %LABEL_ENTER THE FILE NAMEhImageWriteText=uicontrol(... 'Style','Text',... 'Parent',hPanel,... 'Units','Pixels',... 'Position',[10 80 180 20],... 'String','Enter a filename',... 'foregroundColor',[1 1 1],....... 'BackgroundColor',[0.3 0 0],... 'HorizontalAlignment','Center'); %HANDLE LISThandle_list=... [hFigure,hPanel,hImageChoice,... hButton,hButton2,hButton3,... hImageChoiceText,... hWidthEditBox,... hWidthText,... hHeightEditBox,... hHeightText,...

18

hImageWriteEditBox,... hImageWriteText]; set(handle_list,... 'Units','Normalized'); %CALLBACK FUNCTIONS %FUNCTION 1_IMAGE READ function imageChoice_callback(hObject,eventdata) img=imread(get(hImageChoice,'String'),'jpg'); % W=width % H=height % C=3 for RGB color images [H W C]=size(img); oldsize=size(img); hFigure=figure(... 'Units','Pixels',... 'Position',[200 200 W H],... 'Toolbar','none',... 'MenuBar','none',... 'NumberTitle','off',... 'Color',[1 1 1],... 'Name','IMAGE RESIZE'); hAxes=axes(... 'visible','off',... 'Units','Pixels',... 'Position',[0 0 W H],... 'NextPlot','ReplaceChildren',... 'XLimMode','Manual',... 'YLimMode','Manual',... 'XLim',[1 W],... 'YLim',[1 H],... 'YDir','Reverse'); imagesc(img); setappdata(hFigure,'UserData',img);

19

end %imageChoice_callback %FUNCTION 2_IMAGE RESIZE function resizeButton_callback(hObject,eventdata) %Get data img=getappdata(hFigure,'UserData'); img=double(img); oldsize=size(img); H=str2double(get(hWidthEditBox,'String')); W=str2double(get(hHeightEditBox,'String')); newsize=[W H]; %Routine % Scaling factor factor = (oldsize(1:2)-1)./(newsize-1); % Create new grid (foundation for image) u = 0:newsize(1)-1; v = 0:newsize(2)-1; [U, V] = ndgrid(u, v); % Make a conection between the new grid and theold size u = u.*factor(1) + 1; v = v.*factor(2) + 1; % Compute the location of each new point relative to one nearest % neighbor of the original image U = U.*factor(1); U = U - fix(U); V = V.*factor(2); V = V - fix(V); % Perform interpolation element by element U = repmat(U, [1 1 3]); V = repmat(V, [1 1 3]); N = (V-1).*((U-1).*img(floor(u), floor(v), :) -... U.*img(ceil(u), floor(v), :)) - ... V.*((U-1).*img(floor(u), ceil(v), :) - ...

20

U.*img(ceil(u), ceil(v), :)); N=uint8(N); [H W C]=size(N); hFigure=figure(... 'Units','Pixels',... 'Position',[100 100 W H],... 'Toolbar','none',... 'MenuBar','none',... 'NumberTitle','off',... 'Color',[1 1 1],... 'Name','RESIZED IMAGE'); hAxes=axes(... 'visible','off',... 'Units','Pixels',... 'Position',[0 0 W H],... 'NextPlot','ReplaceChildren',... 'XLimMode','Manual',... 'YLimMode','Manual',... 'XLim',[1 W],... 'YLim',[1 H],... 'YDir','Reverse'); imagesc(N) setappdata(hFigure,'UserData',N); end %resizeButton_Callback %FUNCTION 3_IMAGE WRITE function imageWrite_callback(hObject, eventdata) F=getappdata(hFigure,'UserData'); H=get(hImageWriteEditBox,'String') imwrite(F,H) end %imageWrite_callback

end %IMAGE RESIZE

21

22

APPENDIX-2

S.NO NAME OF THE PROGRAMM PG.NO1. a)Program to find n-point DFT. 20

b) Program to find n-point IDFT. 232. Program to compute linear convolution of two

sequences.24

3. Program to compute circular convolution of two sequences.

27

4. Program to compute DIT-FFT of 8-point sequence. 295 Program to compute DIF-FFT of 8-point sequence. 31

6.

a)Program to IIR low pass butter worth filters using impulse invariant technique

32

b) Program to IIR high pass butter worth filtersusing impulse invariant technique

34

c) Program to IIR band pass butter worth filtersusing impulse invariant technique.

35

d) Program to IIR band stop butter worth filters using impulse invariant technique.

37

7. a) Program to IIR low pass butter worth filters using bilinear transformation technique

39

b) Program to IIR high pass butter worth filtersusing bilinear transformation technique.

40

c) Program to IIR band pass butter worth using bilinear transformation technique.

42

d) Program to IIR band rejected butter worth filters using bilinear transformation technique.

44

8 a) Program to IIR low pass chebyshev filters using bilinear transformation technique.

46

b) Program to IIR low pass analog chebyshev filters using bilinear transformation technique.

47

C) Program to IIR band pass analog chebyshev filtersusing bilinear transformation technique.

49

d) Program to IIR band rejected analog chebyshevfilters using bilinear transformation technique.

50

9 a) ) Program to IIR low pass chebyshev filters using impulse invariant technique.

53

b) ) Program to IIR high pass chebyshev filters using impulse invariant technique.

54

23

c) ) Program to IIR band pass chebyshev filters using impulse invariant technique.

56

d) ) Program to IIR band rejected chebyshev filters using impulse invariant technique.

57

10 a) Program to analyse FIR low pass filter using window techniques.

61

b) Program to analyse FIR high pass filter using window techniques.

62

c) Program to analyse FIR lband pass filter using window techniques.

65

d) Program to analyse FIR band rejected filter using window techniques.

66

EXPERIMENT-1

N-POINT DFT AND IDFT

EXPT-1(A):

AIM:

TO GENERATE N-POINT DFT FOR THE GIVEN SEQUENCE.

PROGRAM:CLC;CLEAR ALL;CLOSE ALL;X=INPUT ('ENTER THE INPUT SEQUENCE');N=LENGTH(X);X=ZEROS(1,N);FOR K=0:N-1 FOR N=0:N-1 X(K+1)=X(K+1)+(X(N+1)*EXP((-J*2*PI*K*N)/N)); END;END;DISP(X);A=ABS(X);T=0:N-1;SUBPLOT(2,1,1);

24

STEM(T,X);XLABEL('TIME PERIOD');YLABEL('AMPLITUDE');TITLE('INPUT SIGNAL');SUBPLOT(2,1,2);STEM(T,A);XLABEL('TIME PERIOD');YLABEL('AMPLITUDE');TITLE('MAGNITUDE OF OUTPUT SEQUENCE'); OUTPUT:ENTER THE INPUT SEQUENCE[4 5 6 7] 22.0000 -2.0000 + 2.0000I -2.0000 - 0.0000I -2.0000 - 2.0000I

25

EXPT-1(B):AIM:TO GENERATE N-POINT IDFT FOR THE GIVEN SEQUENCE.

PROGRAM:CLC;CLEAR ALL;CLOSE ALL;X=INPUT('ENTER THE INPUT SEQUENCE');N=LENGTH(X);X=ZEROS(1,N);FOR N=0:N-1 FOR K=0:N-1 X(N+1)=(X(N+1)+(X(K+1)*EXP(J*2*PI*K*N/N))/N); END;END;DISP(X);A=ABS(X);T=0:N-1;SUBPLOT(2,1,1);STEM(T,X);XLABEL('TIME PERIOD');YLABEL('AMPLITUDE');

26

TITLE('INPUT SIGNAL');SUBPLOT(2,1,2);STEM(T,A);XLABEL('TIME PERIOD');YLABEL('AMPLITUDE');TITLE('MAGNITUDE OF OUTPUT SEQUENCE');

OUTPUT:ENTER THE INPUT SEQUENCE[1 2 3 4]

2.5000 -0.5000 - 0.5000I -0.5000 + 0.0000I -0.5000 + 0.5000I

27

EXPERIMENT NO-2LINEAR CONVOLUTION USING DFT

AIM:TO WRITE MATLAB TO FIND THE LINEAR CONVOLUTION USING DFT FOR THE GIVEN SEQUENCE.PROGRAM:CLC;CLEAR ALL;CLOSE ALL;X=INPUT('ENTER INPUT SEQUENCE X(N):');H=INPUT('ENTER INPUT SEQUENCE H(N):');L1=LENGTH(X);L2=LENGTH(H);L=L1+L2-1;X1=[X ZEROS(1,L)];H1=[H ZEROS(1,L)];X=ZEROS(1,L);H=ZEROS(1,L);Y=ZEROS(1,L);FOR N=0:L-1; FOR K=0:L-1; X(K+1)=X(K+1)+(X1(N+1)*(EXP((-J*2*PI*K*N)/L))); END;

28

END;DISP(X);FOR N=0:L-1; FOR K=0:L-1; H(K+1)=H(K+1)+(H1(N+1)*(EXP((-J*2*PI*K*N)/L))); END;END;DISP(H);Y=X.*H;DISP(Y);FOR K=0:L-1; FOR N=0:L-1; Y(N+1)=Y(N+1)+(Y(K+1)*(EXP((J*2*PI*K*N)/L))); END;END;Y1=Y/L;DISP(Y1);T=0:L-1;A=ABS(X);B=ABS(H);SUBPLOT(2,2,1);STEM(T,A);XLABEL('TIME PERIOD');YLABEL('AMPLITUDE');TITLE('INPUT SIGNAL');SUBPLOT(2,2,2);STEM(T,B);XLABEL('TIME PERIOD');YLABEL('AMPLITUDE');TITLE('INPUT SIGNAL');SUBPLOT(2,2,3);C=ABS(Y);STEM(T,C);XLABEL('TIME PERIOD');YLABEL('AMPLITUDE');TITLE('OUTPUT SIGNAL');SUBPLOT(2,2,4);D=ABS(Y1);STEM(T,D);XLABEL('TIME PERIOD');YLABEL('AMPLITUDE');TITLE('OUTPUT SIGNAL');

29

OUTPUT:ENTER INPUT SEQUENCE X(N):[1 2 3]

ENTER INPUT SEQUENCE H(N):[1 1]

6.0000 -2.0000 - 2.0000I 2.0000 + 0.0000I -2.0000 + 2.0000I

2.0000 1.0000 - 1.0000I 0 - 0.0000I 1.0000 + 1.0000I

12.0000 -4.0000 - 0.0000I 0.0000 - 0.0000I -4.0000 - 0.0000I

1.0000 - 0.0000I 3.0000 - 0.0000I 5.0000 + 0.0000I 3.0000 + 0.0000I

30

31

EXPERIMENT-3CIRCULAR CONVOLUTION IN TIME DOMAIN AND FREQUENCY

DOMAIN.AIM:TO WRITE MATLAB CODE TO FIND CIRCULAR CONVOLUTION FOR THE GIVEN SEQUENCE.PROGRAM:CLC;CLEAR ALL;CLOSE ALL;X=INPUT('ENTER INPUT SEQUENCE X(N):');H=INPUT('ENTER INPUT SEQUENCE H(N):');L1=LENGTH(X);L2=LENGTH(H);L=MAX(L1,L2);X1=[X ZEROS(1,L)];H1=[H ZEROS(1,L)];X=ZEROS(1,L);H=ZEROS(1,L);Y=ZEROS(1,L);FOR N=0:L-1; FOR K=0:L-1; X(K+1)=X(K+1)+(X1(N+1)*(EXP((-J*2*PI*K*N)/L))); END;END;DISP(X);FOR N=0:L-1; FOR K=0:L-1; H(K+1)=H(K+1)+(H1(N+1)*(EXP((-J*2*PI*K*N)/L))); END;END;DISP(H);Y=X.*H;FOR K=0:L-1; FOR N=0:L-1; Y(N+1)=Y(N+1)+(Y(K+1)*(EXP((J*2*PI*K*N)/L))); END;END;

32

Y1=Y/L;DISP(Y1);T=0:L-1;A=ABS(X);B=ABS(H);SUBPLOT(3,1,1);STEM(T,A);XLABEL('TIME PERIOD');YLABEL('AMPLITUDE');TITLE('INPUT SIGNAL');SUBPLOT(3,1,2);STEM(T,B);XLABEL('TIME PERIOD');YLABEL('AMPLITUDE');TITLE('INPUT SIGNAL');SUBPLOT(3,1,3);D=ABS(Y1);STEM(T,D);XLABEL('TIME PERIOD');YLABEL('AMPLITUDE');TITLE('OUTPUT SIGNAL');

OUTPUT:

ENTER INPUT SEQUENCE X(N):[1 -1 1 0]

ENTER INPUT SEQUENCE H(N):[0 1 1]

1.0000 -0.0000 + 1.0000I 3.0000 + 0.0000I 0.0000 - 1.0000I

2.0000 -1.0000 - 1.0000I 0 + 0.0000I -1.0000 + 1.0000I

1.0000 + 0.0000I 1.0000 - 0.0000I -0.0000 - 0.0000I -0.0000

33

EXPERIMENT-4IMPLEMENTATION OF DIT-FFT

AIM:TO WRITE MATLAB CODE TO FIND 8-POINT DIT FFT FOR THE GIVEN SEQUENCE.PROGRAM:CLC;CLEAR ALL;CLOSE ALL;X0=0;X1=1;X2=0;X3=1;X4=0;X5=1;X6=0;X7=1;W20=1;W40=1;

34

W41=-J;W80=1;W81=-0.707+J*0.707;W82=-J;W84=-0.707-J*0.707;%STAGE1 OUTPUT;A=X0+W20*X4;B=X0-W20*X4;C=X2+W20*X6;D=X2-W20*X6;E=X1+W20*X5;F=X1-W20*X5;G=X3+W20*X7;H=X3-W20*X7;X=[A B C D E F G H];DISP(X);%STAGE2 OUTPUT;A=A+W40*C;B=B+W40*D;C=A-W41*C;D=B-W41*D;E=E+W40*G;F=F+W40*H;G=E-W41*G;H=F-W41*H;Y=[A B C D E F G H];DISP(Y);%STAGE3 OUTPUT;X0=A+E*W80;X1=B+F*W81;X2=C+G*W82;X3=D+H*W84;X4=A-E*W80;X5=B-F*W81;X6=C-G*W82;X7=D-H*W84;Z=[X0 X1 X2 X3 X4 X5 X6 X7];DISP(Z);

OUTPUT:

0 0 0 0 2 0 2 0

35

0 0 0 0 4.0000 0 2.0000 + 2.0000I 0

4.0000 0 2.0000 - 2.0000I 0 -4.0000 0 -2.0000 + 2.0000I 0

EXPERIMENT-5

36

IMPLEMENTATION OF DIF-FFTAIM:TO WRITE MATLAB CODE TO FIND 8-POINT DIF FFT FOR THE GIVEN SEQUENCE.PROGRAM:CLC;CLEAR ALL;CLOSE ALL;X=INPUT('ENTER INPUT SEQUENCE X(N)');W20=1;W40=1;W41=-J;W80=1;W81=0.707-J*0.707;W82=-J;W84=-0.707-J*0.707;%STAGE1 OUTPUT;A=X(1)+X(5);B=X(2)+X(6);C=X(3)+X(7);D=X(4)+X(8);E=(X(1)-X(5))*W80;F=(X(2)-X(6))*W81;G=(X(3)-X(7))*W82;H=(X(4)-X(8))*W84;%STAGE2 OUTPUTA=A+C;B=B+D;C=(A-C)*W40;D=(B-D)*W41;E=E+G;F=F+G;G=(E-G)*W40;H=(F-H)*W41;%STAGE3 OUTPUT;X(1)=A+B;X(2)=E+F;X(3)=C+D;X(4)=G+H;X(5)=(A-B)*W20;X(6)=(E-F)*W20;X(7)=(C-D)*W20;

37

X(8)=(G-H)*W20;X=[X(1) X(2) X(3) X(4) X(5) X(6) X(7) X(8)];DISP(X);OUTPUT:

ENTER INPUT SEQUENCE X(N)[0 1 0 1 0 1 0 1]

4 0 0 0 -4 0 0 0

EXPERIMENT-6IMPLEMENTATION OF IIR BUTTERWORTH FILTERS USING IMPULSE

INVARIANT TECHNIQUE

EXPT-6(A):

AIM:

TO WRITW A MATLAB PROGRAM FOR LOWPASS BUTTERWORTH FILTERS USING IMPULSE INVARIANT TECHNIQUE.

PROGRAM:CLC;CLEAR ALL;CLOSE ALL;ALPHAP=INPUT('ENTER PASSBAND ATTENUATION IN DB:');ALPHAS=INPUT('ENTER STOPBAND ATTENUATION IN DB:');FP=INPUT('ENTER PASS BAND FREQUENCY:');FS=INPUT('ENTER STOP BAND FREQUENCY:');F=INPUT('SAMPLING FREQUENCY:');WP=2*FP/F;WS=2*FS/F;[N,WN]=BUTTORD(WP,WS,ALPHAS,ALPHAP);[B,A]=BUTTER(N,WN,'LOW');DISP(N);DISP(B);DISP(A);W=0:0.01:PI;[H,W]=FREQZ(B,A,W);MAGNITUDE=20*LOG(ABS(H));PHASE=ANGLE(H);SUBPLOT(2,1,1);

38

PLOT(W/PI,MAGNITUDE);XLABEL('NORMALIZED FREQUENCY');YLABEL('GAIN IN DB');SUBPLOT(2,1,2);PLOT(W/PI,PHASE);XLABEL('NORMALIZED FREQUENCY');YLABEL('PHASE');

OUTPUT:ENTER PASSBAND ATTENUATION IN DB:30ENTER STOPBAND ATTENUATION IN DB:0.5ENTER PASS BAND FREQUENCY:1000ENTER STOP BAND FREQUENCY:1500SAMPLING FREQUENCY:8000 10

0.0000 0.0003 0.0013 0.0035 0.0062 0.0074 0.0062 0.0035 0.0013 0.0003 0.0000

1.0000 -4.3613 9.4281 -12.8613 12.0969 -8.1225 3.9189 -1.3353 0.3064 -0.0427 0.0027

39

EXPT-6(B)AIM:

40

TO WRITE A MATLAB PROGRAM FOR HIGHPASS BUTTERWORTH FILTERS USING IMPULSE INVARIANT TECHNIQUE.

PROGRAM:CLC;CLEAR ALL;CLOSE ALL;ALPHAP=INPUT('ENTER PASSBAND ATTENUATION IN DB:');ALPHAS=INPUT('ENTER STOPBAND ATTENUATION IN DB:');FP=INPUT('ENTER PASS BAND FREQUENCY:');FS=INPUT('ENTER STOP BAND FREQUENCY:');F=INPUT('SAMPLING FREQUENCY:');WP=2*FP/F;WS=2*FS/F;[N,WN]=BUTTORD(WP,WS,ALPHAP,ALPHAS);[B,A]=BUTTER(N,WN,'HIGH');DISP(N);DISP(B);DISP(A);W=0:0.01:PI;[H,W]=FREQZ(B,A,W);MAGNITUDE=20*LOG(ABS(H));PHASE=ANGLE(H);SUBPLOT(2,1,1);PLOT(W/PI,MAGNITUDE);YLABEL('GAIN IN DB');XLABEL('NORMALIZED FREQUENCY');TITLE('MAGNITUDE');SUBPLOT(2,1,2);PLOT(W/PI,PHASE);XLABEL('NORMALIZED FREQUENCY');YLABEL('PHASE');

OUTPUT:ENTER PASSBAND ATTENUATION IN DB:0.5ENTER STOPBAND ATTENUATION IN DB:30ENTER PASS BAND FREQUENCY:1500ENTER STOP BAND FREQUENCY:1000SAMPLING FREQUENCY:8000 10

41

0.0271 -0.2707 1.2182 -3.2485 5.6850 -6.8220 5.6850 -3.2485 1.2182 -0.2707 0.0271 1.0000 -3.2489 5.8153 -6.7585 5.5662 -3.3255 1.4483 -0.4501 0.0951 -0.0123 0.0007

EXPT-6(C)AIM:TO WRITW A MATLAB PROGRAM FOR BANDPASS BUTTERWORTH FILTERS USING IMPULSE INVARIANT TECHNIQUE.

PROGRAM:CLC;CLEAR ALL;CLOSE ALL;ALPHAP=INPUT('ENTER PASSBAND ATTENUATION IN DB:');ALPHAS=INPUT('ENTER STOPBAND ATTENUATION IN DB:');WP=[0.2,0.6];WS=[0.1,0.7];[N,WN]=BUTTORD(WP,WS,ALPHAS,ALPHAP);[B,A]=BUTTER(N,WN,'BANDPASS');

42

DISP(N);DISP(B);DISP(A);W=0:0.01:PI;[H,W]=FREQZ(B,A,W);MAGNITUDE=20*LOG(ABS(H));PHASE=ANGLE(H);SUBPLOT(2,1,1);PLOT(W/PI,MAGNITUDE);XLABEL('NORMALIZED FREQUENCY');YLABEL('GAIN IN DB');TITLE('MAGNITUDE');SUBPLOT(2,1,2);PLOT(W/PI,PHASE);XLABEL('NORMALIZED FREQUENCY');YLABEL('PHASE');

OUTPUT:

ENTER PASSBAND ATTENUATION IN DB:50

ENTER STOPBAND ATTENUATION IN DB:0.4 14

0.0001 0 -0.0007 0 0.0046 0 -0.0183 0 0.0502 0 -0.1005 0 0.1507 0 -0.1722 0 0.1507 0 -0.1005 0 0.0502 0 -0.0183 0 0.0046 0 -0.0007 0 0.0001

1.0000 -6.1220 19.6930 -44.7295 81.5768 -126.9333 173.2848 -210.8404 231.5347 -231.6077 212.2135 -178.7141 138.7082 -99.3886 65.7646 -40.1585 22.6043 -11.7031 5.5541 -2.4049 0.9447 -0.3339 0.1051 -0.0290 0.0069 -0.0014 0.0002 -0.0000 0.0000

43

EXPT-6(D)AIM:TO WRITE A MATLAB PROGRAM FOR BAND REJECT BUTTERWORTH FILTERS USING IMPULSE INVARIANT TECHNIQUE.

PROGRAM:CLC;CLEAR ALL;CLOSE ALL;ALPHAP=INPUT('ENTER PASSBAND ATTENUATION IN DB:');ALPHAS=INPUT('ENTER STOPBAND ATTENUATION IN DB:');WP=[0.1,0.7];WS=[0.2,0.6];[N,WN]=BUTTORD(WP,WS,ALPHAP,ALPHAS);[B,A]=BUTTER(N,WN,'STOP');DISP(N);DISP(B);DISP(A);W=0:0.01:PI;[H,W]=FREQZ(B,A,W);

44

MAGNITUDE=20*LOG(ABS(H));PHASE=ANGLE(H);SUBPLOT(2,1,1);PLOT(W/PI,MAGNITUDE);XLABEL('NORMALIZED FREQUENCY');YLABEL('GAINJ IN DB');TITLE('MAGNITUDE');SUBPLOT(2,1,2);PLOT(W/PI,PHASE);XLABEL('NORMALIZED FREQUENCY');YLABEL('PHASE');

OUTPUT:ENTER PASSBAND ATTENUATION IN DB:0.4ENTER STOPBAND ATTENUATION IN DB:50 140.0001 -0.0016 0.0098 -0.0439 0.1558 -0.4576 1.1475 -2.5054 4.8306 -8.3063 12.8342 -17.9128 22.6726 -26.0894 27.3353 -26.0894 22.6726 -17.9128 12.8342 -8.3063 4.8306 -2.5054 1.1475 -0.4576 0.1558 -0.0439 0.0098 -0.0016 0.0001

1.0000 -5.0367 11.2374 -15.7615 19.1430 -24.5155 28.4582 -26.6604 22.7771 -20.2811 16.6935 -11.4031 7.3325 -5.0071 3.0644 -1.5054 0.7330 -0.3988 0.1744 -0.0545 0.0205 -0.0094 0.0023 -0.0002 0.0001 -0.0001 -0.0000 0.0000 0.0000

45

46

EXPERIMENT NO-7IMPLEMENTATION OF IIR BUTTERWORTH FILTERS USING BILINEAR TECHNIQUEEXPT-7(A):AIM:TO WRITE A PROGRAM FOR LOWPASS BUTTERWORTH FILTER USINGBILINEAR TECHNIQUE.PROGRAM:CLC;CLEAR ALL;CLOSE ALL;ALPHAP=INPUT('ENTER PASS BAND ATTENUATION');ALPHAS=INPUT('ENTER STOP BAND ATTENUATION');FP=INPUT('ENTER BASS BAND FREQUENCY');FS=INPUT('ENTER STOP BAND FERQUENCY');F=INPUT('SAMPLING FREQUENCY');WP=2*FP/F;WS=2*FS/F;[N,WN]=BUTTORD(WP,WS,ALPHAS,ALPHAP);[B,A]=BUTTER(N,WN,'LOW');DISP(N);W=0:0.01:PI;DISP(WN);[H,W]=FREQZ(B,A);MAGNITUDE=20*LOG(ABS(H));SUBPLOT(2,1,1);PLOT(W/PI,MAGNITUDE);XLABEL('NORMALIZED FREQUENCY');YLABEL('GAIN IN DB');PHASE=ANGLE(H);SUBPLOT(2,1,2);PLOT(W/PI,PHASE);XLABEL('NORMALIZED FREQUENCY');YLABEL('PHASE');DISP(B);DISP(A);K=5;

47

[B1,A1]=BILINEAR(B,A,K); DISP(B1); DISP(A1);

OUTPUT:ENTER PASS BAND ATTENUATION30ENTER STOP BAND ATTENUATION0.5ENTER BASS BAND FREQUENCY1000ENTER STOP BAND FERQUENCY1500SAMPLING FREQUENCY8000 100.28130.0000 0.0003 0.0013 0.0035 0.0062 0.0074 0.0062 0.0035 0.0013 0.0003 0.00001.0000 -4.3613 9.4281 -12.8613 12.0969 -8.1225 3.9189 -1.3353 0.3064 -0.0427 0.00270.0001 -0.0010 0.0035 -0.0077 0.0111 -0.0109 0.0074 -0.0035 0.0011 -0.0002 0.00001.0000 -10.8716 53.2289 -154.5634 294.7673 -385.7762 350.8858 -219.0143 89.7797 -21.8256 2.3894

EXPT-7(B):AIM:

48

TO WRITE A PROGRAM FOR HIGHPASS BUTTERWORTH FILTER USING BILINEAR TECHNIQUE.PROGRAM:CLC;CLEAR ALL;CLOSE ALL;ALPHAP=INPUT('ENTER PASS BAND ATTENUATION');ALPHAS=INPUT('ENTER STOP BAND ATTENUATION');FP=INPUT('ENTER BASS BAND FREQUENCY');FS=INPUT('ENTER STOP BAND FERQUENCY');F=INPUT('SAMPLING FREQUENCY');WP=2*FP/F;WS=2*FS/F;[N,WN]=BUTTORD(WP,WS,ALPHAP,ALPHAS);[B,A]=BUTTER(N,WN,'HIGH');DISP(N);W=0:0.01:PI;DISP(WN);[H,W]=FREQZ(B,A);MAGNITUDE=20*LOG(ABS(H));SUBPLOT(2,1,1);PLOT(W/PI,MAGNITUDE);XLABEL('NORMALIZED FREQUENCY');YLABEL('GAIN IN DB');PHASE=ANGLE(H);SUBPLOT(2,1,2);PLOT(W/PI,PHASE);XLABEL('NORMALIZED FREQUENCY');YLABEL('PHASE');DISP(B);DISP(A);K=5;[B1,A1]=BILINEAR(B,A,K); DISP(B1); DISP(A1);

OUTPUT:ENTER PASS BAND ATTENUATION0.5ENTER STOP BAND ATTENUATION30ENTER BASS BAND FREQUENCY1500ENTER STOP BAND FERQUENCY1000SAMPLING FREQUENCY8000

49

100.33700.0271 -0.2707 1.2182 -3.2485 5.6850 -6.8220 5.6850 -3.2485 1.2182 -0.2707 0.02711.0000 -3.2489 5.8153 -6.7585 5.5662 -3.3255 1.4483 -0.4501 0.0951 -0.0123 0.00070.0130 -0.1587 0.8728 -2.8445 6.0841 -8.9234 9.0886 -6.3476 2.9093 -0.7902 0.09661.0000 -10.6239 50.8399 -144.3130 269.0882 -344.3837 306.3655 -187.0633 75.0259 -17.8481 1.9124

EXPT-7(C):AIM:TO WRITE A PROGRAM FOR BANDPASS BUTTERWORTH FILTER USING BILINEAR TECHNIQUE.PROGRAM:CLC; CLEAR ALL; CLOSE ALL; ALPHAP=INPUT('ENTER PASS BAND ATTENUATION'); ALPHAS=INPUT('ENTER STOP BAND ATTENUATION'); WP=INPUT('ENTER PASS BAND FREQENCY');

50

WS=INPUT('ENTER STOP BAND FREQUENCY'); [N,WN]=BUTTORD(WP,WS,ALPHAS,ALPHAP); [B,A]=BUTTER(N,WN,'BANDPASS'); DISP(N); W=0:0.01:PI; DISP(WN); [H,W]=FREQZ(B,A); MAGNITUDE=20*LOG(ABS(H)); SUBPLOT(2,1,1); PLOT(W/PI,MAGNITUDE); GRID ON; XLABEL('NORMALIZED FREQUENCY');YLABEL('GAIN IN DB'); PHASE=ANGLE(H); SUBPLOT(2,1,2); PLOT(W/PI,PHASE); GRID ON; XLABEL('NORMALIZED FREQUENCY');YLABEL('PHASE'); DISP(B); DISP(A); K=6; [B1,A1]=BILINEAR(B,A,K); DISP(B1); DISP(A1);

OUTPUT:ENTER PASS BAND ATTENUATION50ENTER STOP BAND ATTENUATION0.4ENTER PASS BAND FREQENCY[0.2 0.6]ENTER STOP BAND FREQUENCY[0.1 0.7] 14 0.1896 0.61700.0001 0 -0.0007 0 0.0046 0 -0.0183 0 0.0502 0 -0.1005 0 0.1507 0 -0.1722 0 0.1507 0 -0.1005 0 0.0502 0 -0.0183 0 0.0046 0 -0.0007 0 0.0001

1.0000 -6.1220 19.6930 -44.7295 81.5768 -126.9333 173.2848 -210.8404 231.5347 -231.6077 212.2135 -178.7141 138.7082 -99.3886 65.7646 -

51

40.1585 22.6043 -11.7031 5.5541 -2.4049 0.9447 -0.3339 0.1051 -0.0290 0.0069 -0.0014 0.0002 -0.0000 0.0000 1.0E+003 *0.0000 -0.0000 0.0000 -0.0003 0.0016 -0.0079 0.0304 -0.0962 0.2543 -0.5684 1.0849 -1.7818 2.5308 -3.1197 3.3442 -3.1197 2.5308 -1.7818 1.0849 -0.5684 0.2543 -0.0962 0.0304 -0.0079 0.0016 -0.0003 0.0000 -0.0000 0.0000 1.0E+007 *0.0000 -0.0000 0.0000 -0.0004 0.0024 -0.0117 0.0465 -0.1515 0.4122 -0.9495 1.8699 -3.1721 4.6590 -5.9458 6.6063 -6.3949 5.3895 -3.9466 2.5023 -1.3666 0.6382 -0.2523 0.0833 -0.0226 0.0049 -0.0008 0.0001 -0.0000 0.0000

52

EXPT-7(D):AIM:TO WRITE A PROGRAM FOR BANDREJECT BUTTERWORTH FILTER USING BILINEAR TECHNIQUE.PROGRAM:CLC; CLEAR ALL; CLOSE ALL; ALPHAP=INPUT('ENTER PASS BAND ATTENUATION'); ALPHAS=INPUT('ENTER STOP BAND ATTENUATION'); WP=INPUT('ENTER PASS BAND FREQENCY'); WS=INPUT('ENTER STOP BAND FREQUENCY'); [N,WN]=BUTTORD(WP,WS,ALPHAP,ALPHAS); [B,A]=BUTTER(N,WN,'STOP'); DISP(N); W=0:0.01:PI; DISP(WN); [H,W]=FREQZ(B,A); MAGNITUDE=20*LOG(ABS(H)); SUBPLOT(2,1,1); PLOT(W/PI,MAGNITUDE); GRID ON; XLABEL('NORMALIZED FREQUENCY');YLABEL('GAIN IN DB'); PHASE=ANGLE(H); SUBPLOT(2,1,2); PLOT(W/PI,PHASE); GRID ON; XLABEL('NORMALIZED FREQUENCY');YLABEL('PHASE'); DISP(B); DISP(A);

53

K=6; [B1,A1]=BILINEAR(B,A,K); DISP(B1); DISP(A1);

OUTPUT:ENTER PASS BAND ATTENUATION0.4ENTER STOP BAND ATTENUATION50ENTER PASS BAND FREQENCY[0.2 0.6]ENTER STOP BAND FREQUENCY[0.1 0.7] 14 0.1896 0.61700.0013 -0.0134 0.0842 -0.3782 1.3421 -3.9417 9.8853 -21.5818 41.6106 -71.5493 110.5506 -154.2954 195.2937 -224.7234 235.4552 -224.7234 195.2937 -154.2954 110.5506 -71.5493 41.6106 -21.5818 9.8853 -3.9417 1.3421 -0.3782 0.0842 -0.0134 0.0013

1.0000 -6.1220 19.6930 -44.7295 81.5768 -126.9333 173.2848 -210.8404 231.5347 -231.6077 212.2135 -178.7141 138.7082 -99.3886 65.7646 -40.1585 22.6043 -11.7031 5.5541 -2.4049 0.9447 -0.3339 0.1051 -0.0290 0.0069 -0.0014 0.0002 -0.0000 0.0000 1.0E+004 *0.0000 -0.0000 0.0000 -0.0004 0.0023 -0.0118 0.0477 -0.1586 0.4410 -1.0391 2.0951 -3.6412 5.4835 -7.1806 8.1927 -8.1498 7.0637 -5.3236 3.4766 -1.9571 0.9428 -0.3848 0.1313 -0.0368 0.0082 -0.0014 0.0002 -0.0000 0.0000 1.0E+007 *0.0000 -0.0000 0.0000 -0.0004 0.0024 -0.0117 0.0465 -0.1515 0.4122 -0.9495 1.8699 -3.1721 4.6590 -5.9458 6.6063 -6.3949 5.3895 -3.9466 2.5023 -1.3666 0.6382 -0.2523 0.0833 -0.0226 0.0049 -0.0008 0.0001 -0.0000 0.0000

54

EXPERIMENT NO-8IMPLEMENTATION OF IIR CHEBYSHEV FILTERS USING BILINEAR

TRANSFORMATION TECHNIQUEEXPT-8(A)AIM:

TO WRITE A MATLAB CODE FOR LOWPASS CHEBYSHEV FILTERUSING BILINEAR TRANSFORMATION TECHNIQUE

PROGRAM:CLC;CLEAR ALL;

55

CLOSE ALL;ALPHAP=INPUT('ENTER PASSBAND ATTENUATION IN DB:');ALPHAS=INPUT('ENTER STOPBAND ATTENUATION IN DB:');FP=INPUT('ENTER PASS BAND FREQUENCY:');FS=INPUT('ENTER STOP BAND FREQUENCY:');F=INPUT('SAMPLING FREQUENCY:');WP=2*FP/F;WS=2*FS/F;[N,WN]=CHEB1ORD(WP,WS,ALPHAS,ALPHAP);[B,A]=CHEBY1(N,ALPHAP,WN,'LOW');DISP(N);DISP(B);DISP(A);W=0:0.01:PI;[H,W]=FREQZ(B,A,W);MAGNITUDE=20*LOG(ABS(H));PHASE=ANGLE(H);SUBPLOT(2,1,1);PLOT(W/PI,MAGNITUDE);XLABEL('NORMALIZED FREQUENCY');YLABEL('GAIN IN DB');SUBPLOT(2,1,2);PLOT(W/PI,PHASE);XLABEL('NORMALIZED FREQUENCY');YLABEL('PHASE');K=5;[B1,A1]=BILINEAR(B,A,K);DISP(B1); DISP(A1);OUTPUT:ENTER PASSBAND ATTENUATION IN DB:30ENTER STOPBAND ATTENUATION IN DB:0.5ENTER PASS BAND FREQUENCY:1000ENTER STOP BAND FREQUENCY:1500SAMPLING FREQUENCY:8000 5 1.0E-003 * 0.0195 0.0977 0.1955 0.1955 0.0977 0.0195 1.0000 -4.2244 7.7858 -7.7622 4.1855 -0.9841

1.0E-003 *

56

0.0486 -0.1987 0.3252 -0.2661 0.1088 -0.0178 1.0000 -5.8900 13.9117 -16.4715 9.7770 -2.3277

EXPT-8(B)AIM:TO WRITE A MATLAB CODE FOR HIGHPASS CHEBYSHEV FILTER USING BILINEAR TRANSFORMATION TECHNIQUEPROGRAM:CLC;CLEAR ALL;CLOSE ALL;ALPHAP=INPUT('ENTER PASSBAND ATTENUATION IN DB:');ALPHAS=INPUT('ENTER STOPBAND ATTENUATION IN DB:');FP=INPUT('ENTER PASS BAND FREQUENCY:');FS=INPUT('ENTER STOP BAND FREQUENCY:');F=INPUT('SAMPLING FREQUENCY:');WP=2*FP/F;WS=2*FS/F;[N,WN]=CHEB1ORD(WP,WS,ALPHAP,ALPHAS);[B,A]=CHEBY1(N,ALPHAP,WN,'HIGH');DISP(N);DISP(B);DISP(A);

57

W=0:0.01:PI;[H,W]=FREQZ(B,A,W);MAGNITUDE=20*LOG(ABS(H));PHASE=ANGLE(H);SUBPLOT(2,1,1);PLOT(W/PI,MAGNITUDE);XLABEL('NORMALIZED FREQUENCY');YLABEL('GAIN IN DB');SUBPLOT(2,1,2);PLOT(W/PI,PHASE);XLABEL('NORMALIZED FREQUENCY');YLABEL('PHASE');K=5;[B1,A1]=BILINEAR(B,A,K);DISP(B1);DISP(A1);

OUTPUT:ENTER PASSBAND ATTENUATION IN DB:0.5ENTER STOPBAND ATTENUATION IN DB:30ENTER PASS BAND FREQUENCY:1500ENTER STOP BAND FREQUENCY:1000SAMPLING FREQUENCY:8000 5 0.0809 -0.4046 0.8091 -0.8091 0.4046 -0.0809 1.0000 -0.4716 1.0261 0.0426 0.2323 0.0980

0.0496 -0.3031 0.7410 -0.9057 0.5535 -0.1353 1.0000 -5.0548 10.2631 -10.4591 5.3487 -1.0978

58

EXPT-8(C)AIM:TO WRITE A MATLAB CODE FOR BANDPASS CHEBYSHEV FILTER USING BILINEAR TRANSFORMATION TECHNIQUE.PROGRAM:CLC;CLEAR ALL;CLOSE ALL;ALPHAP=INPUT('ENTER PASSBAND ATTENUATION IN DB:');ALPHAS=INPUT('ENTER STOPBAND ATTENUATION IN DB:');WP=[0.2,0.6];WS=[0.1,0.7];[N,WN]=CHEB1ORD(WP,WS,ALPHAS,ALPHAP);[B,A]=CHEBY1(N,ALPHAP,WN,'BANDPASS');DISP(N);DISP(B);DISP(A);W=0:0.01:PI;[H,W]=FREQZ(B,A,W);MAGNITUDE=20*LOG(ABS(H));

59

PHASE=ANGLE(H);SUBPLOT(2,1,1);PLOT(W/PI,MAGNITUDE);XLABEL('TIME PERIOD');YLABEL('AMPLITUDE');TITLE('MAGNITUDE');SUBPLOT(2,1,2);PLOT(W/PI,PHASE);XLABEL('TIME PERIOD');YLABEL('AMPLITUDE');TITLE('PHASE');K=5;[B1,A1]=BILINEAR(B,A,K);DISP(B1);DISP(A1);

OUTPUT:ENTER PASSBAND ATTENUATION IN DB:50ENTER STOPBAND ATTENUATION IN DB:0.4 8

1.0E-004 * 0.0078 0 -0.0628 0 0.2197 0 -0.4394 0 0.5493 0 -0.4394 0 0.2197 0 -0.0628 0 0.0078

1.0000 -4.9435 15.9259 -37.2359 71.3487 -114.2230 158.5757 -191.4668 204.2520 -191.4089 158.4794 -114.1183 71.2609 -37.1779 15.8958 -4.9324 0.9975

0.0000 -0.0000 0.0001 -0.0007 0.0022 -0.0054 0.0099 -0.0142 0.0160 -0.0142 0.0099 -0.0054 0.0022 -0.0007 0.0001 -0.0000.0000

1.0E+004 * 0.0001 -0.0017 0.0133 -0.0655 0.2248 -0.5709 1.1089 -1.6808 2.0093 -1.9006 1.4179 -0.8255 0.3677 -0.1211 0.0278 -0.0040 0.0003

60

EXPT-8(D)AIM:TO WRITE A MATLAB CODE FOR BANDREJECT CHEBYSHEV FILTER USING BILINEAR TRANSFORMATION TECHNIQUE.PROGRAM:CLC;CLEAR ALL;CLOSE ALL;ALPHAP=INPUT('ENTER PASSBAND ATTENUATION IN DB:');ALPHAS=INPUT('ENTER STOPBAND ATTENUATION IN DB:');WP=[0.2,0.6];WS=[0.1,0.7];[N,WN]=CHEB1ORD(WP,WS,ALPHAP,ALPHAS);[B,A]=CHEBY1(N,ALPHAP,WN,'STOP');DISP(N);DISP(B);DISP(A);

61

W=0:0.01:PI;[H,W]=FREQZ(B,A,W);MAGNITUDE=20*LOG(ABS(H));PHASE=ANGLE(H);SUBPLOT(2,1,1);PLOT(W/PI,MAGNITUDE);XLABEL('TIME PERIOD');YLABEL('AMPLITUDE');TITLE('MAGNITUDE');SUBPLOT(2,1,2);PLOT(W/PI,PHASE);XLABEL('TIME PERIOD');YLABEL('AMPLITUDE');TITLE('PHASE');K=5;[B1,A1]=BILINEAR(B,A,K);DISP(B1);DISP(A1);

OUTPUT:ENTER PASSBAND ATTENUATION IN DB:0.4ENTER STOPBAND ATTENUATION IN DB:50 8 0.0094 -0.0572 0.2277 -0.6337 1.4019 -2.5043 3.7605 -4.7562 5.1548 -4.7562 3.7605 -2.5043 1.4019 -0.6337 0.2277 -0.0572 0.0094

1.0000 -2.9531 3.8085 -4.0356 5.5437 -5.6323 3.2133 -2.3192 2.6537 -1.1087 -0.1519 -0.4544 0.5524 0.0652 -0.0166 -0.2141 0.1023

0.0073 -0.1239 0.9877 -4.9105 17.0405 -43.7683 86.0705 -132.1885 160.2383 -153.8213 116.5467 -68.9650 31.2446 -10.4770 2.4523 -0.3580 0.0246

1.0E+004 * 0.0001 -0.0017 0.0129 -0.0627 0.2117 -0.5274 1.0035 -1.4876 1.7366 -1.6016

62

1.1631 -0.6581 0.2845 -0.0908 0.0202 -0.0028 0.0002

63

EXPERIMENT-9IMPLEMENTATION OF IIR CHEBYSHEV FILTERS USING IMPULSE

INVARIANT TECHNIQUEEXPT-9(A):AIM:TO WRITE A PROGRAM FOR LOW PASS CHEBYSHEV FILTER USING IMPULSE INVARIANT TECHNIQUE.PROGRAM:CLC; CLEAR ALL; CLOSE ALL; ALPHAP=INPUT('ENTER PASS BAND ATTENUATION'); ALPHAS=INPUT('ENTER STOP BAND ATTENUATION'); FP=INPUT('ENTER PASS BAND FREQENCY'); FS=INPUT('ENTER STOP BAND FREQUENCY'); F=INPUT('SAMPLING FREQUENCY'); WP=2*FP/F; WS=2*FS/F; [N,WN]=CHEB1ORD(WP,WS,ALPHAS,ALPHAP); [B,A]=CHEBY1(N,ALPHAP,WP,'LOW'); DISP(N); W=0:0.01:PI; DISP(WN); [H,W]=FREQZ(B,A); MAGNITUDE=20*LOG(ABS(H)); SUBPLOT(2,1,1); PLOT(W/PI,MAGNITUDE); GRID ON; XLABEL('NORMALIZED FREQUENCY'); YLABEL('GAIN IN DB'); PHASE=ANGLE(H); SUBPLOT(2,1,2); PLOT(W/PI,PHASE); GRID ON; XLABEL('NORMALIZED FREQUENCY');

64

YLABEL('PHASE'); DISP(B); DISP(A); K=5; [B1,A1]=IMPINVAR(B,A); DISP(B1); DISP(A1);OUTPUT:ENTER PASS BAND ATTENUATION30ENTER STOP BAND ATTENUATION0.5ENTER PASS BAND FREQENCY1000ENTER STOP BAND FREQUENCY1500SAMPLING FREQUENCY8000 5 0.2500 1.0E-003 * 0.0195 0.0977 0.1955 0.1955 0.0977 0.0195 1.0000 -4.2244 7.7858 -7.7622 4.1855 -0.9841 0.0002 0.0014 -0.0030 0.0014 0.0012 -0.0013 1.0000 -10.2740 44.6560 -103.0373 127.0403 -68.3332

65

EXPT-9(B):AIM:TO WRITE A PROGRAM FOR HIGH PASS CHEBYSHEV FILTER USINGIMPULSE INVARIANT TECHNIQUE.PROGRAM:CLC; CLEAR ALL; CLOSE ALL; ALPHAP=INPUT('ENTER PASS BAND ATTENUATION'); ALPHAS=INPUT('ENTER STOP BAND ATTENUATION'); FP=INPUT('ENTER PASS BAND FREQENCY'); FS=INPUT('ENTER STOP BAND FREQUENCY'); F=INPUT('SAMPLING FREQUENCY'); WP=2*FP/F; WS=2*FS/F; [N,WN]=CHEB1ORD(WP,WS,ALPHAP,ALPHAS); [B,A]=CHEBY1(N,ALPHAP,WP,'HIGH'); DISP(N); W=0:0.01:PI; DISP(WN); [H,W]=FREQZ(B,A); MAGNITUDE=20*LOG(ABS(H)); SUBPLOT(2,1,1); PLOT(W/PI,MAGNITUDE); GRID ON; XLABEL('NORMALIZED FREQUENCY'); YLABEL('GAIN IN DB'); PHASE=ANGLE(H); SUBPLOT(2,1,2); PLOT(W/PI,PHASE); GRID ON; XLABEL('NORMALIZED FREQUENCY'); YLABEL('PHASE'); DISP(B); DISP(A); [B1,A1]=IMPINVAR(B,A); DISP(B1); DISP(A1);

OUTPUT:ENTER PASS BAND ATTENUATION0.5ENTER STOP BAND ATTENUATION30

66

ENTER PASS BAND FREQENCY1500ENTER STOP BAND FREQUENCY1000SAMPLING FREQUENCY8000 5 0.3750 0.0809 -0.4046 0.8091 -0.8091 0.4046 -0.0809 1.0000 -0.4716 1.0261 0.0426 0.2323 0.0980 -0.2855 1.2970 -2.6915 2.7358 -1.0475 -0.1297 1.0000 -4.3307 8.9686 -10.1075 6.1870 -1.6025

EXPT-9(C):AIM:TO WRITE A PROGRAM FOR BAND PASS CHEBYSHEV FILTER USINGIMPULSE INVARIANT TECHNIQUE.PROGRAM:CLC; CLEAR ALL; CLOSE ALL;

67

ALPHAP=INPUT('ENTER PASS BAND ATTENUATION'); ALPHAS=INPUT('ENTER STOP BAND ATTENUATION'); WP=INPUT('ENTER PASS BAND FREQENCY'); WS=INPUT('ENTER STOP BAND FREQUENCY'); [N,WN]=CHEB1ORD(WP,WS,ALPHAS,ALPHAP); [B,A]=CHEBY1(N,ALPHAP,WN,'BANDPASS'); DISP(N); W=0:0.01:PI; DISP(WN); [H,W]=FREQZ(B,A); MAGNITUDE=20*LOG(ABS(H)); SUBPLOT(2,1,1); PLOT(W/PI,MAGNITUDE); GRID ON; XLABEL('NORMALIZED FREQUENCY'); YLABEL('GAIN IN DB'); PHASE=ANGLE(H); SUBPLOT(2,1,2); PLOT(W/PI,PHASE); GRID ON; XLABEL('NORMALIZED FREQUENCY'); YLABEL('PHASE'); DISP(B); DISP(A); [B1,A1]=IMPINVAR(B,A); DISP(B1); DISP(A1); OUTPUT:ENTER PASS BAND ATTENUATION50ENTER STOP BAND ATTENUATION0.4ENTER PASS BAND FREQENCY[0.2 0.6]ENTER STOP BAND FREQUENCY[0.1 0.7] 80.2000 0.60001.0E-004 *0.0078 0 -0.0628 0 0.2197 0 -0.4394 0 0.5493 0 -0.4394 0 0.2197 0 -0.0628 0 0.0078

1.0000 -4.9435 15.9259 -37.2359 71.3487 -114.2230 158.5757 -191.4668 204.2520 -191.4089

68

158.4794 -114.1183 71.2609 -37.1779 15.8958 -4.9324 0.99750.0000 -0.0001 0.0008 -0.0047 0.0180 -0.0474 0.0868 -0.1072 0.0805 -0.0206 -0.0253 0.0323 -0.0171 0.0040 0.0004 -0.0005 0.0001

1.0E+004 *0.0001 -0.0017 0.0135 -0.0709 0.2692 -0.7771 1.7630 -3.2044 4.7182 -5.6539 5.5084 -4.3316 2.7083 -1.3101 0.4674 -0.1115 0.0140

EXPT-9(D):AIM:TO WRITE A PROGRAM FOR BAND REJECT CHEBYSHEV FILTER USING IMPULSE INVARIANT TECHNIQUE.

69

PROGRAM:CLC; CLEAR ALL; CLOSE ALL; ALPHAP=INPUT('ENTER PASS BAND ATTENUATION'); ALPHAS=INPUT('ENTER STOP BAND ATTENUATION'); WP=INPUT('ENTER PASS BAND FREQENCY'); WS=INPUT('ENTER STOP BAND FREQUENCY'); [N,WN]=CHEB1ORD(WP,WS,ALPHAP,ALPHAS); [B,A]=CHEBY1(N,ALPHAP,WN,'STOP'); DISP(N); W=0:0.01:PI; DISP(WN); [H,W]=FREQZ(B,A); MAGNITUDE=20*LOG(ABS(H)); SUBPLOT(2,1,1); PLOT(W/PI,MAGNITUDE); GRID ON; XLABEL('NORMALIZED FREQUENCY'); YLABEL('GAIN IN DB'); PHASE=ANGLE(H); SUBPLOT(2,1,2); PLOT(W/PI,PHASE); GRID ON; XLABEL('NORMALIZED FREQUENCY'); YLABEL('PHASE'); DISP(B); DISP(A); [B1,A1]=IMPINVAR(B,A); DISP(B1); DISP(A1);

OUTPUT:ENTER PASS BAND ATTENUATION0.4ENTER STOP BAND ATTENUATION50ENTER PASS BAND FREQENCY[0.2 0.6]ENTER STOP BAND FREQUENCY[0.1 0.7] 80.2000 0.60000.0094 -0.0572 0.2277 -0.6337 1.4019 -2.5043 3.7605 -4.7562 5.1548 -4.7562

70

3.7605 -2.5043 1.4019 -0.6337 0.2277 -0.0572 0.0094

1.0000 -2.9531 3.8085 -4.0356 5.5437 -5.6323 3.2133 -2.3192 2.6537 -1.1087 -0.1519 -0.4544 0.5524 0.0652 -0.0166 -0.2141 0.1023

1.0E+003 *-0.0000 0.0004 -0.0043 0.0255 -0.1044 0.3107 -0.6961 1.1998 -1.6101 1.6922 -1.3912 0.8857 -0.4261 0.1473 -0.0326 0.0032 0.0002

1.0E+004 *0.0001 -0.0020 0.0188 -0.1087 0.4349 -1.2705 2.8020 -4.7578 6.2951 -6.5298 5.3128 -3.3690 1.6395 -0.5945 0.1521 -0.0247 0.0019

71

72

EXPERIMENT-10IMPLEMENTATION OF FIR FILTERS

EXPT-10(A)AIM:IMPLEMENTATION OF LOW PASS FIR FILTER USING WINDOWS.PROGRAM:CLC;CLEAR ALL;CLOSE ALL;N=INPUT('ENTER ORDER OF FILTER');FC=INPUT('ENTER SAMPLING FREQUENCY:');F=INPUT('FREQUENCY');WC=2*FC/F;WR=RECTWIN(N+1);WH=HAMMING(N+1);WB=BLACKMAN(N+1);WK=KAISER(N+1,5);B=FIR1(N,WC,'LOW',WR);W=0:0.01:PI;[H,W]=FREQZ(B,1,W);M=20*LOG(ABS(H));PLOT(W/PI,M,'R');HOLD ON;B=FIR1(N,WC,'LOW',WH);W=0:0.01:PI;[H,W]=FREQZ(B,1,W);M=20*LOG(ABS(H));PLOT(W/PI,M,'G');HOLD ON;B=FIR1(N,WC,'LOW',WB);W=0:0.01:PI;[H,W]=FREQZ(B,1,W);M=20*LOG(ABS(H));PLOT(W/PI,M,'B');HOLD ON;B=FIR1(N,WC,'LOW',WK);W=0:0.01:PI;[H,W]=FREQZ(B,1,W);

73

M=20*LOG(ABS(H));PLOT(W/PI,M,'M');XLABEL('FREQUENCY');YLABEL('GAIN IN DB');TITLE('MAGNITUDE RESPONSE');HOLD OFF;

OUTPUT:enter order of filter20enter sampling frequency:300frequency2000

EXPT-10(b)AIM:Implementation of high pass FIR filter using windows.PROGRAM:clc;clear all;

74

close all;n=input('enter order of filter');fc=input('enter sampling frequency:');f=input('frequency');wc=2*fc/f;wr=rectwin(n+1);wh=hamming(n+1);wb=blackman(n+1);wk=kaiser(n+1,5);b=fir1(n,wc,'high',wr);w=0:0.01:pi;[h,w]=freqz(b,1,w);m=20*log(abs(h));plot(w/pi,m,'r');hold on;b=fir1(n,wc,'high',wh);w=0:0.01:pi;[h,w]=freqz(b,1,w);m=20*log(abs(h));plot(w/pi,m,'g');hold on;b=fir1(n,wc,'high',wb);w=0:0.01:pi;[h,w]=freqz(b,1,w);m=20*log(abs(h));plot(w/pi,m,'b');hold on;b=fir1(n,wc,'high',wk);w=0:0.01:pi;[h,w]=freqz(b,1,w);m=20*log(abs(h));plot(w/pi,m,'y');xlabel('frequency');ylabel('gain in db');title('magnitude response');hold off;

OUTPUT:enter order of filter20enter sampling frequency:300frequency2000

75

Expt-10(c)AIM:Implementation of band pass FIR filter using windows.PROGRAM:clc;clear all;close all;n=input('enter order of filter');fp=input('enter passband frequeency:');fs=input('stop band frequency:');f=input('enter sampling frequency:');wp=2*fp/f;ws=2*fs/f;wc=[wp ws];wr=rectwin(n+1);wh=hamming(n+1);wb=blackman(n+1);wk=kaiser(n+1,5);b=fir1(n,wc,'bandpass',wr);w=0:0.01:pi;

76

[h,w]=freqz(b,1,w);m=20*log(abs(h));plot(w/pi,m,'r');hold on;b=fir1(n,wc,'bandpass',wh);w=0:0.01:pi;[h,w]=freqz(b,1,w);m=20*log(abs(h));plot(w/pi,m,'g');hold on;b=fir1(n,wc,'bandpass',wb);w=0:0.01:pi;[h,w]=freqz(b,1,w);m=20*log(abs(h));plot(w/pi,m,'b');hold on;b=fir1(n,wc,'bandpass',wk);w=0:0.01:pi;[h,w]=freqz(b,1,w);m=20*log(abs(h));plot(w/pi,m,'m');xlabel('frequency');ylabel('gain in db');title('magnitude response');hold off;

OUTPUT:enter order of filter20enter passband frequeency:100stop band frequency:300enter sampling frequency:1000

77

EXPT-10(d)AIM:Implementation of band reject FIR filter using windows.PROGRAM:clc;clear all;close all;n=input('enter order of filter');fp=input('enter passband frequeency:');fs=input('stop band frequency:');f=input('enter sampling frequency:');wp=2*fp/f;ws=2*fs/f;wc=[wp ws];wr=rectwin(n+1);wh=hamming(n+1);wb=blackman(n+1);wk=kaiser(n+1,5);b=fir1(n,wc,'stop',wr);w=0:0.01:pi;[h,w]=freqz(b,1,w);

78

m=20*log(abs(h));plot(w/pi,m,'r');hold on;b=fir1(n,wc,'stop',wh);w=0:0.01:pi;[h,w]=freqz(b,1,w);m=20*log(abs(h));plot(w/pi,m,'g');hold on;b=fir1(n,wc,'stop',wb);w=0:0.01:pi;[h,w]=freqz(b,1,w);m=20*log(abs(h));plot(w/pi,m,'b');hold on;b=fir1(n,wc,'stop',wk);w=0:0.01:pi;[h,w]=freqz(b,1,w);m=20*log(abs(h));plot(w/pi,m,'m');xlabel('frequency');ylabel('gain in db');title('magnitude response');hold off;

OUTPUT:enter order of filter20enter passband frequeency:100stop band frequency:300enter sampling frequency:1000

79

RESULT:Hence the FIR filters are designed using windows

technique.le('magnitude');

80

81


Top Related