annotate dsp/phasevocoder/PhaseVocoder.h @ 289:befe5aa6b450
* Refactor FFT a little bit so as to separate construction and processing
rather than have a single static method -- will make it easier to use a
different implementation
* pull in KissFFT implementation (not hooked up yet)
author |
Chris Cannam <c.cannam@qmul.ac.uk> |
date |
Wed, 13 May 2009 09:19:12 +0000 |
parents |
9c403afdd9e9 |
children |
e5907ae6de17 |
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@225
|
7 This file copyright 2005-2006 Christian Landone.
|
c@225
|
8 All rights reserved.
|
c@225
|
9 */
|
c@225
|
10
|
c@225
|
11 #ifndef PHASEVOCODER_H
|
c@225
|
12 #define PHASEVOCODER_H
|
c@225
|
13
|
c@289
|
14 class FFTReal;
|
c@225
|
15
|
c@225
|
16 class PhaseVocoder
|
c@225
|
17 {
|
c@225
|
18 public:
|
c@289
|
19 PhaseVocoder( unsigned int size );
|
c@225
|
20 virtual ~PhaseVocoder();
|
c@225
|
21
|
c@289
|
22 void process( double* src, double* mag, double* theta);
|
c@225
|
23
|
c@225
|
24 protected:
|
c@225
|
25 void getPhase(unsigned int size, double *theta, double *real, double *imag);
|
c@289
|
26 // void coreFFT( unsigned int NumSamples, double *RealIn, double* ImagIn, double *RealOut, double *ImagOut);
|
c@225
|
27 void getMagnitude( unsigned int size, double* mag, double* real, double* imag);
|
c@280
|
28 void FFTShift( unsigned int size, double* src);
|
c@225
|
29
|
c@289
|
30 unsigned int m_n;
|
c@289
|
31 FFTReal *m_fft;
|
c@289
|
32 double *m_imagOut;
|
c@289
|
33 double *m_realOut;
|
c@225
|
34
|
c@225
|
35 };
|
c@225
|
36
|
c@225
|
37 #endif
|