Waveform filter programs
foutra.cc File Reference

Fourier transforms. More...

#include <iostream>
#include <tfxx/commandline.h>
#include <aff/series.h>
#include <aff/iterator.h>
#include <aff/dump.h>
#include <aff/seriesoperators.h>
#include <aff/functions/avg.h>
#include <aff/functions/rms.h>
#include <aff/functions/sqrsum.h>
#include <aff/subarray.h>
#include <tsxx/tsxx.h>
#include <tsxx/tapers.h>
#include <tsxx/filter.h>
#include <tsxx/wid2timeseries.h>
#include <tsioxx/tsioxx.h>
#include <fstream>
#include <tfxx/error.h>
#include <tfxx/rangestring.h>
#include <tfxx/xcmdline.h>
#include <tfxx/misc.h>
#include <tfxx/handle.h>
#include <tfxx/seitosh.h>
#include <datrwxx/readany.h>
#include <datrwxx/writeany.h>
#include <fourier/fftwaff.h>
#include <sstream>
#include "foutra_options_brief_help.h"
#include "foutra_options_help.h"
#include "foutra_usage_help.h"
Include dependency graph for foutra.cc:

Go to the source code of this file.

Classes

struct  Options
 

Macros

#define FOUTRA_VERSION   "FOUTRA V1.10 Fourier transforms"
 

Typedefs

typedef double Tvalue
 
typedef aff::Series< TvalueTseries
 
typedef ts::sff::File< TseriesTfile
 
typedef ts::TDsfftimeseries Ttimeseries
 
typedef fourier::fft::DRFFTWAFF Tfft
 

Functions

int main (int iargc, char *argv[])
 

Detailed Description

Fourier transforms.


Author
Thomas Forbriger
Date
25/07/2006

Fourier transforms

Copyright (c) 2006 by Thomas Forbriger (BFO Schiltach)


FOUTRA is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software

Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

REVISIONS and CHANGES

  • 25/07/2006 V1.0 Thomas Forbriger
  • 12/09/2007 V1.1 this version produces correct spectra
  • 13/09/2007 V1.2 The program is tested against Walter's code now provides processing details in verbose mode and in trace FREE block
  • 17/09/2007 V1.4 provides:
    • demean and detrend
    • scaling to average in relative bandwidth
    • ASCII output
    • output ASCII table on logarithmic frequency scale
    • average only ASCII output if requested
  • 26/06/2009 V1.5 additional feature:
    • adjust number of samples to make FFT more efficient
  • 08/10/2010 V1.6 start testing foutra scaling
  • 12/12/2010 V1.7 implemented amplitude scaling for harmonic signal
  • 14/12/2010 V1.8 implemented segment averaging distinguish between input series, output spectrum and segment (analysis) series
  • 10/01/2011 V1.8b corrected Fourier transformation formula in doxygen documentation
  • 03/12/2014 V1.9 provide output file format selector
  • 08/01/2015 V1.10 FIX: when using -scalerbw take bandwidth from opt.scaledecades rather than opt.decades
  • 29/01/2015 V1.11 FEATURE: provide calculation of n-th derivative of time series
  • 02/04/2019 use new header file interface to libtsioxx
Note
08/01/2010: Scaling for foutra power spectrum was tested against theory. The integral over the power spectral density calculated by foutra over the whole frequency band (up to Nyquist frequency) provides the total power of the signal (i.e. the variance, i.e. the square of the rms value).
See also
Spectral analysis (foutra.cc)
Todo:
The use of series containers is messy. The same container is used for different purposes, once being used as a reference, than as a copy. This should be sorted out.

Definition in file foutra.cc.