The experiment using this program is introduced on "Interface" No.4, CQ publishing Co.,Ltd, 2015. 本プログラムを使った実験は,CQ出版社のインターフェース 2015年4月号で紹介しています.
Dependencies: DSProcessingIO mbed
fftReal.hpp@1:655f6a72e47e, 2014-07-29 (annotated)
- Committer:
- CQpub0Mikami
- Date:
- Tue Jul 29 06:52:38 2014 +0000
- Revision:
- 1:655f6a72e47e
- Parent:
- 0:c740f515e0b7
ver.2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
CQpub0Mikami | 0:c740f515e0b7 | 1 | //------------------------------------------------------------------- |
CQpub0Mikami | 0:c740f515e0b7 | 2 | // FFT class for real data (Header) |
CQpub0Mikami | 0:c740f515e0b7 | 3 | // Copyright (c) 2014 MIKAMI, Naoki, 2014/06/29 |
CQpub0Mikami | 0:c740f515e0b7 | 4 | //------------------------------------------------------------------- |
CQpub0Mikami | 0:c740f515e0b7 | 5 | |
CQpub0Mikami | 0:c740f515e0b7 | 6 | #ifndef FFT_REAL_HPP |
CQpub0Mikami | 0:c740f515e0b7 | 7 | #define FFT_REAL_HPP |
CQpub0Mikami | 0:c740f515e0b7 | 8 | |
CQpub0Mikami | 0:c740f515e0b7 | 9 | #include "mbed.h" |
CQpub0Mikami | 0:c740f515e0b7 | 10 | #include <complex> // requisite |
CQpub0Mikami | 0:c740f515e0b7 | 11 | |
CQpub0Mikami | 0:c740f515e0b7 | 12 | namespace Mikami |
CQpub0Mikami | 0:c740f515e0b7 | 13 | { |
CQpub0Mikami | 0:c740f515e0b7 | 14 | typedef complex<float> Complex; // define "Complex" |
CQpub0Mikami | 0:c740f515e0b7 | 15 | |
CQpub0Mikami | 0:c740f515e0b7 | 16 | class FftReal |
CQpub0Mikami | 0:c740f515e0b7 | 17 | { |
CQpub0Mikami | 0:c740f515e0b7 | 18 | private: |
CQpub0Mikami | 0:c740f515e0b7 | 19 | const int N_FFT_; |
CQpub0Mikami | 0:c740f515e0b7 | 20 | Complex* wTable_; // twiddle factor |
CQpub0Mikami | 0:c740f515e0b7 | 21 | uint16_t* bTable_; // for bit reversal |
CQpub0Mikami | 0:c740f515e0b7 | 22 | Complex* u_; // working area |
CQpub0Mikami | 0:c740f515e0b7 | 23 | |
CQpub0Mikami | 0:c740f515e0b7 | 24 | FftReal(const FftReal& ); |
CQpub0Mikami | 0:c740f515e0b7 | 25 | FftReal& operator=(const FftReal& ); |
CQpub0Mikami | 0:c740f515e0b7 | 26 | |
CQpub0Mikami | 0:c740f515e0b7 | 27 | public: |
CQpub0Mikami | 0:c740f515e0b7 | 28 | // Constructor |
CQpub0Mikami | 0:c740f515e0b7 | 29 | explicit FftReal(uint16_t n); |
CQpub0Mikami | 0:c740f515e0b7 | 30 | // Destructor |
CQpub0Mikami | 0:c740f515e0b7 | 31 | ~FftReal(); |
CQpub0Mikami | 0:c740f515e0b7 | 32 | // Execute FFT |
CQpub0Mikami | 0:c740f515e0b7 | 33 | void Execute(const float x[], Complex y[]); |
CQpub0Mikami | 0:c740f515e0b7 | 34 | }; |
CQpub0Mikami | 0:c740f515e0b7 | 35 | } |
CQpub0Mikami | 0:c740f515e0b7 | 36 | #endif // FFT_REAL_HPP |
CQpub0Mikami | 0:c740f515e0b7 | 37 |