00001 // 00002 // Copyright(c) 1993-1996 Tony Kirke 00003 // author="Tony Kirke" * 00004 /* 00005 * SPUC - Signal processing using C++ - A DSP library 00006 * 00007 * This program is free software; you can redistribute it and/or modify 00008 * it under the terms of the GNU General Public License as published by 00009 * the Free Software Foundation; either version 2, or (at your option) 00010 * any later version. 00011 * 00012 * This program is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU General Public License 00018 * along with this program; if not, write to the Free Software 00019 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00020 */ 00021 #ifndef CIC 00022 #define CIC 00023 namespace SPUC { 00031 00032 00033 00034 00035 00036 00037 00038 class cic 00039 { 00040 protected: 00041 signed long* nacc; 00042 signed long* diff; 00043 signed long* prev; 00044 char stages; 00045 public: 00047 cic(char n=3); 00049 void reset() { 00050 for (int i=0;i<stages;i++) nacc[i] = diff[i] = prev[i] = 0; 00051 } 00053 signed long interpolate(signed long in=0, signed char dump=0); 00055 signed long decimate(signed long in, signed char dump); 00057 void num_stages(char n); 00058 }; 00059 } // namespace SPUC 00060 #endif