├── CMakeLists.txt ├── COPYING ├── Config.cmake.in ├── Doxyfile ├── Iir.h ├── JoinPaths.cmake ├── README.md ├── debug-build.sh ├── demo ├── 1.png ├── 2.png ├── 3.png ├── 4.png ├── 5.png ├── 7.png ├── 8.png ├── CMakeLists.txt ├── README.md ├── bessel_design.py ├── ecg1.png ├── ecg2.png ├── ecg50hz.dat ├── ecg50hzfilt.cpp ├── elliptic_design.py ├── iirdemo.cpp ├── plot_ecg_filt.py ├── plot_impulse_fresponse.py └── rbj_update.cpp ├── docs ├── Biquad_8h_source.html ├── Butterworth_8h_source.html ├── Cascade_8h_source.html ├── ChebyshevII_8h_source.html ├── ChebyshevI_8h_source.html ├── Common_8h_source.html ├── Custom_8h_source.html ├── Iir_8h_source.html ├── Layout_8h_source.html ├── MathSupplement_8h_source.html ├── PoleFilter_8h_source.html ├── RBJ_8h_source.html ├── State_8h_source.html ├── Types_8h_source.html ├── annotated.html ├── bc_s.png ├── bdwn.png ├── classIir_1_1BandPassTransform-members.html ├── classIir_1_1BandPassTransform.html ├── classIir_1_1BandStopTransform-members.html ├── classIir_1_1BandStopTransform.html ├── classIir_1_1Biquad-members.html ├── classIir_1_1Biquad.html ├── classIir_1_1Biquad.png ├── classIir_1_1Butterworth_1_1AnalogLowPass-members.html ├── classIir_1_1Butterworth_1_1AnalogLowPass.html ├── classIir_1_1Butterworth_1_1AnalogLowPass.png ├── classIir_1_1Butterworth_1_1AnalogLowShelf-members.html ├── classIir_1_1Butterworth_1_1AnalogLowShelf.html ├── classIir_1_1Butterworth_1_1AnalogLowShelf.png ├── classIir_1_1Cascade-members.html ├── classIir_1_1Cascade.html ├── classIir_1_1Cascade.png ├── classIir_1_1CascadeStages-members.html ├── classIir_1_1CascadeStages.html ├── classIir_1_1CascadeStages.png ├── classIir_1_1ChebyshevII_1_1AnalogLowPass-members.html ├── classIir_1_1ChebyshevII_1_1AnalogLowPass.html ├── classIir_1_1ChebyshevII_1_1AnalogLowPass.png ├── classIir_1_1ChebyshevII_1_1AnalogLowShelf-members.html ├── classIir_1_1ChebyshevII_1_1AnalogLowShelf.html ├── classIir_1_1ChebyshevII_1_1AnalogLowShelf.png ├── classIir_1_1ChebyshevI_1_1AnalogLowPass-members.html ├── classIir_1_1ChebyshevI_1_1AnalogLowPass.html ├── classIir_1_1ChebyshevI_1_1AnalogLowPass.png ├── classIir_1_1ChebyshevI_1_1AnalogLowShelf-members.html ├── classIir_1_1ChebyshevI_1_1AnalogLowShelf.html ├── classIir_1_1ChebyshevI_1_1AnalogLowShelf.png ├── classIir_1_1DirectFormI-members.html ├── classIir_1_1DirectFormI.html ├── classIir_1_1DirectFormII-members.html ├── classIir_1_1DirectFormII.html ├── classIir_1_1HighPassTransform-members.html ├── classIir_1_1HighPassTransform.html ├── classIir_1_1Layout-members.html ├── classIir_1_1Layout.html ├── classIir_1_1LayoutBase-members.html ├── classIir_1_1LayoutBase.html ├── classIir_1_1LayoutBase.png ├── classIir_1_1LowPassTransform-members.html ├── classIir_1_1LowPassTransform.html ├── classIir_1_1PoleFilterBase-members.html ├── classIir_1_1PoleFilterBase.html ├── classIir_1_1PoleFilterBase.png ├── classIir_1_1PoleFilterBase2-members.html ├── classIir_1_1PoleFilterBase2.html ├── classIir_1_1PoleFilterBase2.png ├── classIir_1_1TransposedDirectFormII-members.html ├── classIir_1_1TransposedDirectFormII.html ├── classes.html ├── closed.png ├── dir_5231e4e0b49b19c482755f817f3ac47e.html ├── doc.png ├── doxygen.css ├── doxygen.png ├── doxygen.svg ├── dynsections.js ├── files.html ├── folderclosed.png ├── folderopen.png ├── functions.html ├── functions_func.html ├── hierarchy.html ├── index.html ├── jquery.js ├── menu.js ├── menudata.js ├── namespaceIir.html ├── namespaceIir_1_1Butterworth.html ├── namespaceIir_1_1ChebyshevI.html ├── namespaceIir_1_1ChebyshevII.html ├── namespaceIir_1_1Custom.html ├── namespacemembers.html ├── namespacemembers_enum.html ├── namespaces.html ├── nav_f.png ├── nav_g.png ├── nav_h.png ├── open.png ├── pdf │ ├── Makefile │ ├── annotated.tex │ ├── classIir_1_1BandPassTransform.tex │ ├── classIir_1_1BandStopTransform.tex │ ├── classIir_1_1Biquad.eps │ ├── classIir_1_1Biquad.pdf │ ├── classIir_1_1Biquad.tex │ ├── classIir_1_1Butterworth_1_1AnalogLowPass.eps │ ├── classIir_1_1Butterworth_1_1AnalogLowPass.pdf │ ├── classIir_1_1Butterworth_1_1AnalogLowPass.tex │ ├── classIir_1_1Butterworth_1_1AnalogLowShelf.eps │ ├── classIir_1_1Butterworth_1_1AnalogLowShelf.pdf │ ├── classIir_1_1Butterworth_1_1AnalogLowShelf.tex │ ├── classIir_1_1Cascade.eps │ ├── classIir_1_1Cascade.pdf │ ├── classIir_1_1Cascade.tex │ ├── classIir_1_1CascadeStages.eps │ ├── classIir_1_1CascadeStages.pdf │ ├── classIir_1_1CascadeStages.tex │ ├── classIir_1_1ChebyshevII_1_1AnalogLowPass.eps │ ├── classIir_1_1ChebyshevII_1_1AnalogLowPass.pdf │ ├── classIir_1_1ChebyshevII_1_1AnalogLowPass.tex │ ├── classIir_1_1ChebyshevII_1_1AnalogLowShelf.eps │ ├── classIir_1_1ChebyshevII_1_1AnalogLowShelf.pdf │ ├── classIir_1_1ChebyshevII_1_1AnalogLowShelf.tex │ ├── classIir_1_1ChebyshevI_1_1AnalogLowPass.eps │ ├── classIir_1_1ChebyshevI_1_1AnalogLowPass.pdf │ ├── classIir_1_1ChebyshevI_1_1AnalogLowPass.tex │ ├── classIir_1_1ChebyshevI_1_1AnalogLowShelf.eps │ ├── classIir_1_1ChebyshevI_1_1AnalogLowShelf.pdf │ ├── classIir_1_1ChebyshevI_1_1AnalogLowShelf.tex │ ├── classIir_1_1DirectFormI.tex │ ├── classIir_1_1DirectFormII.tex │ ├── classIir_1_1HighPassTransform.tex │ ├── classIir_1_1Layout.tex │ ├── classIir_1_1LayoutBase.eps │ ├── classIir_1_1LayoutBase.pdf │ ├── classIir_1_1LayoutBase.tex │ ├── classIir_1_1LowPassTransform.tex │ ├── classIir_1_1PoleFilterBase.eps │ ├── classIir_1_1PoleFilterBase.pdf │ ├── classIir_1_1PoleFilterBase.tex │ ├── classIir_1_1PoleFilterBase2.eps │ ├── classIir_1_1PoleFilterBase2.pdf │ ├── classIir_1_1PoleFilterBase2.tex │ ├── classIir_1_1TransposedDirectFormII.tex │ ├── doxygen.sty │ ├── hierarchy.tex │ ├── index.tex │ ├── longtable_doxygen.sty │ ├── md_README.tex │ ├── namespaceIir.tex │ ├── namespaceIir_1_1Butterworth.tex │ ├── namespaceIir_1_1ChebyshevI.tex │ ├── namespaceIir_1_1ChebyshevII.tex │ ├── namespaceIir_1_1Custom.tex │ ├── namespaces.tex │ ├── refman.aux │ ├── refman.idx │ ├── refman.ilg │ ├── refman.ind │ ├── refman.log │ ├── refman.out │ ├── refman.pdf │ ├── refman.tex │ ├── refman.toc │ ├── structIir_1_1BiquadPoleState.eps │ ├── structIir_1_1BiquadPoleState.pdf │ ├── structIir_1_1BiquadPoleState.tex │ ├── structIir_1_1Butterworth_1_1BandPass.eps │ ├── structIir_1_1Butterworth_1_1BandPass.pdf │ ├── structIir_1_1Butterworth_1_1BandPass.tex │ ├── structIir_1_1Butterworth_1_1BandPassBase.eps │ ├── structIir_1_1Butterworth_1_1BandPassBase.pdf │ ├── structIir_1_1Butterworth_1_1BandPassBase.tex │ ├── structIir_1_1Butterworth_1_1BandShelf.eps │ ├── structIir_1_1Butterworth_1_1BandShelf.pdf │ ├── structIir_1_1Butterworth_1_1BandShelf.tex │ ├── structIir_1_1Butterworth_1_1BandShelfBase.eps │ ├── structIir_1_1Butterworth_1_1BandShelfBase.pdf │ ├── structIir_1_1Butterworth_1_1BandShelfBase.tex │ ├── structIir_1_1Butterworth_1_1BandStop.eps │ ├── structIir_1_1Butterworth_1_1BandStop.pdf │ ├── structIir_1_1Butterworth_1_1BandStop.tex │ ├── structIir_1_1Butterworth_1_1BandStopBase.eps │ ├── structIir_1_1Butterworth_1_1BandStopBase.pdf │ ├── structIir_1_1Butterworth_1_1BandStopBase.tex │ ├── structIir_1_1Butterworth_1_1HighPass.eps │ ├── structIir_1_1Butterworth_1_1HighPass.pdf │ ├── structIir_1_1Butterworth_1_1HighPass.tex │ ├── structIir_1_1Butterworth_1_1HighPassBase.eps │ ├── structIir_1_1Butterworth_1_1HighPassBase.pdf │ ├── structIir_1_1Butterworth_1_1HighPassBase.tex │ ├── structIir_1_1Butterworth_1_1HighShelf.eps │ ├── structIir_1_1Butterworth_1_1HighShelf.pdf │ ├── structIir_1_1Butterworth_1_1HighShelf.tex │ ├── structIir_1_1Butterworth_1_1HighShelfBase.eps │ ├── structIir_1_1Butterworth_1_1HighShelfBase.pdf │ ├── structIir_1_1Butterworth_1_1HighShelfBase.tex │ ├── structIir_1_1Butterworth_1_1LowPass.eps │ ├── structIir_1_1Butterworth_1_1LowPass.pdf │ ├── structIir_1_1Butterworth_1_1LowPass.tex │ ├── structIir_1_1Butterworth_1_1LowPassBase.eps │ ├── structIir_1_1Butterworth_1_1LowPassBase.pdf │ ├── structIir_1_1Butterworth_1_1LowPassBase.tex │ ├── structIir_1_1Butterworth_1_1LowShelf.eps │ ├── structIir_1_1Butterworth_1_1LowShelf.pdf │ ├── structIir_1_1Butterworth_1_1LowShelf.tex │ ├── structIir_1_1Butterworth_1_1LowShelfBase.eps │ ├── structIir_1_1Butterworth_1_1LowShelfBase.pdf │ ├── structIir_1_1Butterworth_1_1LowShelfBase.tex │ ├── structIir_1_1Cascade_1_1Storage.tex │ ├── structIir_1_1ChebyshevII_1_1BandPass.eps │ ├── structIir_1_1ChebyshevII_1_1BandPass.pdf │ ├── structIir_1_1ChebyshevII_1_1BandPass.tex │ ├── structIir_1_1ChebyshevII_1_1BandPassBase.eps │ ├── structIir_1_1ChebyshevII_1_1BandPassBase.pdf │ ├── structIir_1_1ChebyshevII_1_1BandPassBase.tex │ ├── structIir_1_1ChebyshevII_1_1BandShelf.eps │ ├── structIir_1_1ChebyshevII_1_1BandShelf.pdf │ ├── structIir_1_1ChebyshevII_1_1BandShelf.tex │ ├── structIir_1_1ChebyshevII_1_1BandShelfBase.eps │ ├── structIir_1_1ChebyshevII_1_1BandShelfBase.pdf │ ├── structIir_1_1ChebyshevII_1_1BandShelfBase.tex │ ├── structIir_1_1ChebyshevII_1_1BandStop.eps │ ├── structIir_1_1ChebyshevII_1_1BandStop.pdf │ ├── structIir_1_1ChebyshevII_1_1BandStop.tex │ ├── structIir_1_1ChebyshevII_1_1BandStopBase.eps │ ├── structIir_1_1ChebyshevII_1_1BandStopBase.pdf │ ├── structIir_1_1ChebyshevII_1_1BandStopBase.tex │ ├── structIir_1_1ChebyshevII_1_1HighPass.eps │ ├── structIir_1_1ChebyshevII_1_1HighPass.pdf │ ├── structIir_1_1ChebyshevII_1_1HighPass.tex │ ├── structIir_1_1ChebyshevII_1_1HighPassBase.eps │ ├── structIir_1_1ChebyshevII_1_1HighPassBase.pdf │ ├── structIir_1_1ChebyshevII_1_1HighPassBase.tex │ ├── structIir_1_1ChebyshevII_1_1HighShelf.eps │ ├── structIir_1_1ChebyshevII_1_1HighShelf.pdf │ ├── structIir_1_1ChebyshevII_1_1HighShelf.tex │ ├── structIir_1_1ChebyshevII_1_1HighShelfBase.eps │ ├── structIir_1_1ChebyshevII_1_1HighShelfBase.pdf │ ├── structIir_1_1ChebyshevII_1_1HighShelfBase.tex │ ├── structIir_1_1ChebyshevII_1_1LowPass.eps │ ├── structIir_1_1ChebyshevII_1_1LowPass.pdf │ ├── structIir_1_1ChebyshevII_1_1LowPass.tex │ ├── structIir_1_1ChebyshevII_1_1LowPassBase.eps │ ├── structIir_1_1ChebyshevII_1_1LowPassBase.pdf │ ├── structIir_1_1ChebyshevII_1_1LowPassBase.tex │ ├── structIir_1_1ChebyshevII_1_1LowShelf.eps │ ├── structIir_1_1ChebyshevII_1_1LowShelf.pdf │ ├── structIir_1_1ChebyshevII_1_1LowShelf.tex │ ├── structIir_1_1ChebyshevII_1_1LowShelfBase.eps │ ├── structIir_1_1ChebyshevII_1_1LowShelfBase.pdf │ ├── structIir_1_1ChebyshevII_1_1LowShelfBase.tex │ ├── structIir_1_1ChebyshevI_1_1BandPass.eps │ ├── structIir_1_1ChebyshevI_1_1BandPass.pdf │ ├── structIir_1_1ChebyshevI_1_1BandPass.tex │ ├── structIir_1_1ChebyshevI_1_1BandPassBase.eps │ ├── structIir_1_1ChebyshevI_1_1BandPassBase.pdf │ ├── structIir_1_1ChebyshevI_1_1BandPassBase.tex │ ├── structIir_1_1ChebyshevI_1_1BandShelf.eps │ ├── structIir_1_1ChebyshevI_1_1BandShelf.pdf │ ├── structIir_1_1ChebyshevI_1_1BandShelf.tex │ ├── structIir_1_1ChebyshevI_1_1BandShelfBase.eps │ ├── structIir_1_1ChebyshevI_1_1BandShelfBase.pdf │ ├── structIir_1_1ChebyshevI_1_1BandShelfBase.tex │ ├── structIir_1_1ChebyshevI_1_1BandStop.eps │ ├── structIir_1_1ChebyshevI_1_1BandStop.pdf │ ├── structIir_1_1ChebyshevI_1_1BandStop.tex │ ├── structIir_1_1ChebyshevI_1_1BandStopBase.eps │ ├── structIir_1_1ChebyshevI_1_1BandStopBase.pdf │ ├── structIir_1_1ChebyshevI_1_1BandStopBase.tex │ ├── structIir_1_1ChebyshevI_1_1HighPass.eps │ ├── structIir_1_1ChebyshevI_1_1HighPass.pdf │ ├── structIir_1_1ChebyshevI_1_1HighPass.tex │ ├── structIir_1_1ChebyshevI_1_1HighPassBase.eps │ ├── structIir_1_1ChebyshevI_1_1HighPassBase.pdf │ ├── structIir_1_1ChebyshevI_1_1HighPassBase.tex │ ├── structIir_1_1ChebyshevI_1_1HighShelf.eps │ ├── structIir_1_1ChebyshevI_1_1HighShelf.pdf │ ├── structIir_1_1ChebyshevI_1_1HighShelf.tex │ ├── structIir_1_1ChebyshevI_1_1HighShelfBase.eps │ ├── structIir_1_1ChebyshevI_1_1HighShelfBase.pdf │ ├── structIir_1_1ChebyshevI_1_1HighShelfBase.tex │ ├── structIir_1_1ChebyshevI_1_1LowPass.eps │ ├── structIir_1_1ChebyshevI_1_1LowPass.pdf │ ├── structIir_1_1ChebyshevI_1_1LowPass.tex │ ├── structIir_1_1ChebyshevI_1_1LowPassBase.eps │ ├── structIir_1_1ChebyshevI_1_1LowPassBase.pdf │ ├── structIir_1_1ChebyshevI_1_1LowPassBase.tex │ ├── structIir_1_1ChebyshevI_1_1LowShelf.eps │ ├── structIir_1_1ChebyshevI_1_1LowShelf.pdf │ ├── structIir_1_1ChebyshevI_1_1LowShelf.tex │ ├── structIir_1_1ChebyshevI_1_1LowShelfBase.eps │ ├── structIir_1_1ChebyshevI_1_1LowShelfBase.pdf │ ├── structIir_1_1ChebyshevI_1_1LowShelfBase.tex │ ├── structIir_1_1ComplexPair.eps │ ├── structIir_1_1ComplexPair.pdf │ ├── structIir_1_1ComplexPair.tex │ ├── structIir_1_1Custom_1_1OnePole.eps │ ├── structIir_1_1Custom_1_1OnePole.pdf │ ├── structIir_1_1Custom_1_1OnePole.tex │ ├── structIir_1_1Custom_1_1SOSCascade.eps │ ├── structIir_1_1Custom_1_1SOSCascade.pdf │ ├── structIir_1_1Custom_1_1SOSCascade.tex │ ├── structIir_1_1Custom_1_1TwoPole.eps │ ├── structIir_1_1Custom_1_1TwoPole.pdf │ ├── structIir_1_1Custom_1_1TwoPole.tex │ ├── structIir_1_1PoleFilter.eps │ ├── structIir_1_1PoleFilter.pdf │ ├── structIir_1_1PoleFilter.tex │ ├── structIir_1_1PoleZeroPair.eps │ ├── structIir_1_1PoleZeroPair.pdf │ ├── structIir_1_1PoleZeroPair.tex │ ├── structIir_1_1RBJ_1_1AllPass.eps │ ├── structIir_1_1RBJ_1_1AllPass.pdf │ ├── structIir_1_1RBJ_1_1AllPass.tex │ ├── structIir_1_1RBJ_1_1BandPass1.eps │ ├── structIir_1_1RBJ_1_1BandPass1.pdf │ ├── structIir_1_1RBJ_1_1BandPass1.tex │ ├── structIir_1_1RBJ_1_1BandPass2.eps │ ├── structIir_1_1RBJ_1_1BandPass2.pdf │ ├── structIir_1_1RBJ_1_1BandPass2.tex │ ├── structIir_1_1RBJ_1_1BandShelf.eps │ ├── structIir_1_1RBJ_1_1BandShelf.pdf │ ├── structIir_1_1RBJ_1_1BandShelf.tex │ ├── structIir_1_1RBJ_1_1BandStop.eps │ ├── structIir_1_1RBJ_1_1BandStop.pdf │ ├── structIir_1_1RBJ_1_1BandStop.tex │ ├── structIir_1_1RBJ_1_1HighPass.eps │ ├── structIir_1_1RBJ_1_1HighPass.pdf │ ├── structIir_1_1RBJ_1_1HighPass.tex │ ├── structIir_1_1RBJ_1_1HighShelf.eps │ ├── structIir_1_1RBJ_1_1HighShelf.pdf │ ├── structIir_1_1RBJ_1_1HighShelf.tex │ ├── structIir_1_1RBJ_1_1IIRNotch.eps │ ├── structIir_1_1RBJ_1_1IIRNotch.pdf │ ├── structIir_1_1RBJ_1_1IIRNotch.tex │ ├── structIir_1_1RBJ_1_1LowPass.eps │ ├── structIir_1_1RBJ_1_1LowPass.pdf │ ├── structIir_1_1RBJ_1_1LowPass.tex │ ├── structIir_1_1RBJ_1_1LowShelf.eps │ ├── structIir_1_1RBJ_1_1LowShelf.pdf │ ├── structIir_1_1RBJ_1_1LowShelf.tex │ ├── structIir_1_1RBJ_1_1RBJbase.eps │ ├── structIir_1_1RBJ_1_1RBJbase.pdf │ ├── structIir_1_1RBJ_1_1RBJbase.tex │ └── tabu_doxygen.sty ├── search │ ├── all_0.html │ ├── all_0.js │ ├── all_1.html │ ├── all_1.js │ ├── all_2.html │ ├── all_2.js │ ├── all_3.html │ ├── all_3.js │ ├── all_4.html │ ├── all_4.js │ ├── all_5.html │ ├── all_5.js │ ├── all_6.html │ ├── all_6.js │ ├── all_7.html │ ├── all_7.js │ ├── all_8.html │ ├── all_8.js │ ├── all_9.html │ ├── all_9.js │ ├── all_a.html │ ├── all_a.js │ ├── all_b.html │ ├── all_b.js │ ├── all_c.html │ ├── all_c.js │ ├── all_d.html │ ├── all_d.js │ ├── all_e.html │ ├── all_e.js │ ├── classes_0.html │ ├── classes_0.js │ ├── classes_1.html │ ├── classes_1.js │ ├── classes_2.html │ ├── classes_2.js │ ├── classes_3.html │ ├── classes_3.js │ ├── classes_4.html │ ├── classes_4.js │ ├── classes_5.html │ ├── classes_5.js │ ├── classes_6.html │ ├── classes_6.js │ ├── classes_7.html │ ├── classes_7.js │ ├── classes_8.html │ ├── classes_8.js │ ├── classes_9.html │ ├── classes_9.js │ ├── classes_a.html │ ├── classes_a.js │ ├── classes_b.html │ ├── classes_b.js │ ├── close.png │ ├── close.svg │ ├── enums_0.html │ ├── enums_0.js │ ├── functions_0.html │ ├── functions_0.js │ ├── functions_1.html │ ├── functions_1.js │ ├── functions_2.html │ ├── functions_2.js │ ├── functions_3.html │ ├── functions_3.js │ ├── functions_4.html │ ├── functions_4.js │ ├── functions_5.html │ ├── functions_5.js │ ├── functions_6.html │ ├── functions_6.js │ ├── mag_sel.png │ ├── mag_sel.svg │ ├── namespaces_0.html │ ├── namespaces_0.js │ ├── nomatches.html │ ├── pages_0.html │ ├── pages_0.js │ ├── search.css │ ├── search.js │ ├── search_l.png │ ├── search_m.png │ ├── search_r.png │ └── searchdata.js ├── splitbar.png ├── structIir_1_1BiquadPoleState-members.html ├── structIir_1_1BiquadPoleState.html ├── structIir_1_1BiquadPoleState.png ├── structIir_1_1Butterworth_1_1BandPass-members.html ├── structIir_1_1Butterworth_1_1BandPass.html ├── structIir_1_1Butterworth_1_1BandPass.png ├── structIir_1_1Butterworth_1_1BandPassBase-members.html ├── structIir_1_1Butterworth_1_1BandPassBase.html ├── structIir_1_1Butterworth_1_1BandPassBase.png ├── structIir_1_1Butterworth_1_1BandShelf-members.html ├── structIir_1_1Butterworth_1_1BandShelf.html ├── structIir_1_1Butterworth_1_1BandShelf.png ├── structIir_1_1Butterworth_1_1BandShelfBase-members.html ├── structIir_1_1Butterworth_1_1BandShelfBase.html ├── structIir_1_1Butterworth_1_1BandShelfBase.png ├── structIir_1_1Butterworth_1_1BandStop-members.html ├── structIir_1_1Butterworth_1_1BandStop.html ├── structIir_1_1Butterworth_1_1BandStop.png ├── structIir_1_1Butterworth_1_1BandStopBase-members.html ├── structIir_1_1Butterworth_1_1BandStopBase.html ├── structIir_1_1Butterworth_1_1BandStopBase.png ├── structIir_1_1Butterworth_1_1HighPass-members.html ├── structIir_1_1Butterworth_1_1HighPass.html ├── structIir_1_1Butterworth_1_1HighPass.png ├── structIir_1_1Butterworth_1_1HighPassBase-members.html ├── structIir_1_1Butterworth_1_1HighPassBase.html ├── structIir_1_1Butterworth_1_1HighPassBase.png ├── structIir_1_1Butterworth_1_1HighShelf-members.html ├── structIir_1_1Butterworth_1_1HighShelf.html ├── structIir_1_1Butterworth_1_1HighShelf.png ├── structIir_1_1Butterworth_1_1HighShelfBase-members.html ├── structIir_1_1Butterworth_1_1HighShelfBase.html ├── structIir_1_1Butterworth_1_1HighShelfBase.png ├── structIir_1_1Butterworth_1_1LowPass-members.html ├── structIir_1_1Butterworth_1_1LowPass.html ├── structIir_1_1Butterworth_1_1LowPass.png ├── structIir_1_1Butterworth_1_1LowPassBase-members.html ├── structIir_1_1Butterworth_1_1LowPassBase.html ├── structIir_1_1Butterworth_1_1LowPassBase.png ├── structIir_1_1Butterworth_1_1LowShelf-members.html ├── structIir_1_1Butterworth_1_1LowShelf.html ├── structIir_1_1Butterworth_1_1LowShelf.png ├── structIir_1_1Butterworth_1_1LowShelfBase-members.html ├── structIir_1_1Butterworth_1_1LowShelfBase.html ├── structIir_1_1Butterworth_1_1LowShelfBase.png ├── structIir_1_1Cascade_1_1Storage-members.html ├── structIir_1_1Cascade_1_1Storage.html ├── structIir_1_1ChebyshevII_1_1BandPass-members.html ├── structIir_1_1ChebyshevII_1_1BandPass.html ├── structIir_1_1ChebyshevII_1_1BandPass.png ├── structIir_1_1ChebyshevII_1_1BandPassBase-members.html ├── structIir_1_1ChebyshevII_1_1BandPassBase.html ├── structIir_1_1ChebyshevII_1_1BandPassBase.png ├── structIir_1_1ChebyshevII_1_1BandShelf-members.html ├── structIir_1_1ChebyshevII_1_1BandShelf.html ├── structIir_1_1ChebyshevII_1_1BandShelf.png ├── structIir_1_1ChebyshevII_1_1BandShelfBase-members.html ├── structIir_1_1ChebyshevII_1_1BandShelfBase.html ├── structIir_1_1ChebyshevII_1_1BandShelfBase.png ├── structIir_1_1ChebyshevII_1_1BandStop-members.html ├── structIir_1_1ChebyshevII_1_1BandStop.html ├── structIir_1_1ChebyshevII_1_1BandStop.png ├── structIir_1_1ChebyshevII_1_1BandStopBase-members.html ├── structIir_1_1ChebyshevII_1_1BandStopBase.html ├── structIir_1_1ChebyshevII_1_1BandStopBase.png ├── structIir_1_1ChebyshevII_1_1HighPass-members.html ├── structIir_1_1ChebyshevII_1_1HighPass.html ├── structIir_1_1ChebyshevII_1_1HighPass.png ├── structIir_1_1ChebyshevII_1_1HighPassBase-members.html ├── structIir_1_1ChebyshevII_1_1HighPassBase.html ├── structIir_1_1ChebyshevII_1_1HighPassBase.png ├── structIir_1_1ChebyshevII_1_1HighShelf-members.html ├── structIir_1_1ChebyshevII_1_1HighShelf.html ├── structIir_1_1ChebyshevII_1_1HighShelf.png ├── structIir_1_1ChebyshevII_1_1HighShelfBase-members.html ├── structIir_1_1ChebyshevII_1_1HighShelfBase.html ├── structIir_1_1ChebyshevII_1_1HighShelfBase.png ├── structIir_1_1ChebyshevII_1_1LowPass-members.html ├── structIir_1_1ChebyshevII_1_1LowPass.html ├── structIir_1_1ChebyshevII_1_1LowPass.png ├── structIir_1_1ChebyshevII_1_1LowPassBase-members.html ├── structIir_1_1ChebyshevII_1_1LowPassBase.html ├── structIir_1_1ChebyshevII_1_1LowPassBase.png ├── structIir_1_1ChebyshevII_1_1LowShelf-members.html ├── structIir_1_1ChebyshevII_1_1LowShelf.html ├── structIir_1_1ChebyshevII_1_1LowShelf.png ├── structIir_1_1ChebyshevII_1_1LowShelfBase-members.html ├── structIir_1_1ChebyshevII_1_1LowShelfBase.html ├── structIir_1_1ChebyshevII_1_1LowShelfBase.png ├── structIir_1_1ChebyshevI_1_1BandPass-members.html ├── structIir_1_1ChebyshevI_1_1BandPass.html ├── structIir_1_1ChebyshevI_1_1BandPass.png ├── structIir_1_1ChebyshevI_1_1BandPassBase-members.html ├── structIir_1_1ChebyshevI_1_1BandPassBase.html ├── structIir_1_1ChebyshevI_1_1BandPassBase.png ├── structIir_1_1ChebyshevI_1_1BandShelf-members.html ├── structIir_1_1ChebyshevI_1_1BandShelf.html ├── structIir_1_1ChebyshevI_1_1BandShelf.png ├── structIir_1_1ChebyshevI_1_1BandShelfBase-members.html ├── structIir_1_1ChebyshevI_1_1BandShelfBase.html ├── structIir_1_1ChebyshevI_1_1BandShelfBase.png ├── structIir_1_1ChebyshevI_1_1BandStop-members.html ├── structIir_1_1ChebyshevI_1_1BandStop.html ├── structIir_1_1ChebyshevI_1_1BandStop.png ├── structIir_1_1ChebyshevI_1_1BandStopBase-members.html ├── structIir_1_1ChebyshevI_1_1BandStopBase.html ├── structIir_1_1ChebyshevI_1_1BandStopBase.png ├── structIir_1_1ChebyshevI_1_1HighPass-members.html ├── structIir_1_1ChebyshevI_1_1HighPass.html ├── structIir_1_1ChebyshevI_1_1HighPass.png ├── structIir_1_1ChebyshevI_1_1HighPassBase-members.html ├── structIir_1_1ChebyshevI_1_1HighPassBase.html ├── structIir_1_1ChebyshevI_1_1HighPassBase.png ├── structIir_1_1ChebyshevI_1_1HighShelf-members.html ├── structIir_1_1ChebyshevI_1_1HighShelf.html ├── structIir_1_1ChebyshevI_1_1HighShelf.png ├── structIir_1_1ChebyshevI_1_1HighShelfBase-members.html ├── structIir_1_1ChebyshevI_1_1HighShelfBase.html ├── structIir_1_1ChebyshevI_1_1HighShelfBase.png ├── structIir_1_1ChebyshevI_1_1LowPass-members.html ├── structIir_1_1ChebyshevI_1_1LowPass.html ├── structIir_1_1ChebyshevI_1_1LowPass.png ├── structIir_1_1ChebyshevI_1_1LowPassBase-members.html ├── structIir_1_1ChebyshevI_1_1LowPassBase.html ├── structIir_1_1ChebyshevI_1_1LowPassBase.png ├── structIir_1_1ChebyshevI_1_1LowShelf-members.html ├── structIir_1_1ChebyshevI_1_1LowShelf.html ├── structIir_1_1ChebyshevI_1_1LowShelf.png ├── structIir_1_1ChebyshevI_1_1LowShelfBase-members.html ├── structIir_1_1ChebyshevI_1_1LowShelfBase.html ├── structIir_1_1ChebyshevI_1_1LowShelfBase.png ├── structIir_1_1ComplexPair-members.html ├── structIir_1_1ComplexPair.html ├── structIir_1_1ComplexPair.png ├── structIir_1_1Custom_1_1OnePole-members.html ├── structIir_1_1Custom_1_1OnePole.html ├── structIir_1_1Custom_1_1OnePole.png ├── structIir_1_1Custom_1_1SOSCascade-members.html ├── structIir_1_1Custom_1_1SOSCascade.html ├── structIir_1_1Custom_1_1SOSCascade.png ├── structIir_1_1Custom_1_1TwoPole-members.html ├── structIir_1_1Custom_1_1TwoPole.html ├── structIir_1_1Custom_1_1TwoPole.png ├── structIir_1_1PoleFilter-members.html ├── structIir_1_1PoleFilter.html ├── structIir_1_1PoleFilter.png ├── structIir_1_1PoleZeroPair-members.html ├── structIir_1_1PoleZeroPair.html ├── structIir_1_1PoleZeroPair.png ├── structIir_1_1RBJ_1_1AllPass-members.html ├── structIir_1_1RBJ_1_1AllPass.html ├── structIir_1_1RBJ_1_1AllPass.png ├── structIir_1_1RBJ_1_1BandPass1-members.html ├── structIir_1_1RBJ_1_1BandPass1.html ├── structIir_1_1RBJ_1_1BandPass1.png ├── structIir_1_1RBJ_1_1BandPass2-members.html ├── structIir_1_1RBJ_1_1BandPass2.html ├── structIir_1_1RBJ_1_1BandPass2.png ├── structIir_1_1RBJ_1_1BandShelf-members.html ├── structIir_1_1RBJ_1_1BandShelf.html ├── structIir_1_1RBJ_1_1BandShelf.png ├── structIir_1_1RBJ_1_1BandStop-members.html ├── structIir_1_1RBJ_1_1BandStop.html ├── structIir_1_1RBJ_1_1BandStop.png ├── structIir_1_1RBJ_1_1HighPass-members.html ├── structIir_1_1RBJ_1_1HighPass.html ├── structIir_1_1RBJ_1_1HighPass.png ├── structIir_1_1RBJ_1_1HighShelf-members.html ├── structIir_1_1RBJ_1_1HighShelf.html ├── structIir_1_1RBJ_1_1HighShelf.png ├── structIir_1_1RBJ_1_1IIRNotch-members.html ├── structIir_1_1RBJ_1_1IIRNotch.html ├── structIir_1_1RBJ_1_1IIRNotch.png ├── structIir_1_1RBJ_1_1LowPass-members.html ├── structIir_1_1RBJ_1_1LowPass.html ├── structIir_1_1RBJ_1_1LowPass.png ├── structIir_1_1RBJ_1_1LowShelf-members.html ├── structIir_1_1RBJ_1_1LowShelf.html ├── structIir_1_1RBJ_1_1LowShelf.png ├── structIir_1_1RBJ_1_1RBJbase-members.html ├── structIir_1_1RBJ_1_1RBJbase.html ├── structIir_1_1RBJ_1_1RBJbase.png ├── sync_off.png ├── sync_on.png ├── tab_a.png ├── tab_b.png ├── tab_h.png ├── tab_s.png └── tabs.css ├── doxy.md ├── gendoc.sh ├── iir.pc.in ├── iir ├── Biquad.cpp ├── Biquad.h ├── Butterworth.cpp ├── Butterworth.h ├── Cascade.cpp ├── Cascade.h ├── ChebyshevI.cpp ├── ChebyshevI.h ├── ChebyshevII.cpp ├── ChebyshevII.h ├── Common.h ├── Custom.cpp ├── Custom.h ├── Layout.h ├── MathSupplement.h ├── PoleFilter.cpp ├── PoleFilter.h ├── RBJ.cpp ├── RBJ.h ├── State.h └── Types.h ├── test ├── CMakeLists.txt ├── assert_print.h ├── assignment.cpp ├── badparam.cpp ├── butterworth.cpp ├── chebyshev1.cpp ├── chebyshev2.cpp ├── custom.cpp ├── rbj.cpp ├── state.cpp └── state.py └── title.png /COPYING: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2009 Vinnie Falco 4 | Copyright (c) 2012 Bernd Porr 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /Config.cmake.in: -------------------------------------------------------------------------------- 1 | # Config.cmake.in 2 | 3 | @PACKAGE_INIT@ 4 | 5 | # Value of 'iir_INCLUDE_DIRS' is real: it contains the include directory. 6 | set(iir_INCLUDE_DIRS @CMAKE_INSTALL_PREFIX@/include) 7 | 8 | # CMake extracts a library path from it. 9 | set(iir_LIBRARIES iir) 10 | 11 | # Include the export script generated by CMake: 12 | include(${CMAKE_CURRENT_LIST_DIR}/iirTargets.cmake) 13 | -------------------------------------------------------------------------------- /Iir.h: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * "A Collection of Useful C++ Classes for Digital Signal Processing" 4 | * By Vinnie Falco and Bernd Porr 5 | * 6 | * Official project location: 7 | * https://github.com/berndporr/iir1 8 | * 9 | * -------------------------------------------------------------------------- 10 | * 11 | * License: MIT License (http://www.opensource.org/licenses/mit-license.php) 12 | * Copyright (c) 2009 by Vinnie Falco 13 | * Copyright (c) 2011 by Bernd Porr 14 | * 15 | * Permission is hereby granted, free of charge, to any person obtaining a copy 16 | * of this software and associated documentation files (the "Software"), to deal 17 | * in the Software without restriction, including without limitation the rights 18 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | * copies of the Software, and to permit persons to whom the Software is 20 | * furnished to do so, subject to the following conditions: 21 | * 22 | * The above copyright notice and this permission notice shall be included in 23 | * all copies or substantial portions of the Software. 24 | * 25 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 31 | * THE SOFTWARE. 32 | * 33 | **/ 34 | 35 | #ifndef IIR_H 36 | #define IIR_H 37 | 38 | // 39 | // Include this file in your application to get everything 40 | // 41 | 42 | #include "iir/Common.h" 43 | 44 | #include "iir/Biquad.h" 45 | #include "iir/Cascade.h" 46 | #include "iir/PoleFilter.h" 47 | #include "iir/State.h" 48 | 49 | #include "iir/Butterworth.h" 50 | #include "iir/ChebyshevI.h" 51 | #include "iir/ChebyshevII.h" 52 | #include "iir/Custom.h" 53 | #include "iir/RBJ.h" 54 | 55 | #endif 56 | -------------------------------------------------------------------------------- /JoinPaths.cmake: -------------------------------------------------------------------------------- 1 | # This module provides function for joining paths 2 | # known from most languages 3 | # 4 | # SPDX-License-Identifier: (MIT OR CC0-1.0) 5 | # Copyright 2020 Jan Tojnar 6 | # https://github.com/jtojnar/cmake-snips 7 | # 8 | # Modelled after Python’s os.path.join 9 | # https://docs.python.org/3.7/library/os.path.html#os.path.join 10 | # Windows not supported 11 | function(join_paths joined_path first_path_segment) 12 | set(temp_path "${first_path_segment}") 13 | foreach(current_segment IN LISTS ARGN) 14 | if(NOT ("${current_segment}" STREQUAL "")) 15 | if(IS_ABSOLUTE "${current_segment}") 16 | set(temp_path "${current_segment}") 17 | else() 18 | set(temp_path "${temp_path}/${current_segment}") 19 | endif() 20 | endif() 21 | endforeach() 22 | set(${joined_path} "${temp_path}" PARENT_SCOPE) 23 | endfunction() 24 | -------------------------------------------------------------------------------- /debug-build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | rm -rf CMakeCache.txt CMakeFiles 3 | cmake . -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON 4 | make 5 | -------------------------------------------------------------------------------- /demo/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/demo/1.png -------------------------------------------------------------------------------- /demo/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/demo/2.png -------------------------------------------------------------------------------- /demo/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/demo/3.png -------------------------------------------------------------------------------- /demo/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/demo/4.png -------------------------------------------------------------------------------- /demo/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/demo/5.png -------------------------------------------------------------------------------- /demo/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/demo/7.png -------------------------------------------------------------------------------- /demo/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/demo/8.png -------------------------------------------------------------------------------- /demo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(IIRDemo) 2 | 3 | cmake_minimum_required(VERSION 3.8.0) 4 | 5 | if (MSVC) 6 | add_compile_options(/W4) 7 | else() 8 | add_compile_options(-Wall) 9 | endif() 10 | 11 | # Copy scripts and data to build dir 12 | function(copy_demo_file TARGET FILE) 13 | add_custom_command(TARGET ${TARGET} POST_BUILD 14 | COMMAND ${CMAKE_COMMAND} -E copy 15 | "${CMAKE_CURRENT_SOURCE_DIR}/${FILE}" 16 | "$/${FILE}" 17 | ) 18 | endfunction() 19 | 20 | add_executable (iirdemo iirdemo.cpp) 21 | target_link_libraries(iirdemo iir_static) 22 | target_compile_features(iirdemo PRIVATE cxx_std_11) 23 | copy_demo_file(iirdemo plot_impulse_fresponse.py) 24 | 25 | add_executable (rbj_update rbj_update.cpp) 26 | target_link_libraries(rbj_update iir_static) 27 | target_compile_features(rbj_update PRIVATE cxx_std_11) 28 | 29 | add_executable (ecg50hzfilt ecg50hzfilt.cpp) 30 | target_link_libraries(ecg50hzfilt iir_static) 31 | target_compile_features(ecg50hzfilt PRIVATE cxx_std_11) 32 | copy_demo_file(ecg50hzfilt plot_ecg_filt.py) 33 | copy_demo_file(ecg50hzfilt ecg50hz.dat) 34 | -------------------------------------------------------------------------------- /demo/README.md: -------------------------------------------------------------------------------- 1 | # Coding examples 2 | 3 | This demo directory shows how filters are set up, how data is 4 | processed sample by sample and how the frequency responses 5 | look like with the help of python scripts. 6 | 7 | ## Impulse responses and spectra of different filters: 8 | ``` 9 | ./iirdemo 10 | python3 plot_impulse_fresponse.py 11 | ``` 12 | 13 | ## 50Hz removal and lowpass filtering: 14 | ``` 15 | ./ecg50hzfilt 16 | python3 plot_ecg_filt.py 17 | ``` 18 | 19 | ## Optimisation tips 20 | 21 | The actual filter operations are header-only which means that 22 | they will never be pre-compiled in the library but the compiler 23 | can optimise the filter routine for your local processor. Consider 24 | using: 25 | ``` 26 | add_compile_options(-O3 -march=native) 27 | ``` 28 | -------------------------------------------------------------------------------- /demo/bessel_design.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | 3 | # Calculates the coefficients for a Bessel filter 4 | 5 | from scipy import signal 6 | # sampling rate 7 | fs = 1000 8 | # cutoff 9 | f0 = 100 10 | # order 11 | order = 8 12 | sos = signal.bessel(order, f0/fs*2, 'low', output='sos') 13 | for s in sos: 14 | print("{",end="") 15 | n = 0 16 | for c in s: 17 | print("%.18e" % c,end="") 18 | n=n+1 19 | if n<6: 20 | print(",",end="") 21 | print("},") 22 | -------------------------------------------------------------------------------- /demo/ecg1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/demo/ecg1.png -------------------------------------------------------------------------------- /demo/ecg2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/demo/ecg2.png -------------------------------------------------------------------------------- /demo/ecg50hzfilt.cpp: -------------------------------------------------------------------------------- 1 | // Usage Examples 2 | // 3 | #include "Iir.h" 4 | 5 | #include 6 | 7 | int main (int,char**) 8 | { 9 | const float fs = 1000; 10 | const float mains = 50; 11 | Iir::RBJ::IIRNotch iirnotch; 12 | iirnotch.setup(fs,mains); 13 | 14 | const float ecg_max_f = 100; 15 | Iir::Butterworth::LowPass<4> lp; 16 | lp.setup(fs,ecg_max_f); 17 | 18 | FILE *finput = fopen("ecg50hz.dat","rt"); 19 | FILE *foutput = fopen("ecg_filtered.dat","wt"); 20 | // let's simulate incoming streaming data 21 | for(;;) 22 | { 23 | float a; 24 | if (fscanf(finput,"%f\n",&a)<1) break; 25 | a = a - 2250; 26 | a = lp.filter(a); 27 | a = iirnotch.filter(a); 28 | fprintf(foutput,"%f\n",a); 29 | } 30 | fclose(finput); 31 | fclose(foutput); 32 | fprintf(stderr,"Written the filtered ECG to 'ecg_filtered.dat'\n"); 33 | } 34 | -------------------------------------------------------------------------------- /demo/elliptic_design.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | 3 | # Calculates the coefficients for an elliptic filter 4 | 5 | from scipy import signal 6 | # sampling rate 7 | fs = 1000 8 | # cutoff 9 | f0 = 100 10 | # order 11 | order = 4 12 | # passband ripple 13 | pr = 5 14 | # minimum stopband rejection 15 | sr = 40 16 | sos = signal.ellip(order, pr, sr, f0/fs*2, 'low', output='sos') 17 | for s in sos: 18 | print("{",end="") 19 | n = 0 20 | for c in s: 21 | print("%.18e" % c,end="") 22 | n=n+1 23 | if n<6: 24 | print(",",end="") 25 | print("},") 26 | -------------------------------------------------------------------------------- /demo/plot_ecg_filt.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | 3 | import matplotlib.pyplot as plt 4 | import scipy 5 | import numpy as np 6 | 7 | # Plots the impulse response of the Bandstop and its frequency response 8 | 9 | def plot_if(figno,name,figtitle): 10 | plt.figure(figno) 11 | plt.suptitle(figtitle) 12 | fs = 1000 13 | y = np.loadtxt(name) / 1000 14 | y2 = y - np.mean(y) 15 | plt.subplot(211) 16 | plt.title("Signal") 17 | plt.ylim(-1,1) 18 | plt.plot(y2); 19 | # 20 | # Fourier Transform 21 | yf = np.fft.fft(y) / len(y) 22 | plt.subplot(212) 23 | plt.plot(np.linspace(0,fs,len(yf)),20*np.log10(np.abs(yf))) 24 | plt.xlim(0,fs/2) 25 | plt.ylim(-130,-10) 26 | plt.title("Frequency spectrum") 27 | plt.xlabel("f/Hz") 28 | plt.ylabel("amplitude/dB") 29 | 30 | plot_if(1,"ecg50hz.dat","ECG with 50Hz noise") 31 | 32 | plot_if(2,"ecg_filtered.dat","ECG after filtering") 33 | 34 | plt.show() 35 | -------------------------------------------------------------------------------- /demo/plot_impulse_fresponse.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | 3 | import matplotlib.pyplot as plt 4 | import scipy 5 | import numpy as np 6 | 7 | # Plots the impulse response of the Bandstop and its frequency response 8 | 9 | def plot_if(figno,name,figtitle,fs = 1000,freq_resp_name=False): 10 | plt.figure(figno) 11 | plt.suptitle(figtitle) 12 | y = np.loadtxt(name); 13 | plt.subplot(311) 14 | plt.title("Impulse response") 15 | plt.plot(y); 16 | # 17 | # Fourier Transform 18 | yf = np.fft.fft(y) 19 | plt.subplot(312) 20 | fx = np.linspace(0,fs,len(yf)) 21 | plt.plot(fx,20*np.log10(abs(yf)),label="resp from fft(impulse)") 22 | plt.xlim(0,fs/2) 23 | plt.title("Frequency response") 24 | plt.ylabel("gain/dB") 25 | if freq_resp_name: 26 | fr = np.loadtxt(freq_resp_name); 27 | plt.plot(fr[:,0]*fs,20*np.log10(abs(fr[:,1])),label="resp from poles/zeroes") 28 | plt.legend() 29 | 30 | plt.subplot(313) 31 | p = -np.diff(np.unwrap(np.angle(yf))) / np.diff(fx * 2 * np.pi) 32 | plt.plot(np.linspace(0,fs,len(yf)-1),p) 33 | plt.xlim(0,fs/2) 34 | plt.title("Phase response") 35 | if fs == 1: 36 | plt.xlabel("f/1/samples") 37 | plt.ylabel("delay/samples") 38 | plt.ylim(-200,200) 39 | else: 40 | plt.ylim(-0.075,0.075) 41 | plt.xlabel("f/Hz") 42 | plt.ylabel("delay/secs") 43 | 44 | plot_if(1,"lp.dat","Butterworth lowpass",freq_resp_name="lpf.dat") 45 | 46 | plot_if(2,"hp_rbj.dat","RBJ highpass") 47 | 48 | plot_if(3,"lp_cheby1.dat","ChebyshevI lowpass") 49 | 50 | plot_if(4,"hp_cheby2.dat","ChebyshevII highpass",fs=1) 51 | 52 | plot_if(5,"bs_norm.dat","Butterworth bandstop filter",fs=1) 53 | 54 | plot_if(6,"ellip.dat","Elliptic filter (Coefficients from Python)") 55 | 56 | plot_if(7,"bessel.dat","Bessel filter (Coefficients from Python)") 57 | 58 | plt.show() 59 | -------------------------------------------------------------------------------- /demo/rbj_update.cpp: -------------------------------------------------------------------------------- 1 | // Usage Examples 2 | // 3 | // This updates the filter parameters while the 4 | // filter is operating simulating a variable 5 | // framerate for example. 6 | // 7 | 8 | // This is the only include you need 9 | #include "Iir.h" 10 | 11 | #include 12 | #include 13 | 14 | int main(int, char**) 15 | { 16 | float samplingrate = 75; 17 | 18 | FILE *fimpulse = NULL; 19 | 20 | // RBJ lowpass filter with sampling rate updated 21 | // every second to see how the filter reacts. 22 | // The Q factor determines the resonance at the 23 | // cutoff frequency. If Q=1/sqrt(2) then the transition 24 | // has no resonance. The higher the Q-factor the higher 25 | // the resonance. 26 | Iir::RBJ::LowPass lp; 27 | const double lp_cutoff_frequency = 1; 28 | const double lp_qfactor = 5; 29 | lp.setup(samplingrate, lp_cutoff_frequency, lp_qfactor); 30 | fimpulse = fopen("rbj_update.dat", "wt"); 31 | for (int i = 0; i < 10000; i++) 32 | { 33 | double a = 0; 34 | if (i > 10) a = 1; 35 | double b = lp.filter(a); 36 | fprintf(fimpulse, "%e\n", b); 37 | if ((i%75) == 0) { 38 | samplingrate = samplingrate + ((float)rand()/(float)RAND_MAX)*10 - 5; 39 | printf("n=%d,fs=%f\n",i,samplingrate); 40 | lp.setup(samplingrate, lp_cutoff_frequency, lp_qfactor); 41 | } 42 | } 43 | fclose(fimpulse); 44 | } 45 | -------------------------------------------------------------------------------- /docs/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/bc_s.png -------------------------------------------------------------------------------- /docs/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/bdwn.png -------------------------------------------------------------------------------- /docs/classIir_1_1Biquad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/classIir_1_1Biquad.png -------------------------------------------------------------------------------- /docs/classIir_1_1Butterworth_1_1AnalogLowPass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/classIir_1_1Butterworth_1_1AnalogLowPass.png -------------------------------------------------------------------------------- /docs/classIir_1_1Butterworth_1_1AnalogLowShelf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/classIir_1_1Butterworth_1_1AnalogLowShelf.png -------------------------------------------------------------------------------- /docs/classIir_1_1Cascade.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/classIir_1_1Cascade.png -------------------------------------------------------------------------------- /docs/classIir_1_1CascadeStages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/classIir_1_1CascadeStages.png -------------------------------------------------------------------------------- /docs/classIir_1_1ChebyshevII_1_1AnalogLowPass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/classIir_1_1ChebyshevII_1_1AnalogLowPass.png -------------------------------------------------------------------------------- /docs/classIir_1_1ChebyshevII_1_1AnalogLowShelf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/classIir_1_1ChebyshevII_1_1AnalogLowShelf.png -------------------------------------------------------------------------------- /docs/classIir_1_1ChebyshevI_1_1AnalogLowPass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/classIir_1_1ChebyshevI_1_1AnalogLowPass.png -------------------------------------------------------------------------------- /docs/classIir_1_1ChebyshevI_1_1AnalogLowShelf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/classIir_1_1ChebyshevI_1_1AnalogLowShelf.png -------------------------------------------------------------------------------- /docs/classIir_1_1LayoutBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/classIir_1_1LayoutBase.png -------------------------------------------------------------------------------- /docs/classIir_1_1PoleFilterBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/classIir_1_1PoleFilterBase.png -------------------------------------------------------------------------------- /docs/classIir_1_1PoleFilterBase2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/classIir_1_1PoleFilterBase2.png -------------------------------------------------------------------------------- /docs/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/closed.png -------------------------------------------------------------------------------- /docs/doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/doc.png -------------------------------------------------------------------------------- /docs/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/doxygen.png -------------------------------------------------------------------------------- /docs/folderclosed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/folderclosed.png -------------------------------------------------------------------------------- /docs/folderopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/folderopen.png -------------------------------------------------------------------------------- /docs/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/nav_f.png -------------------------------------------------------------------------------- /docs/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/nav_g.png -------------------------------------------------------------------------------- /docs/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/nav_h.png -------------------------------------------------------------------------------- /docs/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/open.png -------------------------------------------------------------------------------- /docs/pdf/Makefile: -------------------------------------------------------------------------------- 1 | LATEX_CMD=pdflatex 2 | 3 | all: refman.pdf 4 | 5 | pdf: refman.pdf 6 | 7 | refman.pdf: clean refman.tex 8 | $(LATEX_CMD) refman 9 | makeindex refman.idx 10 | $(LATEX_CMD) refman 11 | latex_count=8 ; \ 12 | while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ 13 | do \ 14 | echo "Rerunning latex...." ;\ 15 | $(LATEX_CMD) refman ;\ 16 | latex_count=`expr $$latex_count - 1` ;\ 17 | done 18 | makeindex refman.idx 19 | $(LATEX_CMD) refman 20 | 21 | 22 | clean: 23 | rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf 24 | -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1BandPassTransform.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classIir_1_1BandPassTransform}{}\doxysubsection{Iir\+::Band\+Pass\+Transform Class Reference} 2 | \label{classIir_1_1BandPassTransform}\index{Iir::BandPassTransform@{Iir::BandPassTransform}} 3 | 4 | 5 | {\ttfamily \#include $<$Pole\+Filter.\+h$>$} 6 | 7 | 8 | 9 | \doxysubsubsection{Detailed Description} 10 | low pass to band pass transform 11 | 12 | The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Pole\+Filter.\+h\item 15 | iir/Pole\+Filter.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1BandStopTransform.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classIir_1_1BandStopTransform}{}\doxysubsection{Iir\+::Band\+Stop\+Transform Class Reference} 2 | \label{classIir_1_1BandStopTransform}\index{Iir::BandStopTransform@{Iir::BandStopTransform}} 3 | 4 | 5 | {\ttfamily \#include $<$Pole\+Filter.\+h$>$} 6 | 7 | 8 | 9 | \doxysubsubsection{Detailed Description} 10 | low pass to band stop transform 11 | 12 | The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Pole\+Filter.\+h\item 15 | iir/Pole\+Filter.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1Biquad.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/classIir_1_1Biquad.pdf -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1Butterworth_1_1AnalogLowPass.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/classIir_1_1Butterworth_1_1AnalogLowPass.pdf -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1Butterworth_1_1AnalogLowPass.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classIir_1_1Butterworth_1_1AnalogLowPass}{}\doxysubsection{Iir\+::Butterworth\+::Analog\+Low\+Pass Class Reference} 2 | \label{classIir_1_1Butterworth_1_1AnalogLowPass}\index{Iir::Butterworth::AnalogLowPass@{Iir::Butterworth::AnalogLowPass}} 3 | 4 | 5 | {\ttfamily \#include $<$Butterworth.\+h$>$} 6 | 7 | Inheritance diagram for Iir\+::Butterworth\+::Analog\+Low\+Pass\+:\begin{figure}[H] 8 | \begin{center} 9 | \leavevmode 10 | \includegraphics[height=2.000000cm]{classIir_1_1Butterworth_1_1AnalogLowPass} 11 | \end{center} 12 | \end{figure} 13 | 14 | 15 | \doxysubsubsection{Detailed Description} 16 | Analogue lowpass prototypes (s-\/plane) 17 | 18 | The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} 19 | \item 20 | iir/Butterworth.\+h\item 21 | iir/Butterworth.\+cpp\end{DoxyCompactItemize} 22 | -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1Butterworth_1_1AnalogLowShelf.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/classIir_1_1Butterworth_1_1AnalogLowShelf.pdf -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1Butterworth_1_1AnalogLowShelf.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classIir_1_1Butterworth_1_1AnalogLowShelf}{}\doxysubsection{Iir\+::Butterworth\+::Analog\+Low\+Shelf Class Reference} 2 | \label{classIir_1_1Butterworth_1_1AnalogLowShelf}\index{Iir::Butterworth::AnalogLowShelf@{Iir::Butterworth::AnalogLowShelf}} 3 | 4 | 5 | {\ttfamily \#include $<$Butterworth.\+h$>$} 6 | 7 | Inheritance diagram for Iir\+::Butterworth\+::Analog\+Low\+Shelf\+:\begin{figure}[H] 8 | \begin{center} 9 | \leavevmode 10 | \includegraphics[height=2.000000cm]{classIir_1_1Butterworth_1_1AnalogLowShelf} 11 | \end{center} 12 | \end{figure} 13 | 14 | 15 | \doxysubsubsection{Detailed Description} 16 | Analogue low shelf prototypes (s-\/plane) 17 | 18 | The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} 19 | \item 20 | iir/Butterworth.\+h\item 21 | iir/Butterworth.\+cpp\end{DoxyCompactItemize} 22 | -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1Cascade.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/classIir_1_1Cascade.pdf -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1CascadeStages.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/classIir_1_1CascadeStages.pdf -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1ChebyshevII_1_1AnalogLowPass.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/classIir_1_1ChebyshevII_1_1AnalogLowPass.pdf -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1ChebyshevII_1_1AnalogLowPass.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classIir_1_1ChebyshevII_1_1AnalogLowPass}{}\doxysubsection{Iir\+::Chebyshev\+II\+::Analog\+Low\+Pass Class Reference} 2 | \label{classIir_1_1ChebyshevII_1_1AnalogLowPass}\index{Iir::ChebyshevII::AnalogLowPass@{Iir::ChebyshevII::AnalogLowPass}} 3 | 4 | 5 | {\ttfamily \#include $<$Chebyshev\+II.\+h$>$} 6 | 7 | Inheritance diagram for Iir\+::Chebyshev\+II\+::Analog\+Low\+Pass\+:\begin{figure}[H] 8 | \begin{center} 9 | \leavevmode 10 | \includegraphics[height=2.000000cm]{classIir_1_1ChebyshevII_1_1AnalogLowPass} 11 | \end{center} 12 | \end{figure} 13 | 14 | 15 | \doxysubsubsection{Detailed Description} 16 | Analogue lowpass prototype (s-\/plane) 17 | 18 | The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} 19 | \item 20 | iir/Chebyshev\+II.\+h\item 21 | iir/Chebyshev\+II.\+cpp\end{DoxyCompactItemize} 22 | -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1ChebyshevII_1_1AnalogLowShelf.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/classIir_1_1ChebyshevII_1_1AnalogLowShelf.pdf -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1ChebyshevII_1_1AnalogLowShelf.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classIir_1_1ChebyshevII_1_1AnalogLowShelf}{}\doxysubsection{Iir\+::Chebyshev\+II\+::Analog\+Low\+Shelf Class Reference} 2 | \label{classIir_1_1ChebyshevII_1_1AnalogLowShelf}\index{Iir::ChebyshevII::AnalogLowShelf@{Iir::ChebyshevII::AnalogLowShelf}} 3 | 4 | 5 | {\ttfamily \#include $<$Chebyshev\+II.\+h$>$} 6 | 7 | Inheritance diagram for Iir\+::Chebyshev\+II\+::Analog\+Low\+Shelf\+:\begin{figure}[H] 8 | \begin{center} 9 | \leavevmode 10 | \includegraphics[height=2.000000cm]{classIir_1_1ChebyshevII_1_1AnalogLowShelf} 11 | \end{center} 12 | \end{figure} 13 | 14 | 15 | \doxysubsubsection{Detailed Description} 16 | Analogue shelf lowpass prototype (s-\/plane) 17 | 18 | The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} 19 | \item 20 | iir/Chebyshev\+II.\+h\item 21 | iir/Chebyshev\+II.\+cpp\end{DoxyCompactItemize} 22 | -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1ChebyshevI_1_1AnalogLowPass.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/classIir_1_1ChebyshevI_1_1AnalogLowPass.pdf -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1ChebyshevI_1_1AnalogLowPass.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classIir_1_1ChebyshevI_1_1AnalogLowPass}{}\doxysubsection{Iir\+::ChebyshevI\+::Analog\+Low\+Pass Class Reference} 2 | \label{classIir_1_1ChebyshevI_1_1AnalogLowPass}\index{Iir::ChebyshevI::AnalogLowPass@{Iir::ChebyshevI::AnalogLowPass}} 3 | 4 | 5 | {\ttfamily \#include $<$Chebyshev\+I.\+h$>$} 6 | 7 | Inheritance diagram for Iir\+::ChebyshevI\+::Analog\+Low\+Pass\+:\begin{figure}[H] 8 | \begin{center} 9 | \leavevmode 10 | \includegraphics[height=2.000000cm]{classIir_1_1ChebyshevI_1_1AnalogLowPass} 11 | \end{center} 12 | \end{figure} 13 | 14 | 15 | \doxysubsubsection{Detailed Description} 16 | Analog lowpass prototypes (s-\/plane) 17 | 18 | The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} 19 | \item 20 | iir/Chebyshev\+I.\+h\item 21 | iir/Chebyshev\+I.\+cpp\end{DoxyCompactItemize} 22 | -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1ChebyshevI_1_1AnalogLowShelf.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/classIir_1_1ChebyshevI_1_1AnalogLowShelf.pdf -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1ChebyshevI_1_1AnalogLowShelf.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classIir_1_1ChebyshevI_1_1AnalogLowShelf}{}\doxysubsection{Iir\+::ChebyshevI\+::Analog\+Low\+Shelf Class Reference} 2 | \label{classIir_1_1ChebyshevI_1_1AnalogLowShelf}\index{Iir::ChebyshevI::AnalogLowShelf@{Iir::ChebyshevI::AnalogLowShelf}} 3 | 4 | 5 | {\ttfamily \#include $<$Chebyshev\+I.\+h$>$} 6 | 7 | Inheritance diagram for Iir\+::ChebyshevI\+::Analog\+Low\+Shelf\+:\begin{figure}[H] 8 | \begin{center} 9 | \leavevmode 10 | \includegraphics[height=2.000000cm]{classIir_1_1ChebyshevI_1_1AnalogLowShelf} 11 | \end{center} 12 | \end{figure} 13 | 14 | 15 | \doxysubsubsection{Detailed Description} 16 | Analog lowpass shelf prototype (s-\/plane) 17 | 18 | The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} 19 | \item 20 | iir/Chebyshev\+I.\+h\item 21 | iir/Chebyshev\+I.\+cpp\end{DoxyCompactItemize} 22 | -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1DirectFormI.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classIir_1_1DirectFormI}{}\doxysubsection{Iir\+::Direct\+FormI Class Reference} 2 | \label{classIir_1_1DirectFormI}\index{Iir::DirectFormI@{Iir::DirectFormI}} 3 | 4 | 5 | {\ttfamily \#include $<$State.\+h$>$} 6 | 7 | 8 | 9 | \doxysubsubsection{Detailed Description} 10 | State for applying a second order section to a sample using Direct Form I 11 | 12 | Difference equation\+: 13 | 14 | y\mbox{[}n\mbox{]} = (b0/a0)$\ast$x\mbox{[}n\mbox{]} + (b1/a0)$\ast$x\mbox{[}n-\/1\mbox{]} + (b2/a0)$\ast$x\mbox{[}n-\/2\mbox{]} 15 | \begin{DoxyItemize} 16 | \item (a1/a0)$\ast$y\mbox{[}n-\/1\mbox{]} -\/ (a2/a0)$\ast$y\mbox{[}n-\/2\mbox{]} ~\newline 17 | 18 | \end{DoxyItemize} 19 | 20 | The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} 21 | \item 22 | iir/State.\+h\end{DoxyCompactItemize} 23 | -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1DirectFormII.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classIir_1_1DirectFormII}{}\doxysubsection{Iir\+::Direct\+Form\+II Class Reference} 2 | \label{classIir_1_1DirectFormII}\index{Iir::DirectFormII@{Iir::DirectFormII}} 3 | 4 | 5 | {\ttfamily \#include $<$State.\+h$>$} 6 | 7 | 8 | 9 | \doxysubsubsection{Detailed Description} 10 | State for applying a second order section to a sample using Direct Form II 11 | 12 | Difference equation\+: 13 | 14 | v\mbox{[}n\mbox{]} = x\mbox{[}n\mbox{]} -\/ (a1/a0)$\ast$v\mbox{[}n-\/1\mbox{]} -\/ (a2/a0)$\ast$v\mbox{[}n-\/2\mbox{]} y(n) = (b0/a0)$\ast$v\mbox{[}n\mbox{]} + (b1/a0)$\ast$v\mbox{[}n-\/1\mbox{]} + (b2/a0)$\ast$v\mbox{[}n-\/2\mbox{]} 15 | 16 | The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} 17 | \item 18 | iir/State.\+h\end{DoxyCompactItemize} 19 | -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1HighPassTransform.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classIir_1_1HighPassTransform}{}\doxysubsection{Iir\+::High\+Pass\+Transform Class Reference} 2 | \label{classIir_1_1HighPassTransform}\index{Iir::HighPassTransform@{Iir::HighPassTransform}} 3 | 4 | 5 | {\ttfamily \#include $<$Pole\+Filter.\+h$>$} 6 | 7 | 8 | 9 | \doxysubsubsection{Detailed Description} 10 | low pass to high pass 11 | 12 | The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Pole\+Filter.\+h\item 15 | iir/Pole\+Filter.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1Layout.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classIir_1_1Layout}{}\doxysubsection{Iir\+::Layout$<$ Max\+Poles $>$ Class Template Reference} 2 | \label{classIir_1_1Layout}\index{Iir::Layout$<$ MaxPoles $>$@{Iir::Layout$<$ MaxPoles $>$}} 3 | 4 | 5 | {\ttfamily \#include $<$Layout.\+h$>$} 6 | 7 | 8 | 9 | \doxysubsubsection{Detailed Description} 10 | \subsubsection*{template$<$int Max\+Poles$>$\newline 11 | class Iir\+::\+Layout$<$ Max\+Poles $>$} 12 | 13 | Storage for \mbox{\hyperlink{classIir_1_1Layout}{Layout}} 14 | 15 | The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} 16 | \item 17 | iir/Layout.\+h\end{DoxyCompactItemize} 18 | -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1LayoutBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/classIir_1_1LayoutBase.pdf -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1LayoutBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classIir_1_1LayoutBase}{}\doxysubsection{Iir\+::Layout\+Base Class Reference} 2 | \label{classIir_1_1LayoutBase}\index{Iir::LayoutBase@{Iir::LayoutBase}} 3 | 4 | 5 | {\ttfamily \#include $<$Layout.\+h$>$} 6 | 7 | Inheritance diagram for Iir\+::Layout\+Base\+:\begin{figure}[H] 8 | \begin{center} 9 | \leavevmode 10 | \includegraphics[height=0.910569cm]{classIir_1_1LayoutBase} 11 | \end{center} 12 | \end{figure} 13 | 14 | 15 | \doxysubsubsection{Detailed Description} 16 | Base uses pointers to reduce template instantiations 17 | 18 | The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} 19 | \item 20 | iir/Layout.\+h\end{DoxyCompactItemize} 21 | -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1LowPassTransform.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classIir_1_1LowPassTransform}{}\doxysubsection{Iir\+::Low\+Pass\+Transform Class Reference} 2 | \label{classIir_1_1LowPassTransform}\index{Iir::LowPassTransform@{Iir::LowPassTransform}} 3 | 4 | 5 | {\ttfamily \#include $<$Pole\+Filter.\+h$>$} 6 | 7 | 8 | 9 | \doxysubsubsection{Detailed Description} 10 | s-\/plane to z-\/plane transforms 11 | 12 | For pole filters, an analog prototype is created via placement of poles and zeros in the s-\/plane. The analog prototype is either a halfband low pass or a halfband low shelf. The poles, zeros, and normalization parameters are transformed into the z-\/plane using variants of the bilinear transformation. low pass to low pass 13 | 14 | The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} 15 | \item 16 | iir/Pole\+Filter.\+h\item 17 | iir/Pole\+Filter.\+cpp\end{DoxyCompactItemize} 18 | -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1PoleFilterBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/classIir_1_1PoleFilterBase.pdf -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1PoleFilterBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classIir_1_1PoleFilterBase}{}\doxysubsection{Iir\+::Pole\+Filter\+Base$<$ Analog\+Prototype $>$ Class Template Reference} 2 | \label{classIir_1_1PoleFilterBase}\index{Iir::PoleFilterBase$<$ AnalogPrototype $>$@{Iir::PoleFilterBase$<$ AnalogPrototype $>$}} 3 | 4 | 5 | {\ttfamily \#include $<$Pole\+Filter.\+h$>$} 6 | 7 | Inheritance diagram for Iir\+::Pole\+Filter\+Base$<$ Analog\+Prototype $>$\+:\begin{figure}[H] 8 | \begin{center} 9 | \leavevmode 10 | \includegraphics[height=3.000000cm]{classIir_1_1PoleFilterBase} 11 | \end{center} 12 | \end{figure} 13 | \doxysubsubsection*{Additional Inherited Members} 14 | 15 | 16 | \doxysubsubsection{Detailed Description} 17 | \subsubsection*{template$<$class Analog\+Prototype$>$\newline 18 | class Iir\+::\+Pole\+Filter\+Base$<$ Analog\+Prototype $>$} 19 | 20 | Serves a container to hold the analog prototype and the digital pole/zero layout. 21 | 22 | The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} 23 | \item 24 | iir/Pole\+Filter.\+h\end{DoxyCompactItemize} 25 | -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1PoleFilterBase2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/classIir_1_1PoleFilterBase2.pdf -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1PoleFilterBase2.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classIir_1_1PoleFilterBase2}{}\doxysubsection{Iir\+::Pole\+Filter\+Base2 Class Reference} 2 | \label{classIir_1_1PoleFilterBase2}\index{Iir::PoleFilterBase2@{Iir::PoleFilterBase2}} 3 | 4 | 5 | {\ttfamily \#include $<$Pole\+Filter.\+h$>$} 6 | 7 | Inheritance diagram for Iir\+::Pole\+Filter\+Base2\+:\begin{figure}[H] 8 | \begin{center} 9 | \leavevmode 10 | \includegraphics[height=8.860760cm]{classIir_1_1PoleFilterBase2} 11 | \end{center} 12 | \end{figure} 13 | \doxysubsubsection*{Additional Inherited Members} 14 | 15 | 16 | \doxysubsubsection{Detailed Description} 17 | Factored implementations to reduce template instantiations 18 | 19 | The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} 20 | \item 21 | iir/Pole\+Filter.\+h\end{DoxyCompactItemize} 22 | -------------------------------------------------------------------------------- /docs/pdf/classIir_1_1TransposedDirectFormII.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{classIir_1_1TransposedDirectFormII}{}\doxysubsection{Iir\+::Transposed\+Direct\+Form\+II Class Reference} 2 | \label{classIir_1_1TransposedDirectFormII}\index{Iir::TransposedDirectFormII@{Iir::TransposedDirectFormII}} 3 | 4 | 5 | The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} 6 | \item 7 | iir/State.\+h\end{DoxyCompactItemize} 8 | -------------------------------------------------------------------------------- /docs/pdf/index.tex: -------------------------------------------------------------------------------- 1 | \label{index_md_doxy}% 2 | \Hypertarget{index_md_doxy}% 3 | An infinite impulse response (IIR) filter library for Linux, Mac OSX and Windows which implements Butterworth, RBJ, Chebychev filters and can easily import coefficients generated by Python (scipy). 4 | 5 | The filter processes the data sample by sample for realtime processing. 6 | 7 | It uses templates to allocate the required memory so that it can run without any malloc / new commands. Memory is allocated at compile time so that there is never any risk of memory leaks. 8 | 9 | This library has been further developed from Vinnie Falco\textquotesingle{}s great original work which can be found here\+: 10 | 11 | \href{https://github.com/vinniefalco/DSPFilters}{\texttt{ https\+://github.\+com/vinniefalco/\+DSPFilters}} 12 | 13 | Bernd Porr -- \href{http://www.berndporr.me.uk}{\texttt{ http\+://www.\+berndporr.\+me.\+uk}} -------------------------------------------------------------------------------- /docs/pdf/namespaceIir_1_1ChebyshevI.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{namespaceIir_1_1ChebyshevI}{}\doxysubsection{Iir\+::ChebyshevI Namespace Reference} 2 | \label{namespaceIir_1_1ChebyshevI}\index{Iir::ChebyshevI@{Iir::ChebyshevI}} 3 | \doxysubsubsection*{Classes} 4 | \begin{DoxyCompactItemize} 5 | \item 6 | class \mbox{\hyperlink{classIir_1_1ChebyshevI_1_1AnalogLowPass}{Analog\+Low\+Pass}} 7 | \item 8 | class \mbox{\hyperlink{classIir_1_1ChebyshevI_1_1AnalogLowShelf}{Analog\+Low\+Shelf}} 9 | \item 10 | struct \mbox{\hyperlink{structIir_1_1ChebyshevI_1_1LowPassBase}{Low\+Pass\+Base}} 11 | \item 12 | struct \mbox{\hyperlink{structIir_1_1ChebyshevI_1_1HighPassBase}{High\+Pass\+Base}} 13 | \item 14 | struct \mbox{\hyperlink{structIir_1_1ChebyshevI_1_1BandPassBase}{Band\+Pass\+Base}} 15 | \item 16 | struct \mbox{\hyperlink{structIir_1_1ChebyshevI_1_1BandStopBase}{Band\+Stop\+Base}} 17 | \item 18 | struct \mbox{\hyperlink{structIir_1_1ChebyshevI_1_1LowShelfBase}{Low\+Shelf\+Base}} 19 | \item 20 | struct \mbox{\hyperlink{structIir_1_1ChebyshevI_1_1HighShelfBase}{High\+Shelf\+Base}} 21 | \item 22 | struct \mbox{\hyperlink{structIir_1_1ChebyshevI_1_1BandShelfBase}{Band\+Shelf\+Base}} 23 | \item 24 | struct \mbox{\hyperlink{structIir_1_1ChebyshevI_1_1LowPass}{Low\+Pass}} 25 | \item 26 | struct \mbox{\hyperlink{structIir_1_1ChebyshevI_1_1HighPass}{High\+Pass}} 27 | \item 28 | struct \mbox{\hyperlink{structIir_1_1ChebyshevI_1_1BandPass}{Band\+Pass}} 29 | \item 30 | struct \mbox{\hyperlink{structIir_1_1ChebyshevI_1_1BandStop}{Band\+Stop}} 31 | \item 32 | struct \mbox{\hyperlink{structIir_1_1ChebyshevI_1_1LowShelf}{Low\+Shelf}} 33 | \item 34 | struct \mbox{\hyperlink{structIir_1_1ChebyshevI_1_1HighShelf}{High\+Shelf}} 35 | \item 36 | struct \mbox{\hyperlink{structIir_1_1ChebyshevI_1_1BandShelf}{Band\+Shelf}} 37 | \end{DoxyCompactItemize} 38 | 39 | 40 | \doxysubsubsection{Detailed Description} 41 | Filters with Chebyshev response characteristics. The last parameter defines the passband ripple in decibel. -------------------------------------------------------------------------------- /docs/pdf/namespaceIir_1_1ChebyshevII.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{namespaceIir_1_1ChebyshevII}{}\doxysubsection{Iir\+::Chebyshev\+II Namespace Reference} 2 | \label{namespaceIir_1_1ChebyshevII}\index{Iir::ChebyshevII@{Iir::ChebyshevII}} 3 | \doxysubsubsection*{Classes} 4 | \begin{DoxyCompactItemize} 5 | \item 6 | class \mbox{\hyperlink{classIir_1_1ChebyshevII_1_1AnalogLowPass}{Analog\+Low\+Pass}} 7 | \item 8 | class \mbox{\hyperlink{classIir_1_1ChebyshevII_1_1AnalogLowShelf}{Analog\+Low\+Shelf}} 9 | \item 10 | struct \mbox{\hyperlink{structIir_1_1ChebyshevII_1_1LowPassBase}{Low\+Pass\+Base}} 11 | \item 12 | struct \mbox{\hyperlink{structIir_1_1ChebyshevII_1_1HighPassBase}{High\+Pass\+Base}} 13 | \item 14 | struct \mbox{\hyperlink{structIir_1_1ChebyshevII_1_1BandPassBase}{Band\+Pass\+Base}} 15 | \item 16 | struct \mbox{\hyperlink{structIir_1_1ChebyshevII_1_1BandStopBase}{Band\+Stop\+Base}} 17 | \item 18 | struct \mbox{\hyperlink{structIir_1_1ChebyshevII_1_1LowShelfBase}{Low\+Shelf\+Base}} 19 | \item 20 | struct \mbox{\hyperlink{structIir_1_1ChebyshevII_1_1HighShelfBase}{High\+Shelf\+Base}} 21 | \item 22 | struct \mbox{\hyperlink{structIir_1_1ChebyshevII_1_1BandShelfBase}{Band\+Shelf\+Base}} 23 | \item 24 | struct \mbox{\hyperlink{structIir_1_1ChebyshevII_1_1LowPass}{Low\+Pass}} 25 | \item 26 | struct \mbox{\hyperlink{structIir_1_1ChebyshevII_1_1HighPass}{High\+Pass}} 27 | \item 28 | struct \mbox{\hyperlink{structIir_1_1ChebyshevII_1_1BandPass}{Band\+Pass}} 29 | \item 30 | struct \mbox{\hyperlink{structIir_1_1ChebyshevII_1_1BandStop}{Band\+Stop}} 31 | \item 32 | struct \mbox{\hyperlink{structIir_1_1ChebyshevII_1_1LowShelf}{Low\+Shelf}} 33 | \item 34 | struct \mbox{\hyperlink{structIir_1_1ChebyshevII_1_1HighShelf}{High\+Shelf}} 35 | \item 36 | struct \mbox{\hyperlink{structIir_1_1ChebyshevII_1_1BandShelf}{Band\+Shelf}} 37 | \end{DoxyCompactItemize} 38 | 39 | 40 | \doxysubsubsection{Detailed Description} 41 | Filters with \mbox{\hyperlink{namespaceIir_1_1ChebyshevII}{Chebyshev\+II}} response characteristics. The last parameter defines the minimal stopband rejection requested. Generally there will be frequencies where the rejection is much better but this parameter guarantees that the rejection is at least as specified. -------------------------------------------------------------------------------- /docs/pdf/namespaceIir_1_1Custom.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{namespaceIir_1_1Custom}{}\doxysubsection{Iir\+::Custom Namespace Reference} 2 | \label{namespaceIir_1_1Custom}\index{Iir::Custom@{Iir::Custom}} 3 | \doxysubsubsection*{Classes} 4 | \begin{DoxyCompactItemize} 5 | \item 6 | struct \mbox{\hyperlink{structIir_1_1Custom_1_1OnePole}{One\+Pole}} 7 | \item 8 | struct \mbox{\hyperlink{structIir_1_1Custom_1_1TwoPole}{Two\+Pole}} 9 | \item 10 | struct \mbox{\hyperlink{structIir_1_1Custom_1_1SOSCascade}{SOSCascade}} 11 | \end{DoxyCompactItemize} 12 | 13 | 14 | \doxysubsubsection{Detailed Description} 15 | Single pole, \mbox{\hyperlink{classIir_1_1Biquad}{Biquad}} and cascade of Biquads with parameters allowing for directly setting the parameters. -------------------------------------------------------------------------------- /docs/pdf/namespaces.tex: -------------------------------------------------------------------------------- 1 | \doxysubsection{Namespace List} 2 | Here is a list of all documented namespaces with brief descriptions\+:\begin{DoxyCompactList} 3 | \item\contentsline{section}{\mbox{\hyperlink{namespaceIir}{Iir}} }{\pageref{namespaceIir}}{} 4 | \item\contentsline{section}{\mbox{\hyperlink{namespaceIir_1_1Butterworth}{Iir\+::\+Butterworth}} }{\pageref{namespaceIir_1_1Butterworth}}{} 5 | \item\contentsline{section}{\mbox{\hyperlink{namespaceIir_1_1ChebyshevI}{Iir\+::\+ChebyshevI}} }{\pageref{namespaceIir_1_1ChebyshevI}}{} 6 | \item\contentsline{section}{\mbox{\hyperlink{namespaceIir_1_1ChebyshevII}{Iir\+::\+Chebyshev\+II}} }{\pageref{namespaceIir_1_1ChebyshevII}}{} 7 | \item\contentsline{section}{\mbox{\hyperlink{namespaceIir_1_1Custom}{Iir\+::\+Custom}} }{\pageref{namespaceIir_1_1Custom}}{} 8 | \end{DoxyCompactList} 9 | -------------------------------------------------------------------------------- /docs/pdf/refman.ilg: -------------------------------------------------------------------------------- 1 | This is makeindex, version 2.15 [TeX Live 2022/dev] (kpathsea + Thai support). 2 | Scanning input file refman.idx....done (348 entries accepted, 0 rejected). 3 | Sorting entries......done (3176 comparisons). 4 | Generating output file refman.ind....done (379 lines written, 0 warnings). 5 | Output written in refman.ind. 6 | Transcript written in refman.ilg. 7 | -------------------------------------------------------------------------------- /docs/pdf/refman.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/refman.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1BiquadPoleState.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1BiquadPoleState.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1BiquadPoleState.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1BiquadPoleState}{}\doxysubsection{Iir\+::Biquad\+Pole\+State Struct Reference} 2 | \label{structIir_1_1BiquadPoleState}\index{Iir::BiquadPoleState@{Iir::BiquadPoleState}} 3 | 4 | 5 | {\ttfamily \#include $<$Biquad.\+h$>$} 6 | 7 | Inheritance diagram for Iir\+::Biquad\+Pole\+State\+:\begin{figure}[H] 8 | \begin{center} 9 | \leavevmode 10 | \includegraphics[height=2.000000cm]{structIir_1_1BiquadPoleState} 11 | \end{center} 12 | \end{figure} 13 | 14 | 15 | \doxysubsubsection{Detailed Description} 16 | Expresses a biquad as a pair of pole/zeros, with gain values so that the coefficients can be reconstructed precisely. 17 | 18 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 19 | \item 20 | iir/Biquad.\+h\item 21 | iir/Biquad.\+cpp\end{DoxyCompactItemize} 22 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Butterworth_1_1BandPass.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1Butterworth_1_1BandPass.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Butterworth_1_1BandPassBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1Butterworth_1_1BandPassBase.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Butterworth_1_1BandPassBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1Butterworth_1_1BandPassBase}{}\doxysubsection{Iir\+::Butterworth\+::Band\+Pass\+Base Struct Reference} 2 | \label{structIir_1_1Butterworth_1_1BandPassBase}\index{Iir::Butterworth::BandPassBase@{Iir::Butterworth::BandPassBase}} 3 | Inheritance diagram for Iir\+::Butterworth\+::Band\+Pass\+Base\+:\begin{figure}[H] 4 | \begin{center} 5 | \leavevmode 6 | \includegraphics[height=4.000000cm]{structIir_1_1Butterworth_1_1BandPassBase} 7 | \end{center} 8 | \end{figure} 9 | \doxysubsubsection*{Additional Inherited Members} 10 | 11 | 12 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Butterworth.\+h\item 15 | iir/Butterworth.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Butterworth_1_1BandShelf.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1Butterworth_1_1BandShelf.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Butterworth_1_1BandShelfBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1Butterworth_1_1BandShelfBase.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Butterworth_1_1BandShelfBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1Butterworth_1_1BandShelfBase}{}\doxysubsection{Iir\+::Butterworth\+::Band\+Shelf\+Base Struct Reference} 2 | \label{structIir_1_1Butterworth_1_1BandShelfBase}\index{Iir::Butterworth::BandShelfBase@{Iir::Butterworth::BandShelfBase}} 3 | Inheritance diagram for Iir\+::Butterworth\+::Band\+Shelf\+Base\+:\begin{figure}[H] 4 | \begin{center} 5 | \leavevmode 6 | \includegraphics[height=4.000000cm]{structIir_1_1Butterworth_1_1BandShelfBase} 7 | \end{center} 8 | \end{figure} 9 | \doxysubsubsection*{Additional Inherited Members} 10 | 11 | 12 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Butterworth.\+h\item 15 | iir/Butterworth.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Butterworth_1_1BandStop.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1Butterworth_1_1BandStop.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Butterworth_1_1BandStopBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1Butterworth_1_1BandStopBase.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Butterworth_1_1BandStopBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1Butterworth_1_1BandStopBase}{}\doxysubsection{Iir\+::Butterworth\+::Band\+Stop\+Base Struct Reference} 2 | \label{structIir_1_1Butterworth_1_1BandStopBase}\index{Iir::Butterworth::BandStopBase@{Iir::Butterworth::BandStopBase}} 3 | Inheritance diagram for Iir\+::Butterworth\+::Band\+Stop\+Base\+:\begin{figure}[H] 4 | \begin{center} 5 | \leavevmode 6 | \includegraphics[height=4.000000cm]{structIir_1_1Butterworth_1_1BandStopBase} 7 | \end{center} 8 | \end{figure} 9 | \doxysubsubsection*{Additional Inherited Members} 10 | 11 | 12 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Butterworth.\+h\item 15 | iir/Butterworth.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Butterworth_1_1HighPass.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1Butterworth_1_1HighPass.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Butterworth_1_1HighPassBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1Butterworth_1_1HighPassBase.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Butterworth_1_1HighPassBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1Butterworth_1_1HighPassBase}{}\doxysubsection{Iir\+::Butterworth\+::High\+Pass\+Base Struct Reference} 2 | \label{structIir_1_1Butterworth_1_1HighPassBase}\index{Iir::Butterworth::HighPassBase@{Iir::Butterworth::HighPassBase}} 3 | Inheritance diagram for Iir\+::Butterworth\+::High\+Pass\+Base\+:\begin{figure}[H] 4 | \begin{center} 5 | \leavevmode 6 | \includegraphics[height=4.000000cm]{structIir_1_1Butterworth_1_1HighPassBase} 7 | \end{center} 8 | \end{figure} 9 | \doxysubsubsection*{Additional Inherited Members} 10 | 11 | 12 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Butterworth.\+h\item 15 | iir/Butterworth.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Butterworth_1_1HighShelf.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1Butterworth_1_1HighShelf.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Butterworth_1_1HighShelfBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1Butterworth_1_1HighShelfBase.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Butterworth_1_1HighShelfBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1Butterworth_1_1HighShelfBase}{}\doxysubsection{Iir\+::Butterworth\+::High\+Shelf\+Base Struct Reference} 2 | \label{structIir_1_1Butterworth_1_1HighShelfBase}\index{Iir::Butterworth::HighShelfBase@{Iir::Butterworth::HighShelfBase}} 3 | Inheritance diagram for Iir\+::Butterworth\+::High\+Shelf\+Base\+:\begin{figure}[H] 4 | \begin{center} 5 | \leavevmode 6 | \includegraphics[height=4.000000cm]{structIir_1_1Butterworth_1_1HighShelfBase} 7 | \end{center} 8 | \end{figure} 9 | \doxysubsubsection*{Additional Inherited Members} 10 | 11 | 12 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Butterworth.\+h\item 15 | iir/Butterworth.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Butterworth_1_1LowPass.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1Butterworth_1_1LowPass.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Butterworth_1_1LowPassBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1Butterworth_1_1LowPassBase.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Butterworth_1_1LowPassBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1Butterworth_1_1LowPassBase}{}\doxysubsection{Iir\+::Butterworth\+::Low\+Pass\+Base Struct Reference} 2 | \label{structIir_1_1Butterworth_1_1LowPassBase}\index{Iir::Butterworth::LowPassBase@{Iir::Butterworth::LowPassBase}} 3 | Inheritance diagram for Iir\+::Butterworth\+::Low\+Pass\+Base\+:\begin{figure}[H] 4 | \begin{center} 5 | \leavevmode 6 | \includegraphics[height=4.000000cm]{structIir_1_1Butterworth_1_1LowPassBase} 7 | \end{center} 8 | \end{figure} 9 | \doxysubsubsection*{Additional Inherited Members} 10 | 11 | 12 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Butterworth.\+h\item 15 | iir/Butterworth.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Butterworth_1_1LowShelf.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1Butterworth_1_1LowShelf.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Butterworth_1_1LowShelfBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1Butterworth_1_1LowShelfBase.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Butterworth_1_1LowShelfBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1Butterworth_1_1LowShelfBase}{}\doxysubsection{Iir\+::Butterworth\+::Low\+Shelf\+Base Struct Reference} 2 | \label{structIir_1_1Butterworth_1_1LowShelfBase}\index{Iir::Butterworth::LowShelfBase@{Iir::Butterworth::LowShelfBase}} 3 | Inheritance diagram for Iir\+::Butterworth\+::Low\+Shelf\+Base\+:\begin{figure}[H] 4 | \begin{center} 5 | \leavevmode 6 | \includegraphics[height=4.000000cm]{structIir_1_1Butterworth_1_1LowShelfBase} 7 | \end{center} 8 | \end{figure} 9 | \doxysubsubsection*{Additional Inherited Members} 10 | 11 | 12 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Butterworth.\+h\item 15 | iir/Butterworth.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Cascade_1_1Storage.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1Cascade_1_1Storage}{}\doxysubsection{Iir\+::Cascade\+::Storage Struct Reference} 2 | \label{structIir_1_1Cascade_1_1Storage}\index{Iir::Cascade::Storage@{Iir::Cascade::Storage}} 3 | 4 | 5 | {\ttfamily \#include $<$Cascade.\+h$>$} 6 | 7 | 8 | 9 | \doxysubsubsection{Detailed Description} 10 | To return the array from a function and to set it. Transmits number of stages and the pointer to the array. 11 | 12 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Cascade.\+h\end{DoxyCompactItemize} 15 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevII_1_1BandPass.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevII_1_1BandPass.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevII_1_1BandPassBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevII_1_1BandPassBase.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevII_1_1BandPassBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1ChebyshevII_1_1BandPassBase}{}\doxysubsection{Iir\+::Chebyshev\+II\+::Band\+Pass\+Base Struct Reference} 2 | \label{structIir_1_1ChebyshevII_1_1BandPassBase}\index{Iir::ChebyshevII::BandPassBase@{Iir::ChebyshevII::BandPassBase}} 3 | Inheritance diagram for Iir\+::Chebyshev\+II\+::Band\+Pass\+Base\+:\begin{figure}[H] 4 | \begin{center} 5 | \leavevmode 6 | \includegraphics[height=4.000000cm]{structIir_1_1ChebyshevII_1_1BandPassBase} 7 | \end{center} 8 | \end{figure} 9 | \doxysubsubsection*{Additional Inherited Members} 10 | 11 | 12 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Chebyshev\+II.\+h\item 15 | iir/Chebyshev\+II.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevII_1_1BandShelf.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevII_1_1BandShelf.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevII_1_1BandShelfBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevII_1_1BandShelfBase.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevII_1_1BandShelfBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1ChebyshevII_1_1BandShelfBase}{}\doxysubsection{Iir\+::Chebyshev\+II\+::Band\+Shelf\+Base Struct Reference} 2 | \label{structIir_1_1ChebyshevII_1_1BandShelfBase}\index{Iir::ChebyshevII::BandShelfBase@{Iir::ChebyshevII::BandShelfBase}} 3 | Inheritance diagram for Iir\+::Chebyshev\+II\+::Band\+Shelf\+Base\+:\begin{figure}[H] 4 | \begin{center} 5 | \leavevmode 6 | \includegraphics[height=4.000000cm]{structIir_1_1ChebyshevII_1_1BandShelfBase} 7 | \end{center} 8 | \end{figure} 9 | \doxysubsubsection*{Additional Inherited Members} 10 | 11 | 12 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Chebyshev\+II.\+h\item 15 | iir/Chebyshev\+II.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevII_1_1BandStop.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevII_1_1BandStop.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevII_1_1BandStopBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevII_1_1BandStopBase.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevII_1_1BandStopBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1ChebyshevII_1_1BandStopBase}{}\doxysubsection{Iir\+::Chebyshev\+II\+::Band\+Stop\+Base Struct Reference} 2 | \label{structIir_1_1ChebyshevII_1_1BandStopBase}\index{Iir::ChebyshevII::BandStopBase@{Iir::ChebyshevII::BandStopBase}} 3 | Inheritance diagram for Iir\+::Chebyshev\+II\+::Band\+Stop\+Base\+:\begin{figure}[H] 4 | \begin{center} 5 | \leavevmode 6 | \includegraphics[height=4.000000cm]{structIir_1_1ChebyshevII_1_1BandStopBase} 7 | \end{center} 8 | \end{figure} 9 | \doxysubsubsection*{Additional Inherited Members} 10 | 11 | 12 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Chebyshev\+II.\+h\item 15 | iir/Chebyshev\+II.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevII_1_1HighPass.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevII_1_1HighPass.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevII_1_1HighPassBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevII_1_1HighPassBase.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevII_1_1HighPassBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1ChebyshevII_1_1HighPassBase}{}\doxysubsection{Iir\+::Chebyshev\+II\+::High\+Pass\+Base Struct Reference} 2 | \label{structIir_1_1ChebyshevII_1_1HighPassBase}\index{Iir::ChebyshevII::HighPassBase@{Iir::ChebyshevII::HighPassBase}} 3 | Inheritance diagram for Iir\+::Chebyshev\+II\+::High\+Pass\+Base\+:\begin{figure}[H] 4 | \begin{center} 5 | \leavevmode 6 | \includegraphics[height=4.000000cm]{structIir_1_1ChebyshevII_1_1HighPassBase} 7 | \end{center} 8 | \end{figure} 9 | \doxysubsubsection*{Additional Inherited Members} 10 | 11 | 12 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Chebyshev\+II.\+h\item 15 | iir/Chebyshev\+II.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevII_1_1HighShelf.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevII_1_1HighShelf.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevII_1_1HighShelfBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevII_1_1HighShelfBase.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevII_1_1HighShelfBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1ChebyshevII_1_1HighShelfBase}{}\doxysubsection{Iir\+::Chebyshev\+II\+::High\+Shelf\+Base Struct Reference} 2 | \label{structIir_1_1ChebyshevII_1_1HighShelfBase}\index{Iir::ChebyshevII::HighShelfBase@{Iir::ChebyshevII::HighShelfBase}} 3 | Inheritance diagram for Iir\+::Chebyshev\+II\+::High\+Shelf\+Base\+:\begin{figure}[H] 4 | \begin{center} 5 | \leavevmode 6 | \includegraphics[height=4.000000cm]{structIir_1_1ChebyshevII_1_1HighShelfBase} 7 | \end{center} 8 | \end{figure} 9 | \doxysubsubsection*{Additional Inherited Members} 10 | 11 | 12 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Chebyshev\+II.\+h\item 15 | iir/Chebyshev\+II.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevII_1_1LowPass.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevII_1_1LowPass.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevII_1_1LowPassBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevII_1_1LowPassBase.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevII_1_1LowPassBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1ChebyshevII_1_1LowPassBase}{}\doxysubsection{Iir\+::Chebyshev\+II\+::Low\+Pass\+Base Struct Reference} 2 | \label{structIir_1_1ChebyshevII_1_1LowPassBase}\index{Iir::ChebyshevII::LowPassBase@{Iir::ChebyshevII::LowPassBase}} 3 | Inheritance diagram for Iir\+::Chebyshev\+II\+::Low\+Pass\+Base\+:\begin{figure}[H] 4 | \begin{center} 5 | \leavevmode 6 | \includegraphics[height=4.000000cm]{structIir_1_1ChebyshevII_1_1LowPassBase} 7 | \end{center} 8 | \end{figure} 9 | \doxysubsubsection*{Additional Inherited Members} 10 | 11 | 12 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Chebyshev\+II.\+h\item 15 | iir/Chebyshev\+II.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevII_1_1LowShelf.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevII_1_1LowShelf.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevII_1_1LowShelfBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevII_1_1LowShelfBase.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevII_1_1LowShelfBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1ChebyshevII_1_1LowShelfBase}{}\doxysubsection{Iir\+::Chebyshev\+II\+::Low\+Shelf\+Base Struct Reference} 2 | \label{structIir_1_1ChebyshevII_1_1LowShelfBase}\index{Iir::ChebyshevII::LowShelfBase@{Iir::ChebyshevII::LowShelfBase}} 3 | Inheritance diagram for Iir\+::Chebyshev\+II\+::Low\+Shelf\+Base\+:\begin{figure}[H] 4 | \begin{center} 5 | \leavevmode 6 | \includegraphics[height=4.000000cm]{structIir_1_1ChebyshevII_1_1LowShelfBase} 7 | \end{center} 8 | \end{figure} 9 | \doxysubsubsection*{Additional Inherited Members} 10 | 11 | 12 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Chebyshev\+II.\+h\item 15 | iir/Chebyshev\+II.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevI_1_1BandPass.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevI_1_1BandPass.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevI_1_1BandPassBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevI_1_1BandPassBase.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevI_1_1BandPassBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1ChebyshevI_1_1BandPassBase}{}\doxysubsection{Iir\+::ChebyshevI\+::Band\+Pass\+Base Struct Reference} 2 | \label{structIir_1_1ChebyshevI_1_1BandPassBase}\index{Iir::ChebyshevI::BandPassBase@{Iir::ChebyshevI::BandPassBase}} 3 | Inheritance diagram for Iir\+::ChebyshevI\+::Band\+Pass\+Base\+:\begin{figure}[H] 4 | \begin{center} 5 | \leavevmode 6 | \includegraphics[height=4.000000cm]{structIir_1_1ChebyshevI_1_1BandPassBase} 7 | \end{center} 8 | \end{figure} 9 | \doxysubsubsection*{Additional Inherited Members} 10 | 11 | 12 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Chebyshev\+I.\+h\item 15 | iir/Chebyshev\+I.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevI_1_1BandShelf.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevI_1_1BandShelf.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevI_1_1BandShelfBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevI_1_1BandShelfBase.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevI_1_1BandShelfBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1ChebyshevI_1_1BandShelfBase}{}\doxysubsection{Iir\+::ChebyshevI\+::Band\+Shelf\+Base Struct Reference} 2 | \label{structIir_1_1ChebyshevI_1_1BandShelfBase}\index{Iir::ChebyshevI::BandShelfBase@{Iir::ChebyshevI::BandShelfBase}} 3 | Inheritance diagram for Iir\+::ChebyshevI\+::Band\+Shelf\+Base\+:\begin{figure}[H] 4 | \begin{center} 5 | \leavevmode 6 | \includegraphics[height=4.000000cm]{structIir_1_1ChebyshevI_1_1BandShelfBase} 7 | \end{center} 8 | \end{figure} 9 | \doxysubsubsection*{Additional Inherited Members} 10 | 11 | 12 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Chebyshev\+I.\+h\item 15 | iir/Chebyshev\+I.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevI_1_1BandStop.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevI_1_1BandStop.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevI_1_1BandStopBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevI_1_1BandStopBase.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevI_1_1BandStopBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1ChebyshevI_1_1BandStopBase}{}\doxysubsection{Iir\+::ChebyshevI\+::Band\+Stop\+Base Struct Reference} 2 | \label{structIir_1_1ChebyshevI_1_1BandStopBase}\index{Iir::ChebyshevI::BandStopBase@{Iir::ChebyshevI::BandStopBase}} 3 | Inheritance diagram for Iir\+::ChebyshevI\+::Band\+Stop\+Base\+:\begin{figure}[H] 4 | \begin{center} 5 | \leavevmode 6 | \includegraphics[height=4.000000cm]{structIir_1_1ChebyshevI_1_1BandStopBase} 7 | \end{center} 8 | \end{figure} 9 | \doxysubsubsection*{Additional Inherited Members} 10 | 11 | 12 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Chebyshev\+I.\+h\item 15 | iir/Chebyshev\+I.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevI_1_1HighPass.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevI_1_1HighPass.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevI_1_1HighPassBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevI_1_1HighPassBase.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevI_1_1HighPassBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1ChebyshevI_1_1HighPassBase}{}\doxysubsection{Iir\+::ChebyshevI\+::High\+Pass\+Base Struct Reference} 2 | \label{structIir_1_1ChebyshevI_1_1HighPassBase}\index{Iir::ChebyshevI::HighPassBase@{Iir::ChebyshevI::HighPassBase}} 3 | Inheritance diagram for Iir\+::ChebyshevI\+::High\+Pass\+Base\+:\begin{figure}[H] 4 | \begin{center} 5 | \leavevmode 6 | \includegraphics[height=4.000000cm]{structIir_1_1ChebyshevI_1_1HighPassBase} 7 | \end{center} 8 | \end{figure} 9 | \doxysubsubsection*{Additional Inherited Members} 10 | 11 | 12 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Chebyshev\+I.\+h\item 15 | iir/Chebyshev\+I.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevI_1_1HighShelf.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevI_1_1HighShelf.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevI_1_1HighShelfBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevI_1_1HighShelfBase.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevI_1_1HighShelfBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1ChebyshevI_1_1HighShelfBase}{}\doxysubsection{Iir\+::ChebyshevI\+::High\+Shelf\+Base Struct Reference} 2 | \label{structIir_1_1ChebyshevI_1_1HighShelfBase}\index{Iir::ChebyshevI::HighShelfBase@{Iir::ChebyshevI::HighShelfBase}} 3 | Inheritance diagram for Iir\+::ChebyshevI\+::High\+Shelf\+Base\+:\begin{figure}[H] 4 | \begin{center} 5 | \leavevmode 6 | \includegraphics[height=4.000000cm]{structIir_1_1ChebyshevI_1_1HighShelfBase} 7 | \end{center} 8 | \end{figure} 9 | \doxysubsubsection*{Additional Inherited Members} 10 | 11 | 12 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Chebyshev\+I.\+h\item 15 | iir/Chebyshev\+I.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevI_1_1LowPass.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevI_1_1LowPass.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevI_1_1LowPassBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevI_1_1LowPassBase.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevI_1_1LowPassBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1ChebyshevI_1_1LowPassBase}{}\doxysubsection{Iir\+::ChebyshevI\+::Low\+Pass\+Base Struct Reference} 2 | \label{structIir_1_1ChebyshevI_1_1LowPassBase}\index{Iir::ChebyshevI::LowPassBase@{Iir::ChebyshevI::LowPassBase}} 3 | Inheritance diagram for Iir\+::ChebyshevI\+::Low\+Pass\+Base\+:\begin{figure}[H] 4 | \begin{center} 5 | \leavevmode 6 | \includegraphics[height=4.000000cm]{structIir_1_1ChebyshevI_1_1LowPassBase} 7 | \end{center} 8 | \end{figure} 9 | \doxysubsubsection*{Additional Inherited Members} 10 | 11 | 12 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Chebyshev\+I.\+h\item 15 | iir/Chebyshev\+I.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevI_1_1LowShelf.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevI_1_1LowShelf.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevI_1_1LowShelfBase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ChebyshevI_1_1LowShelfBase.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ChebyshevI_1_1LowShelfBase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1ChebyshevI_1_1LowShelfBase}{}\doxysubsection{Iir\+::ChebyshevI\+::Low\+Shelf\+Base Struct Reference} 2 | \label{structIir_1_1ChebyshevI_1_1LowShelfBase}\index{Iir::ChebyshevI::LowShelfBase@{Iir::ChebyshevI::LowShelfBase}} 3 | Inheritance diagram for Iir\+::ChebyshevI\+::Low\+Shelf\+Base\+:\begin{figure}[H] 4 | \begin{center} 5 | \leavevmode 6 | \includegraphics[height=4.000000cm]{structIir_1_1ChebyshevI_1_1LowShelfBase} 7 | \end{center} 8 | \end{figure} 9 | \doxysubsubsection*{Additional Inherited Members} 10 | 11 | 12 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 13 | \item 14 | iir/Chebyshev\+I.\+h\item 15 | iir/Chebyshev\+I.\+cpp\end{DoxyCompactItemize} 16 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ComplexPair.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1ComplexPair.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1ComplexPair.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1ComplexPair}{}\doxysubsection{Iir\+::Complex\+Pair Struct Reference} 2 | \label{structIir_1_1ComplexPair}\index{Iir::ComplexPair@{Iir::ComplexPair}} 3 | 4 | 5 | {\ttfamily \#include $<$Types.\+h$>$} 6 | 7 | Inheritance diagram for Iir\+::Complex\+Pair\+:\begin{figure}[H] 8 | \begin{center} 9 | \leavevmode 10 | \includegraphics[height=2.000000cm]{structIir_1_1ComplexPair} 11 | \end{center} 12 | \end{figure} 13 | \doxysubsubsection*{Public Member Functions} 14 | \begin{DoxyCompactItemize} 15 | \item 16 | bool \mbox{\hyperlink{structIir_1_1ComplexPair_a79d121320c8b042faebcc0364398b071}{is\+Matched\+Pair}} () const 17 | \end{DoxyCompactItemize} 18 | 19 | 20 | \doxysubsubsection{Detailed Description} 21 | A conjugate or real pair 22 | 23 | \doxysubsubsection{Member Function Documentation} 24 | \mbox{\Hypertarget{structIir_1_1ComplexPair_a79d121320c8b042faebcc0364398b071}\label{structIir_1_1ComplexPair_a79d121320c8b042faebcc0364398b071}} 25 | \index{Iir::ComplexPair@{Iir::ComplexPair}!isMatchedPair@{isMatchedPair}} 26 | \index{isMatchedPair@{isMatchedPair}!Iir::ComplexPair@{Iir::ComplexPair}} 27 | \doxyparagraph{\texorpdfstring{isMatchedPair()}{isMatchedPair()}} 28 | {\footnotesize\ttfamily bool Iir\+::\+Complex\+Pair\+::is\+Matched\+Pair (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}} 29 | 30 | Returns true if this is either a conjugate pair, or a pair of reals where neither is zero. 31 | 32 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize} 33 | \item 34 | iir/Types.\+h\end{DoxyCompactItemize} 35 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Custom_1_1OnePole.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1Custom_1_1OnePole.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Custom_1_1OnePole.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1Custom_1_1OnePole}{}\doxysubsection{Iir\+::Custom\+::One\+Pole Struct Reference} 2 | \label{structIir_1_1Custom_1_1OnePole}\index{Iir::Custom::OnePole@{Iir::Custom::OnePole}} 3 | 4 | 5 | {\ttfamily \#include $<$Custom.\+h$>$} 6 | 7 | Inheritance diagram for Iir\+::Custom\+::One\+Pole\+:\begin{figure}[H] 8 | \begin{center} 9 | \leavevmode 10 | \includegraphics[height=2.000000cm]{structIir_1_1Custom_1_1OnePole} 11 | \end{center} 12 | \end{figure} 13 | \doxysubsubsection*{Additional Inherited Members} 14 | 15 | 16 | \doxysubsubsection{Detailed Description} 17 | Setting up a filter with with one real pole, real zero and scale it by the scale factor 18 | \begin{DoxyParams}{Parameters} 19 | {\em scale} & Scale the FIR coefficients by this factor \\ 20 | \hline 21 | {\em pole} & Position of the pole on the real axis \\ 22 | \hline 23 | {\em zero} & Position of the zero on the real axis \\ 24 | \hline 25 | \end{DoxyParams} 26 | 27 | 28 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 29 | \item 30 | iir/Custom.\+h\item 31 | iir/Custom.\+cpp\end{DoxyCompactItemize} 32 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Custom_1_1SOSCascade.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1Custom_1_1SOSCascade.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Custom_1_1TwoPole.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1Custom_1_1TwoPole.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1Custom_1_1TwoPole.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1Custom_1_1TwoPole}{}\doxysubsection{Iir\+::Custom\+::Two\+Pole Struct Reference} 2 | \label{structIir_1_1Custom_1_1TwoPole}\index{Iir::Custom::TwoPole@{Iir::Custom::TwoPole}} 3 | 4 | 5 | {\ttfamily \#include $<$Custom.\+h$>$} 6 | 7 | Inheritance diagram for Iir\+::Custom\+::Two\+Pole\+:\begin{figure}[H] 8 | \begin{center} 9 | \leavevmode 10 | \includegraphics[height=2.000000cm]{structIir_1_1Custom_1_1TwoPole} 11 | \end{center} 12 | \end{figure} 13 | \doxysubsubsection*{Additional Inherited Members} 14 | 15 | 16 | \doxysubsubsection{Detailed Description} 17 | Set a pole/zero pair in polar coordinates and scale the FIR filter coefficients 18 | \begin{DoxyParams}{Parameters} 19 | {\em pole\+Rho} & Radius of the pole \\ 20 | \hline 21 | {\em pole\+Theta} & Angle of the pole \\ 22 | \hline 23 | {\em zero\+Rho} & Radius of the zero \\ 24 | \hline 25 | {\em zero\+Theta} & Angle of the zero \\ 26 | \hline 27 | \end{DoxyParams} 28 | 29 | 30 | The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize} 31 | \item 32 | iir/Custom.\+h\item 33 | iir/Custom.\+cpp\end{DoxyCompactItemize} 34 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1PoleFilter.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1PoleFilter.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1PoleFilter.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1PoleFilter}{}\doxysubsection{Iir\+::Pole\+Filter$<$ Base\+Class, State\+Type, Max\+Analog\+Poles, Max\+Digital\+Poles $>$ Struct Template Reference} 2 | \label{structIir_1_1PoleFilter}\index{Iir::PoleFilter$<$ BaseClass, StateType, MaxAnalogPoles, MaxDigitalPoles $>$@{Iir::PoleFilter$<$ BaseClass, StateType, MaxAnalogPoles, MaxDigitalPoles $>$}} 3 | 4 | 5 | {\ttfamily \#include $<$Pole\+Filter.\+h$>$} 6 | 7 | Inheritance diagram for Iir\+::Pole\+Filter$<$ Base\+Class, State\+Type, Max\+Analog\+Poles, Max\+Digital\+Poles $>$\+:\begin{figure}[H] 8 | \begin{center} 9 | \leavevmode 10 | \includegraphics[height=1.266968cm]{structIir_1_1PoleFilter} 11 | \end{center} 12 | \end{figure} 13 | \doxysubsubsection*{Additional Inherited Members} 14 | 15 | 16 | \doxysubsubsection{Detailed Description} 17 | \subsubsection*{template$<$class Base\+Class, class State\+Type, int Max\+Analog\+Poles, int Max\+Digital\+Poles = Max\+Analog\+Poles$>$\newline 18 | struct Iir\+::\+Pole\+Filter$<$ Base\+Class, State\+Type, Max\+Analog\+Poles, Max\+Digital\+Poles $>$} 19 | 20 | Storage for pole filters 21 | 22 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize} 23 | \item 24 | iir/Pole\+Filter.\+h\end{DoxyCompactItemize} 25 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1PoleZeroPair.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1PoleZeroPair.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1PoleZeroPair.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1PoleZeroPair}{}\doxysubsection{Iir\+::Pole\+Zero\+Pair Struct Reference} 2 | \label{structIir_1_1PoleZeroPair}\index{Iir::PoleZeroPair@{Iir::PoleZeroPair}} 3 | 4 | 5 | {\ttfamily \#include $<$Types.\+h$>$} 6 | 7 | Inheritance diagram for Iir\+::Pole\+Zero\+Pair\+:\begin{figure}[H] 8 | \begin{center} 9 | \leavevmode 10 | \includegraphics[height=2.000000cm]{structIir_1_1PoleZeroPair} 11 | \end{center} 12 | \end{figure} 13 | 14 | 15 | \doxysubsubsection{Detailed Description} 16 | A pair of pole/zeros. This fits in a biquad (but is missing the gain) 17 | 18 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize} 19 | \item 20 | iir/Types.\+h\end{DoxyCompactItemize} 21 | -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1RBJ_1_1AllPass.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1RBJ_1_1AllPass.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1RBJ_1_1BandPass1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1RBJ_1_1BandPass1.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1RBJ_1_1BandPass2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1RBJ_1_1BandPass2.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1RBJ_1_1BandShelf.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1RBJ_1_1BandShelf.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1RBJ_1_1BandStop.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1RBJ_1_1BandStop.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1RBJ_1_1HighPass.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1RBJ_1_1HighPass.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1RBJ_1_1HighShelf.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1RBJ_1_1HighShelf.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1RBJ_1_1IIRNotch.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1RBJ_1_1IIRNotch.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1RBJ_1_1LowPass.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1RBJ_1_1LowPass.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1RBJ_1_1LowShelf.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1RBJ_1_1LowShelf.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1RBJ_1_1RBJbase.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/pdf/structIir_1_1RBJ_1_1RBJbase.pdf -------------------------------------------------------------------------------- /docs/pdf/structIir_1_1RBJ_1_1RBJbase.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{structIir_1_1RBJ_1_1RBJbase}{}\doxysubsection{Iir\+::RBJ\+::RBJbase Struct Reference} 2 | \label{structIir_1_1RBJ_1_1RBJbase}\index{Iir::RBJ::RBJbase@{Iir::RBJ::RBJbase}} 3 | 4 | 5 | {\ttfamily \#include $<$RBJ.\+h$>$} 6 | 7 | Inheritance diagram for Iir\+::RBJ\+::RBJbase\+:\begin{figure}[H] 8 | \begin{center} 9 | \leavevmode 10 | \includegraphics[height=12.000000cm]{structIir_1_1RBJ_1_1RBJbase} 11 | \end{center} 12 | \end{figure} 13 | \doxysubsubsection*{Public Member Functions} 14 | \begin{DoxyCompactItemize} 15 | \item 16 | \mbox{\Hypertarget{structIir_1_1RBJ_1_1RBJbase_a5dd179c8491e29966d5c33036cabe151}\label{structIir_1_1RBJ_1_1RBJbase_a5dd179c8491e29966d5c33036cabe151}} 17 | {\footnotesize template$<$typename Sample $>$ }\\Sample \mbox{\hyperlink{structIir_1_1RBJ_1_1RBJbase_a5dd179c8491e29966d5c33036cabe151}{filter}} (Sample s) 18 | \begin{DoxyCompactList}\small\item\em filter operation \end{DoxyCompactList}\item 19 | \mbox{\Hypertarget{structIir_1_1RBJ_1_1RBJbase_a0bd9a0b60e60b9326a14e43acbb430ab}\label{structIir_1_1RBJ_1_1RBJbase_a0bd9a0b60e60b9326a14e43acbb430ab}} 20 | void \mbox{\hyperlink{structIir_1_1RBJ_1_1RBJbase_a0bd9a0b60e60b9326a14e43acbb430ab}{reset}} () 21 | \begin{DoxyCompactList}\small\item\em resets the delay lines to zero \end{DoxyCompactList}\item 22 | \mbox{\Hypertarget{structIir_1_1RBJ_1_1RBJbase_a8093409edfce007a4972fa2992d69670}\label{structIir_1_1RBJ_1_1RBJbase_a8093409edfce007a4972fa2992d69670}} 23 | const \mbox{\hyperlink{classIir_1_1DirectFormI}{Direct\+FormI}} \& \mbox{\hyperlink{structIir_1_1RBJ_1_1RBJbase_a8093409edfce007a4972fa2992d69670}{get\+State}} () 24 | \begin{DoxyCompactList}\small\item\em gets the delay lines (=state) of the filter \end{DoxyCompactList}\end{DoxyCompactItemize} 25 | 26 | 27 | \doxysubsubsection{Detailed Description} 28 | The base class of all RBJ filters 29 | 30 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize} 31 | \item 32 | iir/RBJ.\+h\end{DoxyCompactItemize} 33 | -------------------------------------------------------------------------------- /docs/search/all_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['allpass_0',['AllPass',['../structIir_1_1RBJ_1_1AllPass.html',1,'Iir::RBJ']]], 4 | ['analoglowpass_1',['AnalogLowPass',['../classIir_1_1Butterworth_1_1AnalogLowPass.html',1,'Iir::Butterworth::AnalogLowPass'],['../classIir_1_1ChebyshevI_1_1AnalogLowPass.html',1,'Iir::ChebyshevI::AnalogLowPass'],['../classIir_1_1ChebyshevII_1_1AnalogLowPass.html',1,'Iir::ChebyshevII::AnalogLowPass']]], 5 | ['analoglowshelf_2',['AnalogLowShelf',['../classIir_1_1Butterworth_1_1AnalogLowShelf.html',1,'Iir::Butterworth::AnalogLowShelf'],['../classIir_1_1ChebyshevI_1_1AnalogLowShelf.html',1,'Iir::ChebyshevI::AnalogLowShelf'],['../classIir_1_1ChebyshevII_1_1AnalogLowShelf.html',1,'Iir::ChebyshevII::AnalogLowShelf']]], 6 | ['applyscale_3',['applyScale',['../classIir_1_1Biquad.html#a38c8e327dca53dbfa9a25758b7be8227',1,'Iir::Biquad']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/search/all_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['cascade_16',['Cascade',['../classIir_1_1Cascade.html',1,'Iir']]], 4 | ['cascadestages_17',['CascadeStages',['../classIir_1_1CascadeStages.html',1,'Iir']]], 5 | ['cascadestages_3c_20nsos_2c_20directformii_20_3e_18',['CascadeStages< NSOS, DirectFormII >',['../classIir_1_1CascadeStages.html',1,'Iir']]], 6 | ['cascadestages_3c_28maxanalogpoles_2b1_29_2f2_2c_20statetype_20_3e_19',['CascadeStages<(MaxAnalogPoles+1)/2, StateType >',['../classIir_1_1CascadeStages.html',1,'Iir']]], 7 | ['complexpair_20',['ComplexPair',['../structIir_1_1ComplexPair.html',1,'Iir']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/search/all_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['directformi_21',['DirectFormI',['../classIir_1_1DirectFormI.html',1,'Iir']]], 4 | ['directformii_22',['DirectFormII',['../classIir_1_1DirectFormII.html',1,'Iir']]], 5 | ['dsp_20iir_20realtime_20c_2b_2b_20filter_20library_23',['DSP IIR Realtime C++ filter library',['../index.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/all_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['filter_24',['filter',['../classIir_1_1Biquad.html#a527b9666d6aef0e576193fdce7e19750',1,'Iir::Biquad::filter()'],['../classIir_1_1CascadeStages.html#aa18e9abcaac65fd21be31ee859add3bb',1,'Iir::CascadeStages::filter()'],['../structIir_1_1RBJ_1_1RBJbase.html#a5dd179c8491e29966d5c33036cabe151',1,'Iir::RBJ::RBJbase::filter()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/all_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['geta0_25',['getA0',['../classIir_1_1Biquad.html#a7debc9f6ef5e64622c710b8c9ba96056',1,'Iir::Biquad']]], 4 | ['geta1_26',['getA1',['../classIir_1_1Biquad.html#a459116db7aa381281997f428f15334cf',1,'Iir::Biquad']]], 5 | ['geta2_27',['getA2',['../classIir_1_1Biquad.html#a061e2402d528312fc6095db6551c9141',1,'Iir::Biquad']]], 6 | ['getb0_28',['getB0',['../classIir_1_1Biquad.html#a84686da988e160a216f3e7057682ffbb',1,'Iir::Biquad']]], 7 | ['getb1_29',['getB1',['../classIir_1_1Biquad.html#af418a5f260baadbcffe5a7029f089937',1,'Iir::Biquad']]], 8 | ['getb2_30',['getB2',['../classIir_1_1Biquad.html#a8f3d697bb7c2def508da648938f6afc3',1,'Iir::Biquad']]], 9 | ['getcascadestorage_31',['getCascadeStorage',['../classIir_1_1CascadeStages.html#a034a9be8ae590b814c8499898a93987a',1,'Iir::CascadeStages']]], 10 | ['getnumstages_32',['getNumStages',['../classIir_1_1Cascade.html#a9694b85c160e3689a4d71fd51ca6175d',1,'Iir::Cascade']]], 11 | ['getpolezeros_33',['getPoleZeros',['../classIir_1_1Biquad.html#a63c78d766bc40be10004a34aaebfb8e7',1,'Iir::Biquad::getPoleZeros()'],['../classIir_1_1Cascade.html#a18df8bebec4a5e8e3ddc28c35b6bb2f8',1,'Iir::Cascade::getPoleZeros()']]], 12 | ['getstate_34',['getState',['../structIir_1_1RBJ_1_1RBJbase.html#a8093409edfce007a4972fa2992d69670',1,'Iir::RBJ::RBJbase']]] 13 | ]; 14 | -------------------------------------------------------------------------------- /docs/search/all_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['highpass_35',['HighPass',['../structIir_1_1Butterworth_1_1HighPass.html',1,'Iir::Butterworth::HighPass< FilterOrder, StateType >'],['../structIir_1_1ChebyshevI_1_1HighPass.html',1,'Iir::ChebyshevI::HighPass< FilterOrder, StateType >'],['../structIir_1_1ChebyshevII_1_1HighPass.html',1,'Iir::ChebyshevII::HighPass< FilterOrder, StateType >'],['../structIir_1_1RBJ_1_1HighPass.html',1,'Iir::RBJ::HighPass']]], 4 | ['highpassbase_36',['HighPassBase',['../structIir_1_1Butterworth_1_1HighPassBase.html',1,'Iir::Butterworth::HighPassBase'],['../structIir_1_1ChebyshevI_1_1HighPassBase.html',1,'Iir::ChebyshevI::HighPassBase'],['../structIir_1_1ChebyshevII_1_1HighPassBase.html',1,'Iir::ChebyshevII::HighPassBase']]], 5 | ['highpasstransform_37',['HighPassTransform',['../classIir_1_1HighPassTransform.html',1,'Iir']]], 6 | ['highshelf_38',['HighShelf',['../structIir_1_1Butterworth_1_1HighShelf.html',1,'Iir::Butterworth::HighShelf< FilterOrder, StateType >'],['../structIir_1_1ChebyshevI_1_1HighShelf.html',1,'Iir::ChebyshevI::HighShelf< FilterOrder, StateType >'],['../structIir_1_1ChebyshevII_1_1HighShelf.html',1,'Iir::ChebyshevII::HighShelf< FilterOrder, StateType >'],['../structIir_1_1RBJ_1_1HighShelf.html',1,'Iir::RBJ::HighShelf']]], 7 | ['highshelfbase_39',['HighShelfBase',['../structIir_1_1Butterworth_1_1HighShelfBase.html',1,'Iir::Butterworth::HighShelfBase'],['../structIir_1_1ChebyshevI_1_1HighShelfBase.html',1,'Iir::ChebyshevI::HighShelfBase'],['../structIir_1_1ChebyshevII_1_1HighShelfBase.html',1,'Iir::ChebyshevII::HighShelfBase']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/search/all_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['butterworth_40',['Butterworth',['../namespaceIir_1_1Butterworth.html',1,'Iir']]], 4 | ['chebyshevi_41',['ChebyshevI',['../namespaceIir_1_1ChebyshevI.html',1,'Iir']]], 5 | ['chebyshevii_42',['ChebyshevII',['../namespaceIir_1_1ChebyshevII.html',1,'Iir']]], 6 | ['custom_43',['Custom',['../namespaceIir_1_1Custom.html',1,'Iir']]], 7 | ['iir_44',['Iir',['../namespaceIir.html',1,'']]], 8 | ['iirnotch_45',['IIRNotch',['../structIir_1_1RBJ_1_1IIRNotch.html',1,'Iir::RBJ']]], 9 | ['ismatchedpair_46',['isMatchedPair',['../structIir_1_1ComplexPair.html#a79d121320c8b042faebcc0364398b071',1,'Iir::ComplexPair']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /docs/search/all_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['layout_47',['Layout',['../classIir_1_1Layout.html',1,'Iir']]], 4 | ['layout_3c_20maxanalogpoles_20_3e_48',['Layout< MaxAnalogPoles >',['../classIir_1_1Layout.html',1,'Iir']]], 5 | ['layoutbase_49',['LayoutBase',['../classIir_1_1LayoutBase.html',1,'Iir']]], 6 | ['lowpass_50',['LowPass',['../structIir_1_1Butterworth_1_1LowPass.html',1,'Iir::Butterworth::LowPass< FilterOrder, StateType >'],['../structIir_1_1ChebyshevI_1_1LowPass.html',1,'Iir::ChebyshevI::LowPass< FilterOrder, StateType >'],['../structIir_1_1ChebyshevII_1_1LowPass.html',1,'Iir::ChebyshevII::LowPass< FilterOrder, StateType >'],['../structIir_1_1RBJ_1_1LowPass.html',1,'Iir::RBJ::LowPass']]], 7 | ['lowpassbase_51',['LowPassBase',['../structIir_1_1Butterworth_1_1LowPassBase.html',1,'Iir::Butterworth::LowPassBase'],['../structIir_1_1ChebyshevI_1_1LowPassBase.html',1,'Iir::ChebyshevI::LowPassBase'],['../structIir_1_1ChebyshevII_1_1LowPassBase.html',1,'Iir::ChebyshevII::LowPassBase']]], 8 | ['lowpasstransform_52',['LowPassTransform',['../classIir_1_1LowPassTransform.html',1,'Iir']]], 9 | ['lowshelf_53',['LowShelf',['../structIir_1_1Butterworth_1_1LowShelf.html',1,'Iir::Butterworth::LowShelf< FilterOrder, StateType >'],['../structIir_1_1ChebyshevI_1_1LowShelf.html',1,'Iir::ChebyshevI::LowShelf< FilterOrder, StateType >'],['../structIir_1_1ChebyshevII_1_1LowShelf.html',1,'Iir::ChebyshevII::LowShelf< FilterOrder, StateType >'],['../structIir_1_1RBJ_1_1LowShelf.html',1,'Iir::RBJ::LowShelf']]], 10 | ['lowshelfbase_54',['LowShelfBase',['../structIir_1_1Butterworth_1_1LowShelfBase.html',1,'Iir::Butterworth::LowShelfBase'],['../structIir_1_1ChebyshevI_1_1LowShelfBase.html',1,'Iir::ChebyshevI::LowShelfBase'],['../structIir_1_1ChebyshevII_1_1LowShelfBase.html',1,'Iir::ChebyshevII::LowShelfBase']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /docs/search/all_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['onepole_55',['OnePole',['../structIir_1_1Custom_1_1OnePole.html',1,'Iir::Custom']]], 4 | ['operator_5b_5d_56',['operator[]',['../classIir_1_1Cascade.html#afc58e4b464b2cdef11e77b01e1a80668',1,'Iir::Cascade']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/all_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['polefilter_57',['PoleFilter',['../structIir_1_1PoleFilter.html',1,'Iir']]], 4 | ['polefilter_3c_20bandpassbase_2c_20directformii_2c_204_2c_204_20_2a2_20_3e_58',['PoleFilter< BandPassBase, DirectFormII, 4, 4 *2 >',['../structIir_1_1PoleFilter.html',1,'Iir']]], 5 | ['polefilter_3c_20bandshelfbase_2c_20directformii_2c_204_2c_204_20_2a2_20_3e_59',['PoleFilter< BandShelfBase, DirectFormII, 4, 4 *2 >',['../structIir_1_1PoleFilter.html',1,'Iir']]], 6 | ['polefilter_3c_20bandstopbase_2c_20directformii_2c_204_2c_204_20_2a2_20_3e_60',['PoleFilter< BandStopBase, DirectFormII, 4, 4 *2 >',['../structIir_1_1PoleFilter.html',1,'Iir']]], 7 | ['polefilter_3c_20highpassbase_2c_20directformii_2c_204_20_3e_61',['PoleFilter< HighPassBase, DirectFormII, 4 >',['../structIir_1_1PoleFilter.html',1,'Iir']]], 8 | ['polefilter_3c_20highshelfbase_2c_20directformii_2c_204_20_3e_62',['PoleFilter< HighShelfBase, DirectFormII, 4 >',['../structIir_1_1PoleFilter.html',1,'Iir']]], 9 | ['polefilter_3c_20lowpassbase_2c_20directformii_2c_204_20_3e_63',['PoleFilter< LowPassBase, DirectFormII, 4 >',['../structIir_1_1PoleFilter.html',1,'Iir']]], 10 | ['polefilter_3c_20lowshelfbase_2c_20directformii_2c_204_20_3e_64',['PoleFilter< LowShelfBase, DirectFormII, 4 >',['../structIir_1_1PoleFilter.html',1,'Iir']]], 11 | ['polefilterbase_65',['PoleFilterBase',['../classIir_1_1PoleFilterBase.html',1,'Iir']]], 12 | ['polefilterbase2_66',['PoleFilterBase2',['../classIir_1_1PoleFilterBase2.html',1,'Iir']]], 13 | ['polefilterbase_3c_20analoglowpass_20_3e_67',['PoleFilterBase< AnalogLowPass >',['../classIir_1_1PoleFilterBase.html',1,'Iir']]], 14 | ['polefilterbase_3c_20analoglowshelf_20_3e_68',['PoleFilterBase< AnalogLowShelf >',['../classIir_1_1PoleFilterBase.html',1,'Iir']]], 15 | ['polezeropair_69',['PoleZeroPair',['../structIir_1_1PoleZeroPair.html',1,'Iir']]] 16 | ]; 17 | -------------------------------------------------------------------------------- /docs/search/all_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['rbjbase_70',['RBJbase',['../structIir_1_1RBJ_1_1RBJbase.html',1,'Iir::RBJ']]], 4 | ['reset_71',['reset',['../classIir_1_1CascadeStages.html#ae5253fde0be7ccfa459a3f70fe8e3e31',1,'Iir::CascadeStages::reset()'],['../structIir_1_1RBJ_1_1RBJbase.html#a0bd9a0b60e60b9326a14e43acbb430ab',1,'Iir::RBJ::RBJbase::reset()']]], 5 | ['response_72',['response',['../classIir_1_1Biquad.html#ace03653f66fe65eddc55d48840458440',1,'Iir::Biquad::response()'],['../classIir_1_1Cascade.html#aa76e09e3868829a80e954d0444390f90',1,'Iir::Cascade::response()']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/all_c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/all_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['transposeddirectformii_82',['TransposedDirectFormII',['../classIir_1_1TransposedDirectFormII.html',1,'Iir']]], 4 | ['twopole_83',['TwoPole',['../structIir_1_1Custom_1_1TwoPole.html',1,'Iir::Custom']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/all_e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/all_e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['transposeddirectformii_86',['TransposedDirectFormII',['../classIir_1_1TransposedDirectFormII.html',1,'Iir']]], 4 | ['twopole_87',['TwoPole',['../structIir_1_1Custom_1_1TwoPole.html',1,'Iir::Custom']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/classes_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/classes_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['allpass_84',['AllPass',['../structIir_1_1RBJ_1_1AllPass.html',1,'Iir::RBJ']]], 4 | ['analoglowpass_85',['AnalogLowPass',['../classIir_1_1Butterworth_1_1AnalogLowPass.html',1,'Iir::Butterworth::AnalogLowPass'],['../classIir_1_1ChebyshevI_1_1AnalogLowPass.html',1,'Iir::ChebyshevI::AnalogLowPass'],['../classIir_1_1ChebyshevII_1_1AnalogLowPass.html',1,'Iir::ChebyshevII::AnalogLowPass']]], 5 | ['analoglowshelf_86',['AnalogLowShelf',['../classIir_1_1Butterworth_1_1AnalogLowShelf.html',1,'Iir::Butterworth::AnalogLowShelf'],['../classIir_1_1ChebyshevI_1_1AnalogLowShelf.html',1,'Iir::ChebyshevI::AnalogLowShelf'],['../classIir_1_1ChebyshevII_1_1AnalogLowShelf.html',1,'Iir::ChebyshevII::AnalogLowShelf']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/classes_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/classes_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/classes_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['cascade_99',['Cascade',['../classIir_1_1Cascade.html',1,'Iir']]], 4 | ['cascadestages_100',['CascadeStages',['../classIir_1_1CascadeStages.html',1,'Iir']]], 5 | ['cascadestages_3c_20nsos_2c_20directformii_20_3e_101',['CascadeStages< NSOS, DirectFormII >',['../classIir_1_1CascadeStages.html',1,'Iir']]], 6 | ['cascadestages_3c_28maxanalogpoles_2b1_29_2f2_2c_20statetype_20_3e_102',['CascadeStages<(MaxAnalogPoles+1)/2, StateType >',['../classIir_1_1CascadeStages.html',1,'Iir']]], 7 | ['complexpair_103',['ComplexPair',['../structIir_1_1ComplexPair.html',1,'Iir']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/search/classes_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/classes_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['directformi_104',['DirectFormI',['../classIir_1_1DirectFormI.html',1,'Iir']]], 4 | ['directformii_105',['DirectFormII',['../classIir_1_1DirectFormII.html',1,'Iir']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/classes_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/classes_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['highpass_106',['HighPass',['../structIir_1_1Butterworth_1_1HighPass.html',1,'Iir::Butterworth::HighPass< FilterOrder, StateType >'],['../structIir_1_1ChebyshevI_1_1HighPass.html',1,'Iir::ChebyshevI::HighPass< FilterOrder, StateType >'],['../structIir_1_1ChebyshevII_1_1HighPass.html',1,'Iir::ChebyshevII::HighPass< FilterOrder, StateType >'],['../structIir_1_1RBJ_1_1HighPass.html',1,'Iir::RBJ::HighPass']]], 4 | ['highpassbase_107',['HighPassBase',['../structIir_1_1Butterworth_1_1HighPassBase.html',1,'Iir::Butterworth::HighPassBase'],['../structIir_1_1ChebyshevI_1_1HighPassBase.html',1,'Iir::ChebyshevI::HighPassBase'],['../structIir_1_1ChebyshevII_1_1HighPassBase.html',1,'Iir::ChebyshevII::HighPassBase']]], 5 | ['highpasstransform_108',['HighPassTransform',['../classIir_1_1HighPassTransform.html',1,'Iir']]], 6 | ['highshelf_109',['HighShelf',['../structIir_1_1Butterworth_1_1HighShelf.html',1,'Iir::Butterworth::HighShelf< FilterOrder, StateType >'],['../structIir_1_1ChebyshevI_1_1HighShelf.html',1,'Iir::ChebyshevI::HighShelf< FilterOrder, StateType >'],['../structIir_1_1ChebyshevII_1_1HighShelf.html',1,'Iir::ChebyshevII::HighShelf< FilterOrder, StateType >'],['../structIir_1_1RBJ_1_1HighShelf.html',1,'Iir::RBJ::HighShelf']]], 7 | ['highshelfbase_110',['HighShelfBase',['../structIir_1_1Butterworth_1_1HighShelfBase.html',1,'Iir::Butterworth::HighShelfBase'],['../structIir_1_1ChebyshevI_1_1HighShelfBase.html',1,'Iir::ChebyshevI::HighShelfBase'],['../structIir_1_1ChebyshevII_1_1HighShelfBase.html',1,'Iir::ChebyshevII::HighShelfBase']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/search/classes_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/classes_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['iirnotch_111',['IIRNotch',['../structIir_1_1RBJ_1_1IIRNotch.html',1,'Iir::RBJ']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/classes_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/classes_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['layout_112',['Layout',['../classIir_1_1Layout.html',1,'Iir']]], 4 | ['layout_3c_20maxanalogpoles_20_3e_113',['Layout< MaxAnalogPoles >',['../classIir_1_1Layout.html',1,'Iir']]], 5 | ['layoutbase_114',['LayoutBase',['../classIir_1_1LayoutBase.html',1,'Iir']]], 6 | ['lowpass_115',['LowPass',['../structIir_1_1Butterworth_1_1LowPass.html',1,'Iir::Butterworth::LowPass< FilterOrder, StateType >'],['../structIir_1_1ChebyshevI_1_1LowPass.html',1,'Iir::ChebyshevI::LowPass< FilterOrder, StateType >'],['../structIir_1_1ChebyshevII_1_1LowPass.html',1,'Iir::ChebyshevII::LowPass< FilterOrder, StateType >'],['../structIir_1_1RBJ_1_1LowPass.html',1,'Iir::RBJ::LowPass']]], 7 | ['lowpassbase_116',['LowPassBase',['../structIir_1_1Butterworth_1_1LowPassBase.html',1,'Iir::Butterworth::LowPassBase'],['../structIir_1_1ChebyshevI_1_1LowPassBase.html',1,'Iir::ChebyshevI::LowPassBase'],['../structIir_1_1ChebyshevII_1_1LowPassBase.html',1,'Iir::ChebyshevII::LowPassBase']]], 8 | ['lowpasstransform_117',['LowPassTransform',['../classIir_1_1LowPassTransform.html',1,'Iir']]], 9 | ['lowshelf_118',['LowShelf',['../structIir_1_1Butterworth_1_1LowShelf.html',1,'Iir::Butterworth::LowShelf< FilterOrder, StateType >'],['../structIir_1_1ChebyshevI_1_1LowShelf.html',1,'Iir::ChebyshevI::LowShelf< FilterOrder, StateType >'],['../structIir_1_1ChebyshevII_1_1LowShelf.html',1,'Iir::ChebyshevII::LowShelf< FilterOrder, StateType >'],['../structIir_1_1RBJ_1_1LowShelf.html',1,'Iir::RBJ::LowShelf']]], 10 | ['lowshelfbase_119',['LowShelfBase',['../structIir_1_1Butterworth_1_1LowShelfBase.html',1,'Iir::Butterworth::LowShelfBase'],['../structIir_1_1ChebyshevI_1_1LowShelfBase.html',1,'Iir::ChebyshevI::LowShelfBase'],['../structIir_1_1ChebyshevII_1_1LowShelfBase.html',1,'Iir::ChebyshevII::LowShelfBase']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /docs/search/classes_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/classes_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['onepole_120',['OnePole',['../structIir_1_1Custom_1_1OnePole.html',1,'Iir::Custom']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/classes_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/classes_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['polefilter_121',['PoleFilter',['../structIir_1_1PoleFilter.html',1,'Iir']]], 4 | ['polefilter_3c_20bandpassbase_2c_20directformii_2c_204_2c_204_20_2a2_20_3e_122',['PoleFilter< BandPassBase, DirectFormII, 4, 4 *2 >',['../structIir_1_1PoleFilter.html',1,'Iir']]], 5 | ['polefilter_3c_20bandshelfbase_2c_20directformii_2c_204_2c_204_20_2a2_20_3e_123',['PoleFilter< BandShelfBase, DirectFormII, 4, 4 *2 >',['../structIir_1_1PoleFilter.html',1,'Iir']]], 6 | ['polefilter_3c_20bandstopbase_2c_20directformii_2c_204_2c_204_20_2a2_20_3e_124',['PoleFilter< BandStopBase, DirectFormII, 4, 4 *2 >',['../structIir_1_1PoleFilter.html',1,'Iir']]], 7 | ['polefilter_3c_20highpassbase_2c_20directformii_2c_204_20_3e_125',['PoleFilter< HighPassBase, DirectFormII, 4 >',['../structIir_1_1PoleFilter.html',1,'Iir']]], 8 | ['polefilter_3c_20highshelfbase_2c_20directformii_2c_204_20_3e_126',['PoleFilter< HighShelfBase, DirectFormII, 4 >',['../structIir_1_1PoleFilter.html',1,'Iir']]], 9 | ['polefilter_3c_20lowpassbase_2c_20directformii_2c_204_20_3e_127',['PoleFilter< LowPassBase, DirectFormII, 4 >',['../structIir_1_1PoleFilter.html',1,'Iir']]], 10 | ['polefilter_3c_20lowshelfbase_2c_20directformii_2c_204_20_3e_128',['PoleFilter< LowShelfBase, DirectFormII, 4 >',['../structIir_1_1PoleFilter.html',1,'Iir']]], 11 | ['polefilterbase_129',['PoleFilterBase',['../classIir_1_1PoleFilterBase.html',1,'Iir']]], 12 | ['polefilterbase2_130',['PoleFilterBase2',['../classIir_1_1PoleFilterBase2.html',1,'Iir']]], 13 | ['polefilterbase_3c_20analoglowpass_20_3e_131',['PoleFilterBase< AnalogLowPass >',['../classIir_1_1PoleFilterBase.html',1,'Iir']]], 14 | ['polefilterbase_3c_20analoglowshelf_20_3e_132',['PoleFilterBase< AnalogLowShelf >',['../classIir_1_1PoleFilterBase.html',1,'Iir']]], 15 | ['polezeropair_133',['PoleZeroPair',['../structIir_1_1PoleZeroPair.html',1,'Iir']]] 16 | ]; 17 | -------------------------------------------------------------------------------- /docs/search/classes_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/classes_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['rbjbase_134',['RBJbase',['../structIir_1_1RBJ_1_1RBJbase.html',1,'Iir::RBJ']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/classes_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/classes_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['soscascade_135',['SOSCascade',['../structIir_1_1Custom_1_1SOSCascade.html',1,'Iir::Custom']]], 4 | ['storage_136',['Storage',['../structIir_1_1Cascade_1_1Storage.html',1,'Iir::Cascade']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/classes_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/classes_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['transposeddirectformii_137',['TransposedDirectFormII',['../classIir_1_1TransposedDirectFormII.html',1,'Iir']]], 4 | ['twopole_138',['TwoPole',['../structIir_1_1Custom_1_1TwoPole.html',1,'Iir::Custom']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/search/close.png -------------------------------------------------------------------------------- /docs/search/close.svg: -------------------------------------------------------------------------------- 1 | 2 | 13 | 15 | 16 | 18 | image/svg+xml 19 | 21 | 22 | 23 | 24 | 25 | 27 | 31 | 32 | -------------------------------------------------------------------------------- /docs/search/enums_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/search/enums_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['kind_176',['Kind',['../namespaceIir.html#a7f532decbb76455b91ff79ecf03e999d',1,'Iir']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/functions_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/functions_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['applyscale_144',['applyScale',['../classIir_1_1Biquad.html#a38c8e327dca53dbfa9a25758b7be8227',1,'Iir::Biquad']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/functions_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/functions_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['filter_145',['filter',['../classIir_1_1Biquad.html#a527b9666d6aef0e576193fdce7e19750',1,'Iir::Biquad::filter()'],['../classIir_1_1CascadeStages.html#aa18e9abcaac65fd21be31ee859add3bb',1,'Iir::CascadeStages::filter()'],['../structIir_1_1RBJ_1_1RBJbase.html#a5dd179c8491e29966d5c33036cabe151',1,'Iir::RBJ::RBJbase::filter()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/functions_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/functions_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['geta0_146',['getA0',['../classIir_1_1Biquad.html#a7debc9f6ef5e64622c710b8c9ba96056',1,'Iir::Biquad']]], 4 | ['geta1_147',['getA1',['../classIir_1_1Biquad.html#a459116db7aa381281997f428f15334cf',1,'Iir::Biquad']]], 5 | ['geta2_148',['getA2',['../classIir_1_1Biquad.html#a061e2402d528312fc6095db6551c9141',1,'Iir::Biquad']]], 6 | ['getb0_149',['getB0',['../classIir_1_1Biquad.html#a84686da988e160a216f3e7057682ffbb',1,'Iir::Biquad']]], 7 | ['getb1_150',['getB1',['../classIir_1_1Biquad.html#af418a5f260baadbcffe5a7029f089937',1,'Iir::Biquad']]], 8 | ['getb2_151',['getB2',['../classIir_1_1Biquad.html#a8f3d697bb7c2def508da648938f6afc3',1,'Iir::Biquad']]], 9 | ['getcascadestorage_152',['getCascadeStorage',['../classIir_1_1CascadeStages.html#a034a9be8ae590b814c8499898a93987a',1,'Iir::CascadeStages']]], 10 | ['getnumstages_153',['getNumStages',['../classIir_1_1Cascade.html#a9694b85c160e3689a4d71fd51ca6175d',1,'Iir::Cascade']]], 11 | ['getpolezeros_154',['getPoleZeros',['../classIir_1_1Biquad.html#a63c78d766bc40be10004a34aaebfb8e7',1,'Iir::Biquad::getPoleZeros()'],['../classIir_1_1Cascade.html#a18df8bebec4a5e8e3ddc28c35b6bb2f8',1,'Iir::Cascade::getPoleZeros()']]], 12 | ['getstate_155',['getState',['../structIir_1_1RBJ_1_1RBJbase.html#a8093409edfce007a4972fa2992d69670',1,'Iir::RBJ::RBJbase']]] 13 | ]; 14 | -------------------------------------------------------------------------------- /docs/search/functions_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/functions_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['ismatchedpair_156',['isMatchedPair',['../structIir_1_1ComplexPair.html#a79d121320c8b042faebcc0364398b071',1,'Iir::ComplexPair']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/functions_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/functions_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['operator_5b_5d_157',['operator[]',['../classIir_1_1Cascade.html#afc58e4b464b2cdef11e77b01e1a80668',1,'Iir::Cascade']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/functions_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/functions_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['reset_158',['reset',['../classIir_1_1CascadeStages.html#ae5253fde0be7ccfa459a3f70fe8e3e31',1,'Iir::CascadeStages::reset()'],['../structIir_1_1RBJ_1_1RBJbase.html#a0bd9a0b60e60b9326a14e43acbb430ab',1,'Iir::RBJ::RBJbase::reset()']]], 4 | ['response_159',['response',['../classIir_1_1Biquad.html#ace03653f66fe65eddc55d48840458440',1,'Iir::Biquad::response()'],['../classIir_1_1Cascade.html#aa76e09e3868829a80e954d0444390f90',1,'Iir::Cascade::response()']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/functions_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/mag_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/search/mag_sel.png -------------------------------------------------------------------------------- /docs/search/namespaces_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/namespaces_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['butterworth_139',['Butterworth',['../namespaceIir_1_1Butterworth.html',1,'Iir']]], 4 | ['chebyshevi_140',['ChebyshevI',['../namespaceIir_1_1ChebyshevI.html',1,'Iir']]], 5 | ['chebyshevii_141',['ChebyshevII',['../namespaceIir_1_1ChebyshevII.html',1,'Iir']]], 6 | ['custom_142',['Custom',['../namespaceIir_1_1Custom.html',1,'Iir']]], 7 | ['iir_143',['Iir',['../namespaceIir.html',1,'']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
No Matches
11 |
12 | 13 | 14 | -------------------------------------------------------------------------------- /docs/search/pages_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
Loading...
13 |
14 | 19 |
Searching...
20 |
No Matches
21 | 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/search/pages_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['dsp_20iir_20realtime_20c_2b_2b_20filter_20library_168',['DSP IIR Realtime C++ filter library',['../index.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/search_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/search/search_l.png -------------------------------------------------------------------------------- /docs/search/search_m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/search/search_m.png -------------------------------------------------------------------------------- /docs/search/search_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/search/search_r.png -------------------------------------------------------------------------------- /docs/search/searchdata.js: -------------------------------------------------------------------------------- 1 | var indexSectionsWithContent = 2 | { 3 | 0: "abcdfghiloprst", 4 | 1: "abcdhiloprst", 5 | 2: "i", 6 | 3: "afgiors", 7 | 4: "d" 8 | }; 9 | 10 | var indexSectionNames = 11 | { 12 | 0: "all", 13 | 1: "classes", 14 | 2: "namespaces", 15 | 3: "functions", 16 | 4: "pages" 17 | }; 18 | 19 | var indexSectionLabels = 20 | { 21 | 0: "All", 22 | 1: "Classes", 23 | 2: "Namespaces", 24 | 3: "Functions", 25 | 4: "Pages" 26 | }; 27 | 28 | -------------------------------------------------------------------------------- /docs/splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/splitbar.png -------------------------------------------------------------------------------- /docs/structIir_1_1BiquadPoleState.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1BiquadPoleState.png -------------------------------------------------------------------------------- /docs/structIir_1_1Butterworth_1_1BandPass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1Butterworth_1_1BandPass.png -------------------------------------------------------------------------------- /docs/structIir_1_1Butterworth_1_1BandPassBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1Butterworth_1_1BandPassBase.png -------------------------------------------------------------------------------- /docs/structIir_1_1Butterworth_1_1BandShelf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1Butterworth_1_1BandShelf.png -------------------------------------------------------------------------------- /docs/structIir_1_1Butterworth_1_1BandShelfBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1Butterworth_1_1BandShelfBase.png -------------------------------------------------------------------------------- /docs/structIir_1_1Butterworth_1_1BandStop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1Butterworth_1_1BandStop.png -------------------------------------------------------------------------------- /docs/structIir_1_1Butterworth_1_1BandStopBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1Butterworth_1_1BandStopBase.png -------------------------------------------------------------------------------- /docs/structIir_1_1Butterworth_1_1HighPass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1Butterworth_1_1HighPass.png -------------------------------------------------------------------------------- /docs/structIir_1_1Butterworth_1_1HighPassBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1Butterworth_1_1HighPassBase.png -------------------------------------------------------------------------------- /docs/structIir_1_1Butterworth_1_1HighShelf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1Butterworth_1_1HighShelf.png -------------------------------------------------------------------------------- /docs/structIir_1_1Butterworth_1_1HighShelfBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1Butterworth_1_1HighShelfBase.png -------------------------------------------------------------------------------- /docs/structIir_1_1Butterworth_1_1LowPass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1Butterworth_1_1LowPass.png -------------------------------------------------------------------------------- /docs/structIir_1_1Butterworth_1_1LowPassBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1Butterworth_1_1LowPassBase.png -------------------------------------------------------------------------------- /docs/structIir_1_1Butterworth_1_1LowShelf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1Butterworth_1_1LowShelf.png -------------------------------------------------------------------------------- /docs/structIir_1_1Butterworth_1_1LowShelfBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1Butterworth_1_1LowShelfBase.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevII_1_1BandPass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevII_1_1BandPass.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevII_1_1BandPassBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevII_1_1BandPassBase.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevII_1_1BandShelf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevII_1_1BandShelf.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevII_1_1BandShelfBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevII_1_1BandShelfBase.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevII_1_1BandStop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevII_1_1BandStop.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevII_1_1BandStopBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevII_1_1BandStopBase.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevII_1_1HighPass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevII_1_1HighPass.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevII_1_1HighPassBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevII_1_1HighPassBase.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevII_1_1HighShelf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevII_1_1HighShelf.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevII_1_1HighShelfBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevII_1_1HighShelfBase.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevII_1_1LowPass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevII_1_1LowPass.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevII_1_1LowPassBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevII_1_1LowPassBase.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevII_1_1LowShelf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevII_1_1LowShelf.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevII_1_1LowShelfBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevII_1_1LowShelfBase.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevI_1_1BandPass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevI_1_1BandPass.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevI_1_1BandPassBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevI_1_1BandPassBase.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevI_1_1BandShelf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevI_1_1BandShelf.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevI_1_1BandShelfBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevI_1_1BandShelfBase.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevI_1_1BandStop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevI_1_1BandStop.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevI_1_1BandStopBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevI_1_1BandStopBase.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevI_1_1HighPass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevI_1_1HighPass.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevI_1_1HighPassBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevI_1_1HighPassBase.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevI_1_1HighShelf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevI_1_1HighShelf.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevI_1_1HighShelfBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevI_1_1HighShelfBase.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevI_1_1LowPass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevI_1_1LowPass.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevI_1_1LowPassBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevI_1_1LowPassBase.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevI_1_1LowShelf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevI_1_1LowShelf.png -------------------------------------------------------------------------------- /docs/structIir_1_1ChebyshevI_1_1LowShelfBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ChebyshevI_1_1LowShelfBase.png -------------------------------------------------------------------------------- /docs/structIir_1_1ComplexPair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1ComplexPair.png -------------------------------------------------------------------------------- /docs/structIir_1_1Custom_1_1OnePole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1Custom_1_1OnePole.png -------------------------------------------------------------------------------- /docs/structIir_1_1Custom_1_1SOSCascade.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1Custom_1_1SOSCascade.png -------------------------------------------------------------------------------- /docs/structIir_1_1Custom_1_1TwoPole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1Custom_1_1TwoPole.png -------------------------------------------------------------------------------- /docs/structIir_1_1PoleFilter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1PoleFilter.png -------------------------------------------------------------------------------- /docs/structIir_1_1PoleZeroPair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1PoleZeroPair.png -------------------------------------------------------------------------------- /docs/structIir_1_1RBJ_1_1AllPass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1RBJ_1_1AllPass.png -------------------------------------------------------------------------------- /docs/structIir_1_1RBJ_1_1BandPass1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1RBJ_1_1BandPass1.png -------------------------------------------------------------------------------- /docs/structIir_1_1RBJ_1_1BandPass2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1RBJ_1_1BandPass2.png -------------------------------------------------------------------------------- /docs/structIir_1_1RBJ_1_1BandShelf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1RBJ_1_1BandShelf.png -------------------------------------------------------------------------------- /docs/structIir_1_1RBJ_1_1BandStop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1RBJ_1_1BandStop.png -------------------------------------------------------------------------------- /docs/structIir_1_1RBJ_1_1HighPass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1RBJ_1_1HighPass.png -------------------------------------------------------------------------------- /docs/structIir_1_1RBJ_1_1HighShelf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1RBJ_1_1HighShelf.png -------------------------------------------------------------------------------- /docs/structIir_1_1RBJ_1_1IIRNotch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1RBJ_1_1IIRNotch.png -------------------------------------------------------------------------------- /docs/structIir_1_1RBJ_1_1LowPass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1RBJ_1_1LowPass.png -------------------------------------------------------------------------------- /docs/structIir_1_1RBJ_1_1LowShelf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1RBJ_1_1LowShelf.png -------------------------------------------------------------------------------- /docs/structIir_1_1RBJ_1_1RBJbase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/structIir_1_1RBJ_1_1RBJbase.png -------------------------------------------------------------------------------- /docs/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/sync_off.png -------------------------------------------------------------------------------- /docs/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/sync_on.png -------------------------------------------------------------------------------- /docs/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/tab_a.png -------------------------------------------------------------------------------- /docs/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/tab_b.png -------------------------------------------------------------------------------- /docs/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/tab_h.png -------------------------------------------------------------------------------- /docs/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/docs/tab_s.png -------------------------------------------------------------------------------- /doxy.md: -------------------------------------------------------------------------------- 1 | # DSP IIR Realtime C++ filter library 2 | 3 | An infinite impulse response (IIR) filter library for 4 | Linux, Mac OSX and Windows 5 | which implements Butterworth, RBJ, Chebychev filters 6 | and can easily import coefficients generated by Python (scipy). 7 | 8 | The filter processes the data sample by sample for realtime 9 | processing. 10 | 11 | It uses templates to allocate the required memory so that 12 | it can run without any malloc / new commands. 13 | Memory is allocated at compile time 14 | so that there is never any risk of memory leaks. 15 | 16 | This library has been further developed from Vinnie Falco's 17 | great original work which can be found here: 18 | 19 | https://github.com/vinniefalco/DSPFilters 20 | 21 | Bernd Porr -- http://www.berndporr.me.uk 22 | -------------------------------------------------------------------------------- /gendoc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | doxygen 3 | cd docs 4 | git add . 5 | cd pdf 6 | make 7 | -------------------------------------------------------------------------------- /iir.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | libdir=@libdir_for_pc_file@ 3 | includedir=@includedir_for_pc_file@ 4 | 5 | Name: @PROJECT_NAME@ 6 | Description: IIR filter library. 7 | Version: @PROJECT_VERSION@ 8 | URL: https://www.berndporr.me.uk/iir/ 9 | Libs: -L${libdir} -liir 10 | Cflags: -I${includedir} 11 | -------------------------------------------------------------------------------- /test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.8.0) 2 | 3 | if (MSVC) 4 | add_compile_options(/W4) 5 | else() 6 | add_compile_options(-Wall -pedantic) 7 | endif() 8 | 9 | enable_testing() 10 | 11 | add_executable (test_butterworth butterworth.cpp) 12 | target_link_libraries(test_butterworth iir_static) 13 | add_test(TestButterworth test_butterworth) 14 | target_compile_features(test_butterworth PRIVATE cxx_std_11) 15 | 16 | add_executable (test_chebyshev1 chebyshev1.cpp) 17 | target_link_libraries(test_chebyshev1 iir_static) 18 | add_test(TestChebyshev1 test_chebyshev1) 19 | target_compile_features(test_chebyshev1 PRIVATE cxx_std_11) 20 | 21 | add_executable (test_chebyshev2 chebyshev2.cpp) 22 | target_link_libraries(test_chebyshev2 iir_static) 23 | add_test(TestChebyshev2 test_chebyshev2) 24 | target_compile_features(test_chebyshev2 PRIVATE cxx_std_11) 25 | 26 | add_executable (test_rbj rbj.cpp) 27 | target_link_libraries(test_rbj iir_static) 28 | add_test(TestRBJ test_rbj) 29 | target_compile_features(test_rbj PRIVATE cxx_std_11) 30 | 31 | add_executable (test_custom custom.cpp) 32 | target_link_libraries(test_custom iir_static) 33 | add_test(TestCUSTOM test_custom) 34 | target_compile_features(test_custom PRIVATE cxx_std_11) 35 | 36 | add_executable (test_badparam badparam.cpp) 37 | target_link_libraries(test_badparam iir_static) 38 | add_test(TestBadParam test_badparam) 39 | target_compile_features(test_badparam PRIVATE cxx_std_11) 40 | 41 | add_executable (test_state state.cpp) 42 | target_link_libraries(test_state iir_static) 43 | add_test(TestState test_state) 44 | target_compile_features(test_state PRIVATE cxx_std_11) 45 | 46 | add_executable (test_assignment assignment.cpp) 47 | target_link_libraries(test_assignment iir_static) 48 | add_test(TestOperator= test_assignment) 49 | target_compile_features(test_state PRIVATE cxx_std_11) 50 | -------------------------------------------------------------------------------- /test/assert_print.h: -------------------------------------------------------------------------------- 1 | #ifndef __ASSERT_PRINT_H 2 | #define __ASSERT_PRINT_H 3 | 4 | inline void assert_print(int b, const char* t) { 5 | if (b) return; 6 | fprintf(stderr,"%s\n",t); 7 | exit(-1); 8 | } 9 | 10 | // placed there so that it only affects the cpp files 11 | using namespace std; 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /test/badparam.cpp: -------------------------------------------------------------------------------- 1 | #include "Iir.h" 2 | 3 | #include 4 | 5 | #include "assert_print.h" 6 | 7 | int main (int,char**) 8 | { 9 | // dummy filter parameters 10 | const float samplingrate = 1000; 11 | const float bw = 5; 12 | 13 | try { 14 | Iir::Butterworth::LowPass<3> f; 15 | f.setup (samplingrate, samplingrate / 2); 16 | assert_print(0,"No exception thrown by LowPass."); 17 | } catch ( const std::invalid_argument& e ) { 18 | fprintf(stderr,"Correct lowpass exception thrown for fc = fs/2: %s\n",e.what()); 19 | } 20 | 21 | try { 22 | Iir::Butterworth::HighPass<3> f; 23 | f.setup (samplingrate, samplingrate / 2); 24 | assert_print(0,"No exception thrown by HighPass."); 25 | } catch ( const std::invalid_argument& e ) { 26 | fprintf(stderr,"Correct highpass exception thrown for fc = fs/2: %s\n",e.what()); 27 | } 28 | 29 | try { 30 | Iir::Butterworth::BandStop<3> f; 31 | f.setup (samplingrate, samplingrate / 2, bw); 32 | assert_print(0,"No exception thrown by BandStop."); 33 | } catch ( const std::invalid_argument& e ) { 34 | fprintf(stderr,"Correct bandstop exception thrown for fc = fs/2: %s\n",e.what()); 35 | } 36 | 37 | try { 38 | Iir::Butterworth::BandPass<3> f; 39 | f.setup (samplingrate, samplingrate / 2, bw); 40 | assert_print(0,"No exception thrown by BandPass."); 41 | } catch ( const std::invalid_argument& e ) { 42 | fprintf(stderr,"Correct bandpass exception thrown for fc = fs/2: %s\n",e.what()); 43 | } 44 | 45 | return 0; 46 | } 47 | -------------------------------------------------------------------------------- /test/chebyshev1.cpp: -------------------------------------------------------------------------------- 1 | #include "Iir.h" 2 | 3 | #define _USE_MATH_DEFINES 4 | #include 5 | #include 6 | 7 | #include "assert_print.h" 8 | 9 | int main(int, char**) 10 | { 11 | const int order = 3; 12 | Iir::ChebyshevI::HighPass f; 13 | const float samplingrate = 1000; // Hz 14 | const float cutoff_frequency = 5; // Hz 15 | f.setup(samplingrate, cutoff_frequency, 1); 16 | double b; 17 | for (int i = 0; i < 100000; i++) 18 | { 19 | float a = 0; 20 | if (i == 10) a = 1; 21 | b = f.filter(a); 22 | assert_print(!isnan(b), "Highpass output is NAN\n"); 23 | } 24 | //fprintf(stderr,"%e\n",b); 25 | assert_print(fabs(b) < 1E-15, "Highpass value for t->inf to high!"); 26 | 27 | Iir::ChebyshevI::BandStop<4, Iir::DirectFormI> bs; 28 | const float center_frequency = 50; 29 | const float frequency_width = 5; 30 | bs.setup(samplingrate, center_frequency, frequency_width, 1); 31 | bs.reset(); 32 | for (int i = 0; i < 100000; i++) 33 | { 34 | float a = 0; 35 | if (i == 10) a = 1; 36 | b = bs.filter(a); 37 | assert_print(!isnan(b), "Bandstop output is NAN\n"); 38 | //fprintf(stderr,"%e\n",b); 39 | } 40 | //fprintf(stderr,"%e\n",b); 41 | assert_print(fabs(b) < 1E-15, "Bandstop value for t->inf to high!"); 42 | 43 | Iir::ChebyshevI::LowPass<8> lp_cheby1; 44 | const float pass_ripple_db2 = 1; // dB 45 | double norm_cutoff_frequency = 0.01; 46 | lp_cheby1.setupN(norm_cutoff_frequency, 47 | pass_ripple_db2); 48 | double norm_signal_frequency = 0.097; 49 | for (int i = 0; i < 10000; i++) 50 | { 51 | b = fabs(lp_cheby1.filter(sin(2 * M_PI*norm_signal_frequency*i))); 52 | if (i > 5000) { 53 | assert_print(b < 1E-5, "Lowpass not removing a sine.\n"); 54 | } 55 | } 56 | 57 | return 0; 58 | 59 | 60 | } 61 | -------------------------------------------------------------------------------- /test/chebyshev2.cpp: -------------------------------------------------------------------------------- 1 | #include "Iir.h" 2 | 3 | #define _USE_MATH_DEFINES 4 | #include 5 | #include 6 | 7 | #include "assert_print.h" 8 | 9 | int main(int, char**) 10 | { 11 | // setting up non-optimal order to test how an 12 | // underutilised filter deals with it. 13 | const int order = 3; 14 | 15 | Iir::ChebyshevII::BandPass f; 16 | 17 | const float samplingrate = 1000; // Hz 18 | f.setup(samplingrate, 100, 10, 20); 19 | f.reset(); 20 | double b; 21 | for (int i = 0; i < 10000; i++) 22 | { 23 | float a = 0; 24 | if (i == 10) a = 1; 25 | b = f.filter(a); 26 | assert_print(!isnan(b), "Lowpass output is NAN\n"); 27 | } 28 | //fprintf(stderr,"%e\n",b); 29 | assert_print(fabs(b) < 1E-15, "Lowpass value for t->inf to high!"); 30 | 31 | Iir::ChebyshevII::BandStop<4, Iir::DirectFormI> bs; 32 | const float center_frequency = 50; 33 | const float frequency_width = 5; 34 | bs.setup(samplingrate, center_frequency, frequency_width, 20); 35 | bs.reset(); 36 | for (int i = 0; i < 10000; i++) 37 | { 38 | float a = 0; 39 | if (i == 10) a = 1; 40 | b = bs.filter(a); 41 | assert_print(!isnan(b), "Bandstop output is NAN\n"); 42 | //fprintf(stderr,"%e\n",b); 43 | } 44 | assert_print(fabs(b) < 1E-15, "Bandstop value for t->inf to high!"); 45 | //fprintf(stderr,"%e\n",b); 46 | 47 | 48 | Iir::ChebyshevII::HighPass<8> hp_cheby2; 49 | double stop_ripple_dB = 80; 50 | // Setting cutoff to normalised f=0.1 51 | double normalised_cutoff_freq = 0.1; 52 | hp_cheby2.setupN(normalised_cutoff_freq, 53 | stop_ripple_dB); 54 | double norm_signal_frequency = 0.0507; 55 | for (int i = 0; i < 10000; i++) 56 | { 57 | b = fabs(hp_cheby2.filter(sin(2 * M_PI*norm_signal_frequency*i))); 58 | if (i > 5000) { 59 | assert_print(b < 1E-3, "Highpass not removing a sine.\n"); 60 | } 61 | } 62 | 63 | 64 | 65 | return 0; 66 | } 67 | -------------------------------------------------------------------------------- /test/custom.cpp: -------------------------------------------------------------------------------- 1 | #include "Iir.h" 2 | 3 | #include 4 | 5 | #include "assert_print.h" 6 | 7 | int main (int,char**) 8 | { 9 | // generated with: "elliptic_design.py" 10 | const double coeff[][6] = { 11 | {1.665623674062209972e-02, 12 | -3.924801366970616552e-03, 13 | 1.665623674062210319e-02, 14 | 1.000000000000000000e+00, 15 | -1.715403014004022175e+00, 16 | 8.100474793174089472e-01}, 17 | {1.000000000000000000e+00, 18 | -1.369778997100624895e+00, 19 | 1.000000000000000222e+00, 20 | 1.000000000000000000e+00, 21 | -1.605878925999785656e+00, 22 | 9.538657786383895054e-01}}; 23 | 24 | Iir::Custom::SOSCascade<2> f(coeff); 25 | 26 | auto coeffRet = f.getCascadeStorage(); 27 | for(int i = 0; i < 2; i++) { 28 | assert_print(coeffRet.stageArray[i].m_a0 == coeff[i][3],"m_a0 mismatch.\n"); 29 | assert_print(coeffRet.stageArray[i].m_a1 == coeff[i][4],"m_a1 mismatch.\n"); 30 | assert_print(coeffRet.stageArray[i].m_a2 == coeff[i][5],"m_a2 mismatch.\n"); 31 | assert_print(coeffRet.stageArray[i].m_b0 == coeff[i][0],"m_b0 mismatch.\n"); 32 | assert_print(coeffRet.stageArray[i].m_b1 == coeff[i][1],"m_b1 mismatch.\n"); 33 | assert_print(coeffRet.stageArray[i].m_b2 == coeff[i][2],"m_b2 mismatch.\n"); 34 | } 35 | 36 | double b = 0; 37 | double b2 = 0; 38 | for(int i=0;i<10000;i++) 39 | { 40 | double a=0; 41 | if (i==10) a = 1; 42 | b2 = b; 43 | b = f.filter(a); 44 | assert_print(!isnan(b),"Custom filter output is NAN\n"); 45 | if ((i>20) && (i<100)) { 46 | assert_print((b != 0) || (b2 != 0), 47 | "Custom output is zero\n"); 48 | } 49 | } 50 | fprintf(stderr,"Final filter value: %e\n",b); 51 | assert_print(fabs(b) < 1E-25,"Custom filter value for t->inf to high!"); 52 | 53 | return 0; 54 | } 55 | -------------------------------------------------------------------------------- /test/rbj.cpp: -------------------------------------------------------------------------------- 1 | #include "Iir.h" 2 | 3 | #define _USE_MATH_DEFINES 4 | #include 5 | #include 6 | 7 | #include "assert_print.h" 8 | 9 | int main(int, char**) 10 | { 11 | Iir::RBJ::LowPass f; 12 | const double samplingrate = 1000; // Hz 13 | const double cutoff_frequency = 5; // Hz 14 | const double qfactor = 1; 15 | f.setup(samplingrate, cutoff_frequency, qfactor); 16 | double b; 17 | for (int i = 0; i < 10000; i++) 18 | { 19 | double a = 0; 20 | if (i == 10) a = 1; 21 | b = f.filter(a); 22 | //fprintf(stdout,"%e\n",b); 23 | assert_print(!isnan(b), "Lowpass output is NAN\n"); 24 | } 25 | fprintf(stderr, "%e\n", b); 26 | assert_print(fabs(b) < 1E-15, "Lowpass value for t->inf to high!"); 27 | 28 | Iir::RBJ::BandStop bs; 29 | const double center_frequency = 0.05; 30 | const double frequency_width = 0.005; 31 | bs.setupN(center_frequency, frequency_width); 32 | for (int i = 0; i < 100000; i++) 33 | { 34 | double a = 0; 35 | if (i == 10) a = 1; 36 | b = bs.filter(a); 37 | assert_print(!isnan(b), "Bandstop output is NAN\n"); 38 | } 39 | fprintf(stderr, "%e\n", b); 40 | assert_print(fabs(b) < 1E-15, "Bandstop value for t->inf to high!"); 41 | 42 | for (int i = 0; i < 100000; i++) 43 | { 44 | b = fabs(bs.filter(sin(2 * M_PI*center_frequency*i))); 45 | if (i > 50000) { 46 | assert_print(b < 1E-5, "Bandstop not removing sine."); 47 | } 48 | } 49 | fprintf(stderr, "%e\n", b); 50 | return 0; 51 | } 52 | -------------------------------------------------------------------------------- /test/state.py: -------------------------------------------------------------------------------- 1 | import scipy.signal as signal 2 | import numpy as np 3 | 4 | sos = signal.butter(2, 0.1, output='sos') 5 | print(sos) 6 | 7 | x = np.array([-1,0.5,1,0.5,0.3,-77,1E-5]) 8 | 9 | y = signal.sosfilt(sos, x) 10 | 11 | print(y) 12 | 13 | print("----------------------") 14 | 15 | sos = signal.butter(4, 0.15, output='sos') 16 | print(sos) 17 | 18 | x = np.array([-1,0.5,-1,0.5,-0.3,3,-1E-5]) 19 | y = signal.sosfilt(sos, x) 20 | 21 | print(y) 22 | -------------------------------------------------------------------------------- /title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berndporr/iir1/6d190cc6fd7291825974204e04c15afe9d9f9820/title.png --------------------------------------------------------------------------------