BUTTERWORTH - Functions to design and apply Butterworth filters:
bfdesign design a Butterworth filter
bfhighpass apply a high-pass Butterworth filter
bflowpass apply a low-pass Butterworth filter
Function Prototypes:
void bfhighpass (int npoles, float f3db, int n, float p[], float q[]);
void bflowpass (int npoles, float f3db, int n, float p[], float q[]);
void bfdesign (float fpass, float apass, float fstop, float astop,
int *npoles, float *f3db);
bfdesign:
Input:
fpass frequency in pass band at which amplitude is >= apass
apass amplitude in pass band corresponding to frequency fpass
fstop frequency in stop band at which amplitude is <= astop
astop amplitude in stop band corresponding to frequency fstop
Output:
npoles number of poles
f3db frequency at which amplitude is sqrt(0.5) (-3 db)
bfhighpass and bflowpass:
Input:
npoles number of poles (and zeros); npoles>=0 is required
f3db 3 db frequency; nyquist = 0.5; 0.0<=f3db<=0.5 is required
n length of p and q
p array[n] to be filtered
Output:
q filtered array[n] (may be equivalent to p)
Notes:
(1) Nyquist frequency equals 0.5
(2) The following conditions must be true:
(0.0