不韋 呂
/
CQ_FixedPointSinCos
CQ出版社インターフェース誌の2017年10月号で解説している二相発振器のプログラム
QuadOscPoly.hpp@0:97d46bd73383, 2017-08-02 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Wed Aug 02 11:50:17 2017 +0000
- Revision:
- 0:97d46bd73383
1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:97d46bd73383 | 1 | //-------------------------------------------------------------- |
MikamiUitOpen | 0:97d46bd73383 | 2 | // ミニマックス近似式で求める sin 関数を利用する二相発振器のクラス |
MikamiUitOpen | 0:97d46bd73383 | 3 | // |
MikamiUitOpen | 0:97d46bd73383 | 4 | // 2017/02/26, Copyright (c) 2017 MIKAMI, Naoki |
MikamiUitOpen | 0:97d46bd73383 | 5 | //-------------------------------------------------------------- |
MikamiUitOpen | 0:97d46bd73383 | 6 | |
MikamiUitOpen | 0:97d46bd73383 | 7 | #include "SinCosFixed.hpp" |
MikamiUitOpen | 0:97d46bd73383 | 8 | |
MikamiUitOpen | 0:97d46bd73383 | 9 | #ifndef QUAD_PHASE_OSC_POLY_FIXED_HPP |
MikamiUitOpen | 0:97d46bd73383 | 10 | #define QUAD_PHASE_OSC_POLY_FIXED_HPP |
MikamiUitOpen | 0:97d46bd73383 | 11 | |
MikamiUitOpen | 0:97d46bd73383 | 12 | class QuadOscPoly |
MikamiUitOpen | 0:97d46bd73383 | 13 | { |
MikamiUitOpen | 0:97d46bd73383 | 14 | public: |
MikamiUitOpen | 0:97d46bd73383 | 15 | // Constructor |
MikamiUitOpen | 0:97d46bd73383 | 16 | QuadOscPoly(float f0, float ts) |
MikamiUitOpen | 0:97d46bd73383 | 17 | : C0_(ToFixed14(4.0f*f0*ts*1.0E-6f)), phi_(0) {} |
MikamiUitOpen | 0:97d46bd73383 | 18 | |
MikamiUitOpen | 0:97d46bd73383 | 19 | void Generate(int16_t &sinX, int16_t &cosX) |
MikamiUitOpen | 0:97d46bd73383 | 20 | { |
MikamiUitOpen | 0:97d46bd73383 | 21 | sinX = Sin16(phi_); |
MikamiUitOpen | 0:97d46bd73383 | 22 | cosX = Cos16(phi_); |
MikamiUitOpen | 0:97d46bd73383 | 23 | phi_ = phi_ + C0_; |
MikamiUitOpen | 0:97d46bd73383 | 24 | } |
MikamiUitOpen | 0:97d46bd73383 | 25 | private: |
MikamiUitOpen | 0:97d46bd73383 | 26 | const int16_t C0_; |
MikamiUitOpen | 0:97d46bd73383 | 27 | int16_t phi_; |
MikamiUitOpen | 0:97d46bd73383 | 28 | }; |
MikamiUitOpen | 0:97d46bd73383 | 29 | #endif // QUAD_PHASE_OSC_POLY_FIXED_HPP |