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

allpass_1aq2.h

Go to the documentation of this file.
00001 /*
00002  * SPUC - Signal processing using C++ - A DSP library
00003  * 
00004  * This program is free software; you can redistribute it and/or modify
00005  * it under the terms of the GNU General Public License as published by
00006  * the Free Software Foundation; either version 2, or (at your option)
00007  * any later version.
00008  * 
00009  * This program is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012  * GNU General Public License for more details.
00013  * 
00014  * You should have received a copy of the GNU General Public License
00015  * along with this program; if not, write to the Free Software
00016  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00017 */
00018 #ifndef ALLPASS_1AQ2
00019 #define ALLPASS_1AQ2
00020 namespace SPUC {
00026 class allpass_1aq2
00027 {
00028     protected:   
00029                 long adder2;
00030         
00031     public:
00032         allpass_1aq2() { adder2 = 0;}
00033 
00034 void init() { adder2 = 0;}
00035 long clock(long input) {
00036 // Shift inputs by one time sample and place new sample into array
00037         long adder1,next_adder2,mult,out;
00038 
00039 // Adder1 needs 1 more bit than input   
00040         adder1 = adder2 - input;
00041 
00042 //      mult = -(3*adder1)/4; // Multiplier = 3/4
00043         mult = -adder1 + ((adder1+2)>>2); // Multiplier = 3/4
00044 
00045 // Next adder2 needs 1 more bit than input
00046         next_adder2 = mult + input;
00047 
00048 // output adder needs 1 more bit than input
00049         out = adder2 + mult;
00050         adder2 = next_adder2;
00051         return(out);
00052         }
00053 };                                               
00054 } // namespace SPUC 
00055 #endif

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