/** @class BoxCarSmooth.cpp @author Brian Magill @datecreated 6/10/2008 $Date:$ $Revision:$ @copyright (©) Copyright 2008 by GATS Inc. 11864 Canon Blvd., Suite 101, Newport News, VA 23606 All Rights Reserved. No part of this software or publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise without the prior written permission of GATS Inc. @datecreated 6/10/2008 */ //---------------------------------------------------------------------- // //#include #include //#include #include "BoxCarSmooth.h" using namespace std; void BoxCarSmooth::operator()(valarray const &inSignal, valarray &outSignal) { unsigned long i; unsigned long j; double sum; assert(inSignal.size() > 2*smoothSize); outSignal.resize(inSignal.size()); outSignal = inSignal; for (i = smoothSize; i < inSignal.size() - smoothSize; i++) { sum = 0.0; for (j = i - smoothSize; j < i + smoothSize + 1; j++) { sum += inSignal[j]; } outSignal[i] = sum/(2.*smoothSize + 1); } }