Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

allpass_1a.h

Go to the documentation of this file.
00001 
00002 /*
00003  * SPUC - Signal processing using C++ - A DSP library
00004  * 
00005  * This program is free software; you can redistribute it and/or modify
00006  * it under the terms of the GNU General Public License as published by
00007  * the Free Software Foundation; either version 2, or (at your option)
00008  * any later version.
00009  * 
00010  * This program is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  * GNU General Public License for more details.
00014  * 
00015  * You should have received a copy of the GNU General Public License
00016  * along with this program; if not, write to the Free Software
00017  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00018 */
00019 #ifndef ALLPASS_A1
00020 #define ALLPASS_A1
00021 namespace SPUC {
00029 
00030 
00031 
00032 
00033 
00034 template <class Numeric> class allpass_1a
00035 {
00036     protected:   
00037                 long size; 
00038         Numeric a0; 
00039                 Numeric adder2; 
00040         
00041     public:
00042         allpass_1a(Numeric A0, long s=0) : size(s) { 
00043                   a0 = A0; adder2 = 0;
00044                 }
00045 
00046                 void init(Numeric A0, long s=0) { 
00047                   a0 = A0;
00048                   adder2 = 0;
00049                 }
00051                 Numeric clock(Numeric input) {
00052                   Numeric adder1,next_adder2,mult,out;
00053                   adder1 = adder2 - input;
00054                   mult = -a0*adder1;
00055                   next_adder2 = mult + input;
00056                   out = adder2 + mult;
00057                   adder2 = next_adder2;
00058                   return(out);
00059                 }
00060 };                                               
00061 } // namespace SPUC 
00062 #endif

Generated on Fri Sep 16 11:02:30 2005 for spuc by  doxygen 1.4.4