ライブラリ "DSP_MultirateLinearphase" の使用例.
Dependencies: mbed DSP_MultirateLinearphase
coefficients.hpp@0:84e2360c7442, 2020-05-25 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Mon May 25 06:19:22 2020 +0000
- Revision:
- 0:84e2360c7442
- Child:
- 3:d52ea58bea85
1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:84e2360c7442 | 1 | //------------------------------------------------------------------ |
MikamiUitOpen | 0:84e2360c7442 | 2 | // 補間に使うフィルタの係数としてデフォルト以外の係数を使う場合の定義の例 |
MikamiUitOpen | 0:84e2360c7442 | 3 | // |
MikamiUitOpen | 0:84e2360c7442 | 4 | // デフォルトの係数を使う場合は,このファイルは不要 |
MikamiUitOpen | 0:84e2360c7442 | 5 | // |
MikamiUitOpen | 0:84e2360c7442 | 6 | // このファイルを使ってデフォルト以外の係数を使う場合は,以下のいずれかの |
MikamiUitOpen | 0:84e2360c7442 | 7 | // #define 文を,このファイルをインクルードする前に記述すること |
MikamiUitOpen | 0:84e2360c7442 | 8 | // #define FIR_INTERPOLATOR_ORDER96 |
MikamiUitOpen | 0:84e2360c7442 | 9 | // #define FIR_INTERPOLATOR_ORDER4 |
MikamiUitOpen | 0:84e2360c7442 | 10 | // |
MikamiUitOpen | 0:84e2360c7442 | 11 | // 2020/05/25, Copyright (c) 2020 MIKAMI, Naoki |
MikamiUitOpen | 0:84e2360c7442 | 12 | //------------------------------------------------------------------ |
MikamiUitOpen | 0:84e2360c7442 | 13 | |
MikamiUitOpen | 0:84e2360c7442 | 14 | #include "MultirateLiPh.hpp" |
MikamiUitOpen | 0:84e2360c7442 | 15 | using namespace Mikami; |
MikamiUitOpen | 0:84e2360c7442 | 16 | |
MikamiUitOpen | 0:84e2360c7442 | 17 | #ifdef FIR_INTERPOLATOR_ORDER96 |
MikamiUitOpen | 0:84e2360c7442 | 18 | // 使用窓関数 Kaiser 窓 |
MikamiUitOpen | 0:84e2360c7442 | 19 | // 標本化周波数 (kHz) 40.000000 |
MikamiUitOpen | 0:84e2360c7442 | 20 | // 次数 96 |
MikamiUitOpen | 0:84e2360c7442 | 21 | // 種類 LPF |
MikamiUitOpen | 0:84e2360c7442 | 22 | // 遮断周波数 (kHz) 5.000000 |
MikamiUitOpen | 0:84e2360c7442 | 23 | // 減衰量 (dB) 40.00 |
MikamiUitOpen | 0:84e2360c7442 | 24 | const int MultirateLiPh::ORDER_ = 96; |
MikamiUitOpen | 0:84e2360c7442 | 25 | const float MultirateLiPh::HK1_[] = { |
MikamiUitOpen | 0:84e2360c7442 | 26 | -3.181336E-03f, 5.128636E-03f, -7.675400E-03f, 1.095993E-02f, |
MikamiUitOpen | 0:84e2360c7442 | 27 | -1.517799E-02f, 2.063008E-02f, -2.781909E-02f, 3.767194E-02f, |
MikamiUitOpen | 0:84e2360c7442 | 28 | -5.211612E-02f, 7.591348E-02f, -1.247794E-01f, 2.984461E-01f, |
MikamiUitOpen | 0:84e2360c7442 | 29 | 8.997624E-01f, -1.773076E-01f, 9.513684E-02f, -6.231776E-02f, |
MikamiUitOpen | 0:84e2360c7442 | 30 | 4.412812E-02f, -3.232678E-02f, 2.396353E-02f, -1.772480E-02f, |
MikamiUitOpen | 0:84e2360c7442 | 31 | 1.293674E-02f, -9.214960E-03f, 6.319428E-03f, -4.087220E-03f}; |
MikamiUitOpen | 0:84e2360c7442 | 32 | const float MultirateLiPh::HK2_[] = { |
MikamiUitOpen | 0:84e2360c7442 | 33 | -5.116816E-03f, 8.067276E-03f, -1.190903E-02f, 1.685387E-02f, |
MikamiUitOpen | 0:84e2360c7442 | 34 | -2.320755E-02f, 3.144941E-02f, -4.240016E-02f, 5.761400E-02f, |
MikamiUitOpen | 0:84e2360c7442 | 35 | -8.044372E-02f, 1.196597E-01f, -2.075416E-01f, 6.350536E-01f, |
MikamiUitOpen | 0:84e2360c7442 | 36 | 6.350536E-01f, -2.075416E-01f, 1.196597E-01f, -8.044372E-02f, |
MikamiUitOpen | 0:84e2360c7442 | 37 | 5.761400E-02f, -4.240016E-02f, 3.144941E-02f, -2.320755E-02f, |
MikamiUitOpen | 0:84e2360c7442 | 38 | 1.685387E-02f, -1.190903E-02f, 8.067276E-03f, -5.116816E-03f}; |
MikamiUitOpen | 0:84e2360c7442 | 39 | const float MultirateLiPh::HK3_[] = { |
MikamiUitOpen | 0:84e2360c7442 | 40 | -4.087220E-03f, 6.319428E-03f, -9.214960E-03f, 1.293674E-02f, |
MikamiUitOpen | 0:84e2360c7442 | 41 | -1.772480E-02f, 2.396353E-02f, -3.232678E-02f, 4.412812E-02f, |
MikamiUitOpen | 0:84e2360c7442 | 42 | -6.231776E-02f, 9.513684E-02f, -1.773076E-01f, 8.997624E-01f, |
MikamiUitOpen | 0:84e2360c7442 | 43 | 2.984461E-01f, -1.247794E-01f, 7.591348E-02f, -5.211612E-02f, |
MikamiUitOpen | 0:84e2360c7442 | 44 | 3.767194E-02f, -2.781909E-02f, 2.063008E-02f, -1.517799E-02f, |
MikamiUitOpen | 0:84e2360c7442 | 45 | 1.095993E-02f, -7.675400E-03f, 5.128636E-03f, -3.181336E-03f}; |
MikamiUitOpen | 0:84e2360c7442 | 46 | #endif // FIR_INTERPOLATOR_ORDER96 |
MikamiUitOpen | 0:84e2360c7442 | 47 | |
MikamiUitOpen | 0:84e2360c7442 | 48 | #ifdef FIR_INTERPOLATOR_ORDER4 |
MikamiUitOpen | 0:84e2360c7442 | 49 | // 以下は,出力の際の補間を行わない場合に相当する信号を出力したい場合に使う |
MikamiUitOpen | 0:84e2360c7442 | 50 | const int MultirateLiPh::ORDER_ = 4; |
MikamiUitOpen | 0:84e2360c7442 | 51 | const float MultirateLiPh::HK1_[] = {1}; |
MikamiUitOpen | 0:84e2360c7442 | 52 | const float MultirateLiPh::HK2_[] = {1}; |
MikamiUitOpen | 0:84e2360c7442 | 53 | const float MultirateLiPh::HK3_[] = {1}; |
MikamiUitOpen | 0:84e2360c7442 | 54 | #endif // FIR_INTERPOLATOR_ORDER4 |