Changeset 2afdb0f
- Timestamp:
- May 17, 2006, 9:45:36 PM (19 years ago)
- Branches:
- feature/autosink, feature/cnn, feature/cnn_org, feature/constantq, feature/crepe, feature/crepe_org, feature/pitchshift, feature/pydocstrings, feature/timestretch, fix/ffmpeg5, master, pitchshift, sampler, timestretch, yinfft+
- Children:
- 6ebcb08
- Parents:
- f44b111
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/fft.h
rf44b111 r2afdb0f 18 18 */ 19 19 20 /** @file 21 * Fft object (fftw3f) 22 * */ 20 /** \file 21 22 Fast Fourier Transform object 23 24 */ 23 25 24 26 #ifndef FFT_H_ 25 27 #define FFT_H_ 26 28 27 /* <complex.h> is not included here but only in aubio_priv.h, so that c++28 * projects can still use their own complex definition. */29 /* note that <complex.h> is not included here but only in aubio_priv.h, so that 30 * c++ projects can still use their own complex definition. */ 29 31 #include <fftw3.h> 30 32 … … 41 43 typedef FFTW_TYPE fft_data_t; 42 44 45 /** FFT object 46 47 This object computes forward and backward FFTs, using the complex type to 48 store the results. The phase vocoder or aubio_mfft_t objects should be 49 preferred to using directly aubio_fft_t. The FFT are computed using FFTW3 50 (although support for another library could be added). 51 52 */ 43 53 typedef struct _aubio_fft_t aubio_fft_t; 44 54 45 /* fftw funcs */ 55 /** create new FFT computation object 56 57 \param size length of the FFT 58 59 */ 46 60 extern aubio_fft_t * new_aubio_fft(uint_t size); 61 /** delete FFT object 62 63 \param s fft object as returned by new_aubio_fft 64 65 */ 47 66 extern void del_aubio_fft(aubio_fft_t * s); 67 /** compute forward FFT 68 69 \param s fft object as returned by new_aubio_fft 70 \param data input signal 71 \param spectrum output spectrum 72 \param size length of the input vector 73 74 */ 48 75 extern void aubio_fft_do (const aubio_fft_t *s, const smpl_t * data, 49 76 fft_data_t * spectrum, const uint_t size); 77 /** compute backward (inverse) FFT 78 79 \param s fft object as returned by new_aubio_fft 80 \param spectrum input spectrum 81 \param data output signal 82 \param size length of the input vector 83 84 */ 50 85 extern void aubio_fft_rdo(const aubio_fft_t *s, const fft_data_t * spectrum, 51 86 smpl_t * data, const uint_t size); 52 /** get norm from spectrum */ 87 /** compute norm vector from input spectrum 88 89 \param norm magnitude vector output 90 \param spectrum spectral data input 91 \param size size of the vectors 92 93 */ 53 94 void aubio_fft_getnorm(smpl_t * norm, fft_data_t * spectrum, uint_t size); 54 /** get phase from spectrum */ 95 /** compute phase vector from input spectrum 96 97 \param phase phase vector output 98 \param spectrum spectral data input 99 \param size size of the vectors 100 101 */ 55 102 void aubio_fft_getphas(smpl_t * phase, fft_data_t * spectrum, uint_t size); 56 103 104 /** FFT object (using cvec) 57 105 106 This object works similarly as aubio_fft_t, except the spectral data is 107 stored in a cvec_t as two vectors, magnitude and phase. 108 109 */ 58 110 typedef struct _aubio_mfft_t aubio_mfft_t; 111 112 /** create new FFT computation object 113 114 \param winsize length of the FFT 115 \param channels number of channels 116 117 */ 59 118 aubio_mfft_t * new_aubio_mfft(uint_t winsize, uint_t channels); 119 /** compute forward FFT 120 121 \param fft fft object as returned by new_aubio_mfft 122 \param in input signal 123 \param fftgrain output spectrum 124 125 */ 60 126 void aubio_mfft_do (aubio_mfft_t * fft,fvec_t * in,cvec_t * fftgrain); 127 /** compute backward (inverse) FFT 128 129 \param fft fft object as returned by new_aubio_mfft 130 \param fftgrain input spectrum (cvec) 131 \param out output signal 132 133 */ 61 134 void aubio_mfft_rdo(aubio_mfft_t * fft,cvec_t * fftgrain, fvec_t * out); 135 /** delete FFT object 136 137 \param fft fft object as returned by new_aubio_mfft 138 139 */ 62 140 void del_aubio_mfft(aubio_mfft_t * fft); 63 141
Note: See TracChangeset
for help on using the changeset viewer.