HOME                        ELECTRONICS

DOWNLOAD THE MATLAB(.m) FILES

% VERIFICATION OF SAMPLING THEOREM

fs=input('ENTER THE FREQUENCY OF THE SIGNAL TO BE SAMPLED');

fm=input('ENTER THE SAMPLING FREQUENCY');

t=0:fs/fm:1;

stem(t,sin(2*pi*t));

title('VERIFICATION OF SAMPLING THEOREM')

xlabel('t-->')

ylabel('Amplitude-->')

% CIRCULAR CONVOLUTION USING DEFINITION & ALSO VERIFICATION USING DFT

x1=[1,2,2];

x2=[1,2,3,4];

n1=length(x1);

n2=length(x2);

subplot(2,2,1);

stem(x1);

title('INPUT SEQUENCE 1')

xlabel('n-->')

ylabel('x1[n]-->')

subplot(2,2,2);

stem(x2);

title('INPUT SEQUENCE 2')

xlabel('n-->')

ylabel('x2[n]-->')

N=max(n1,n2);

x1=[x1,zeros(1,N-n1)];

x2=[x2,zeros(1,N-n2)];

 

 

% USING THE FORMULA

for (i=0:1:N-1)

sum=0;

for (j=0:1:N-1)

m=mod((i-j),N);

sum=sum+x1(j+1)*x2(m+1);

end

y1(i+1)=sum;

end

subplot(2,2,3);

stem(n,y1);

title('CIRCULAR CONVOLUTION USING FORMULA')

xlabel('n-->')

ylabel('y1[n]-->')

% USING DFT

x1f=fft(x1);

x2f=fft(x2);

y2f=x1f.*x2f;

y2=ifft(y2f);

subplot(2,2,4);

stem(n,y2);

title('CIRCULAR CONVOLUTION USING DFT')

xlabel('n-->')

ylabel('y2[n]-->')

% DESIGN OF BUTTERWORTH FILTER USING BILINEAR TRANSFROMATION

wp=1500; % PASSBAND FREQUENCY

ws=3000; % STOPBAND FREQUENCY

fsam=10000; % SAMPLING FREQUENCY

w1=2*wp/fsam; % NORMALIZING

w2=2*ws/fsam;

rp=1; % PASSBAND RIPPLE

rs=40; % STOPBAND RIPPLE

[N,WN]=buttord(wp,ws,rp,rs,'s');

[b,a]=butter(N,WN,'s');

[z,p,k]=tf2zp(b,a);

[zd,pd,kd]=bilinear(z,p,k,fsam);

[b,a]=zp2tf(zd,pd,kd);

[y,n]=freqz(b,a,1024);

figure;

plot(fsam*n/(2*pi),angle(y));

title('Plot of Phase Response of Butterworth Filter')

ylabel('Angle-->')

figure;

plot(fsam*n/(2*pi),abs(y));

title('Plot of Magnitude Response of Butterworth Filter')

ylabel('Amplitude-->')

%DESIGN OF CHEBYSHEV FILTER USING BLT

wp=1500; % PASSBAND FREQUENCY

ws=3000; % STOPBAND FREQUENCY

fs=10000; % SAMPLING FREQUENCY

w1=2*wp/fs;

w2=2*ws/fs;

rp=1; % PASSBAND RIPPLE

rs=40; % STOPBAND RIPPLE

[N,WN]=cheb1ord(wp,ws,rp,rs,'s');

[b,a]=cheby1(N,rp,WN,'s');

[z,p,k]=tf2zp(b,a);

[zd,pd,kd]=bilinear(z,p,k,fs);

[b,a]=zp2tf(zd,pd,kd);

[y,n]=freqz(b,a,1024);

plot(fs*n/(2*pi),abs(y));

title('PLOT OF MAGNITUDE RESPONSE')

ylabel('AMPLITUDE')

figure;

plot(fs*n/(2*pi),angle(y));

title('PLOT OF PHASE RESPONSE')

ylabel('ANGLE')

% Linear Convolution Of Two Sequences

x=input('Enter The First Sequence : ');

h=input('Enter The Second Sequence : ');

y1=conv(x,h);

subplot(2,1,1);

stem(x);

title('INPUT SEQUENCE 1')

xlabel('n-->');

ylabel('x[n]');

subplot(2,1,2);

stem(h);

title('INPUT SEQUENCE 2')

xlabel('n-->');

ylabel('h[n]');

figure;

subplot(3,1,1);

stem(y1);

title('LINEAR CONVOLUTION OF x[n] & h[n]')

xlabel('n-->');

ylabel('y[n]');

 

% LINEAR CONVOLUTION USING CIRCULAR CONVOLUTION

nx=length(x);

nh=length(h);

n=nx+nh-1;

x=[x,zeros(1,n-nx)];

h=[h,zeros(1,n-nh)];

N=length(x);

xf=fft(x,N);

hf=fft(h,N);

y2f=xf.*hf;

y2=ifft(y2f);

i=1:1:N;

subplot(3,1,2);

stem(i,y2);

title('LINEAR CONVOLUTION OF x[n] & h[n] USING CIRCULAR CONVOLUTION')

xlabel('n-->');

ylabel('y2[n]');

 

% CIRCULAR CONVOLUTION

n1=max(nx,nh);

xf=fft(x,n1);

hf=fft(h,n1);

y3f=xf.*hf;

y3=ifft(y3f);

i=1:1:n1;

subplot(3,1,3);

stem(i,y3);

title('CIRCULAR CONVOLUTION OF x[n] & h[n]')

xlabel('n-->');

ylabel('y3[n]');

% CIRCULAR CONVOLUTION USING DEFINITION & ALSO VERIFICATION USING DFT

x1=[1,2,2];

x2=[1,2,3,4];

n1=length(x1);

n2=length(x2);

subplot(2,2,1);

stem(x1);

title('INPUT SEQUENCE 1')

xlabel('n-->')

ylabel('x1[n]-->')

subplot(2,2,2);

stem(x2);

title('INPUT SEQUENCE 2')

xlabel('n-->')

ylabel('x2[n]-->')

N=max(n1,n2);

x1=[x1,zeros(1,N-n1)];

x2=[x2,zeros(1,N-n2)];

 

 

% USING THE FORMULA

for (i=0:1:N-1)

sum=0;

for (j=0:1:N-1)

m=mod((i-j),N);

sum=sum+x1(j+1)*x2(m+1);

end

y1(i+1)=sum;

end

subplot(2,2,3);

stem(n,y1);

title('CIRCULAR CONVOLUTION USING FORMULA')

xlabel('n-->')

ylabel('y1[n]-->')

% USING DFT

x1f=fft(x1);

x2f=fft(x2);

y2f=x1f.*x2f;

y2=ifft(y2f);

subplot(2,2,4);

stem(n,y2);

title('CIRCULAR CONVOLUTION USING DFT')

xlabel('n-->')

ylabel('y2[n]-->')