home *** CD-ROM | disk | FTP | other *** search
- /***************************************************************************
- * Copyright (C) 1994 Charles P. Peterson *
- * 4007 Enchanted Sun, San Antonio, Texas 78244-1254 *
- * Email: Charles_P_Peterson@fcircus.sat.tx.us *
- * *
- * This is free software with NO WARRANTY. *
- * See gfft.c, or run program itself, for details. *
- * Support is available for a fee. *
- ***************************************************************************
- *
- * Program: gfft--General FFT analysis
- * File: okmesh.c
- * Purpose: Generate a mesh vector for smoothing
- * Author: Charles Peterson (CPP)
- * History: 22-January-1994 CPP; Created.
- * Comment: If LogX mode, mesh is logarithmic
- */
-
- #include <math.h>
- #include "gfft.h"
- #include "settings.h"
-
- double *ok_mesh (double nyquist_frequency, double delta_frequency)
- {
- double *mesh = NULL;
- double delta = 1;
- double base_log = 0;
- long i;
-
- if (SmoothingSegments != NO_SMOOTHING)
- {
- mesh = gmalloc (sizeof(double) * SmoothingSegments,
- NOTHING_SPECIAL);
- if (LogX)
- {
- delta = log (nyquist_frequency / delta_frequency) /
- SmoothingSegments;
- base_log = log (delta_frequency);
- mesh[0] = delta_frequency;
- }
- else
- {
- delta = nyquist_frequency / SmoothingSegments;
- mesh[0] = delta;
- }
-
- for (i = 2; i < SmoothingSegments; i++)
- {
- if (LogX)
- {
- mesh[i-1] = exp (base_log + delta * i);
- }
- else
- {
- mesh[i-1] = delta * i;
- }
- }
- mesh[i-1] = nyquist_frequency; /* Last value must be exact */
- }
- return mesh;
- }
-
-
-
-