annotate dsp/signalconditioning/DFProcess.h @ 515:08bcc06c38ec tip master

Remove fast-math
author Chris Cannam <cannam@all-day-breakfast.com>
date Tue, 28 Jan 2020 15:27:37 +0000
parents b1f72e469ec8
children
rev   line source
c@225 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
c@225 2
c@225 3 /*
c@225 4 QM DSP Library
c@225 5
c@225 6 Centre for Digital Music, Queen Mary, University of London.
c@309 7 This file 2005-2006 Christian Landone.
c@309 8
mathieu@321 9 Modifications:
mathieu@321 10
mathieu@321 11 - delta threshold
mathieu@321 12 Description: add delta threshold used as offset in the smoothed
mathieu@321 13 detection function
mathieu@321 14 Author: Mathieu Barthet
mathieu@321 15 Date: June 2010
mathieu@321 16
c@309 17 This program is free software; you can redistribute it and/or
c@309 18 modify it under the terms of the GNU General Public License as
c@309 19 published by the Free Software Foundation; either version 2 of the
c@309 20 License, or (at your option) any later version. See the file
c@309 21 COPYING included with this distribution for more information.
c@225 22 */
c@225 23
cannam@489 24 #ifndef QM_DSP_DFPROCESS_H
cannam@489 25 #define QM_DSP_DFPROCESS_H
c@225 26
c@225 27 #include "FiltFilt.h"
c@225 28
cannam@503 29 #include <stdio.h>
cannam@503 30
cannam@503 31 struct DFProcConfig
cannam@503 32 {
cannam@503 33 int length;
cannam@503 34 int LPOrd;
c@225 35 double *LPACoeffs;
c@225 36 double *LPBCoeffs;
cannam@503 37 int winPre;
cannam@503 38 int winPost;
c@225 39 double AlphaNormParam;
c@237 40 bool isMedianPositive;
c@410 41 float delta; //delta threshold used as an offset when computing the smoothed detection function
c@410 42
c@410 43 DFProcConfig() :
c@410 44 length(0),
c@410 45 LPOrd(0),
c@410 46 LPACoeffs(NULL),
c@410 47 LPBCoeffs(NULL),
c@410 48 winPre(0),
c@410 49 winPost(0),
c@410 50 AlphaNormParam(0),
c@410 51 isMedianPositive(false),
c@410 52 delta(0)
c@410 53 {
c@410 54 }
c@237 55 };
c@225 56
c@225 57 class DFProcess
c@225 58 {
c@225 59 public:
c@225 60 DFProcess( DFProcConfig Config );
c@225 61 virtual ~DFProcess();
c@225 62
c@225 63 void process( double* src, double* dst );
cannam@483 64
c@225 65 private:
c@225 66 void initialise( DFProcConfig Config );
c@225 67 void deInitialise();
c@225 68 void removeDCNormalize( double *src, double*dst );
c@225 69 void medianFilter( double* src, double* dst );
c@225 70
c@299 71 int m_length;
c@299 72 int m_FFOrd;
c@225 73
c@299 74 int m_winPre;
c@299 75 int m_winPost;
c@225 76
c@225 77 double m_alphaNormParam;
c@225 78
c@225 79 double* filtSrc;
c@225 80 double* filtDst;
c@225 81
c@225 82 double* m_filtScratchIn;
c@225 83 double* m_filtScratchOut;
c@225 84
c@225 85 FiltFilt* m_FiltFilt;
c@225 86
c@225 87 bool m_isMedianPositive;
c@410 88 float m_delta; //add delta threshold
c@225 89 };
c@225 90
c@225 91 #endif