Pages

Monday, 22 April 2013

Butterworth Analog High Pass Filter Using Function (Matlab 2012a)

Program:

clc;
clear all;
rp = input('Enter the passband ripple = ');
rs = input('Enter the stopband ripple = ');
wp = input('Enter the passband frequency = ');
ws = input('Enter the stopband frequency = ');
fs = input('Enter the sampling frequency = ');
w1 = 2*wp/fs;
w2 = 2*ws/fs;
[n,wn] = buttord(w1,w2,rp,rs,'s');
[b,a] = butter(n,wn,'high','s');
w = 0:0.01:pi;
[h,om] = freqs(b,a,w);
m = 20*log10(abs(h));
an = angle(h);
subplot(2,1,1);
plot(om/pi,m);
ylabel('Gain in dB ---->');
xlabel('Normalised frequency ---->');
title('Amplitude Response');
grid on;
subplot(2,1,2);
plot(om/pi,an);
xlabel('Normalised frequency ---->');
ylabel('Phase in radians ---->');
title('Phase Response');
grid on;


Output:

Enter the passband ripple = 0.2
Enter the stopband ripple = 40
Enter the passband frequency = 2000
Enter the stopband frequency = 3500
Enter the sampling frequency = 8000


Waveform:

 

3 comments:

  1. how to calculate the cut off frequency in this code..ASAP

    ReplyDelete
  2. if we put stopband frequency 2000 and passband frequency 3500..getting similar output why?

    ReplyDelete
  3. Why is the sampling frequency required in designing an analog LPF anyway? I don't understand why do you do w1=2*wp/fs?? MISLEADING!!

    ReplyDelete