X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=libctsim%2Ffilter.cpp;h=941d905ea76512f78814763a11ce62bd5de2b02a;hp=a88fad5a51c3cb1a663908a81b22dc95f8f7d07b;hb=2a39ee3b125e3e2e68bbba2ac15a65039456ff7e;hpb=e36dfad3f0818b4c3457fbe7277faa6f4ca28dfe diff --git a/libctsim/filter.cpp b/libctsim/filter.cpp index a88fad5..941d905 100644 --- a/libctsim/filter.cpp +++ b/libctsim/filter.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: filter.cpp,v 1.25 2000/08/19 22:59:06 kevin Exp $ +** $Id: filter.cpp,v 1.26 2000/08/22 07:02:48 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -401,31 +401,31 @@ SignalFilter::frequencyResponse (int filterID, double bw, double u, double param switch (filterID) { case FILTER_BANDLIMIT: - if (au >= bw / 2) + if (fabs(au) > fabs(bw / 2) + F_EPSILON) q = 0.; else q = 1; break; case FILTER_ABS_BANDLIMIT: - if (au >= bw / 2) + if (fabs(au) > fabs(bw / 2) + F_EPSILON) q = 0.; else q = au; break; case FILTER_TRIANGLE: - if (au >= bw) + if (fabs(au) > fabs(bw / 2) + F_EPSILON) q = 0; else q = 1 - au / bw; break; case FILTER_COSINE: - if (au >= bw / 2) + if (fabs(au) > fabs(bw / 2) + F_EPSILON) q = 0; else q = cos(PI * u / bw); break; case FILTER_ABS_COSINE: - if (au >= bw / 2) + if (fabs(au) > fabs(bw / 2) + F_EPSILON) q = 0; else q = au * cos(PI * u / bw); @@ -437,13 +437,13 @@ SignalFilter::frequencyResponse (int filterID, double bw, double u, double param q = au * bw * sinc (PI * bw * u, 1.); break; case FILTER_G_HAMMING: - if (au >= bw / 2) + if (fabs(au) > fabs(bw / 2) + F_EPSILON) q = 0; else q = param + (1 - param) * cos (TWOPI * u / bw); break; case FILTER_ABS_G_HAMMING: - if (au >= bw / 2) + if (fabs(au) > fabs(bw / 2) + F_EPSILON) q = 0; else q = au * (param + (1 - param) * cos(TWOPI * u / bw));