Listing 4
#include "statevar.h" void statevar(struct sv *svp, double samplein) { svp->lowpass = svp->lowpass+(svp->fc*svp->bandpass); svp->highpass = (samplein-svp->lowpass)-(svp->damp*svp->bandpass); svp->bandpass = (svp->fc*svp->highpass)+ svp->bandpass; svp->notch = svp->highpass+svp->lowpass; } void setstate(struct sv *svp, double corner, double samplef, double Que, double fgain) { svp->fc = sin(M_PI*corner/samplef); svp->damp = 1.0/Que; svp->gain = fgain; svp-> lowpass = 0; //lowpass output svp-> bandpass = 0; //bandpass output svp-> highpass = 0; //highpass output svp-> notch = 0; //notch output svp-> bp_last = 0; svp-> lp_last = 0; // svp-> gain = 0; //gain }