ライブラリ "DSP_MultirateLinearphase" の使用例.
Dependencies: mbed DSP_MultirateLinearphase
Revision 12:ef52fea50d5e, committed 2021-12-22
- Comitter:
- MikamiUitOpen
- Date:
- Wed Dec 22 08:01:53 2021 +0000
- Parent:
- 11:fd030cd609ad
- Commit message:
- 13
Changed in this revision
diff -r fd030cd609ad -r ef52fea50d5e DSP_MultirateLinearphase.lib --- a/DSP_MultirateLinearphase.lib Sun Dec 20 08:11:05 2020 +0000 +++ b/DSP_MultirateLinearphase.lib Wed Dec 22 08:01:53 2021 +0000 @@ -1,1 +1,1 @@ -https://os.mbed.com/users/MikamiUitOpen/code/DSP_MultirateLinearphase/#91190380ca3c +https://os.mbed.com/users/MikamiUitOpen/code/DSP_MultirateLinearphase/#f7bfe38c93ab
diff -r fd030cd609ad -r ef52fea50d5e coefficients.hpp --- a/coefficients.hpp Sun Dec 20 08:11:05 2020 +0000 +++ b/coefficients.hpp Wed Dec 22 08:01:53 2021 +0000 @@ -8,7 +8,7 @@ // #define FIR_INTERPOLATOR_ORDER94 // #define FIR_INTERPOLATOR_ORDER2 // -// 2020/12/06, Copyright (c) 2020 MIKAMI, Naoki +// 2021/12/22, Copyright (c) 2021 MIKAMI, Naoki //------------------------------------------------------------------ #ifdef FIR_INTERPOLATOR_ORDER94 @@ -42,7 +42,7 @@ 1.050347E-02f, -7.242540E-03f, 4.733192E-03f, -2.834375E-03f}; #endif // FIR_INTERPOLATOR_ORDER94 -#ifdef FIR_INTERPOLATOR_ORDER2 +#ifdef FIR_INTERPOLATOR_ORDER4 // 以下は,出力の際の補間を行わない場合に相当する信号を出力したい場合に使う const int ORDER_ = 2; const float HK1_[] = {1};
diff -r fd030cd609ad -r ef52fea50d5e main.cpp --- a/main.cpp Sun Dec 20 08:11:05 2020 +0000 +++ b/main.cpp Wed Dec 22 08:01:53 2021 +0000 @@ -6,26 +6,29 @@ // // 処理の内容:AD 変換器からの入力をそのまま DA 変換器に出力する // -// 2020/12/20, Copyright (c) 2020 MIKAMI, Naoki +// 2021/12/22, Copyright (c) 2021 MIKAMI, Naoki //-------------------------------------------------------------------------- #include "MultirateLiPh.hpp" // マルチレート処理用 - -// 補間フィルタの係数として,デフォルト以外の係数を使う場合の例: -// 以下の #define 文のいずれかを有効にする -//#define FIR_INTERPOLATOR_ORDER94 // 94 次のフィルタで補間を行う場合 -//#define FIR_INTERPOLATOR_ORDER2 // 補間を行わない場合 -#include "coefficients.hpp" // デフォルトの補間用フィルタの係数を使う場合は不要 - using namespace Mikami; #pragma diag_suppress 870 // マルチバイト文字使用の警告抑制のため +#define FIR_INTERPOLATOR_DEFAULT +// 補間フィルタの係数として,デフォルト以外の係数を使う場合の例: +// 16 行目の #define 文を無効にし,以下の #define 文のいずれかを有効にする +//#define FIR_INTERPOLATOR_ORDER94 // 94 次のフィルタで補間を行う場合 +//#define FIR_INTERPOLATOR_ORDER4 // 補間を行わない場合 + const float FS_ = 10; // 入力の標本化周波数: 10 kHz +#ifdef FIR_INTERPOLATOR_DEFAULT // 出力標本化周波数を4倍にするオブジェクト(デフォルトの補間フィルタ係数を使う場合) MultirateLiPh myAdDa_(FS_); +#else // 次の行はデフォルト以外の補間用フィルタ係数を使う場合 -//MultirateLiPh myAdDa_(FS_, ORDER_, HK1_, HK2_, HK3_); +#include "coefficients.hpp" // デフォルトの補間用フィルタの係数を使う場合は不要 +MultirateLiPh myAdDa_(FS_, ORDER_, HK1_, HK2_, HK3_); +#endif // FIR_INTERPOLATOR_DEFAULT // 信号処理に割り当てられる処理時間を見積るために使用 // 標本化周波数が 10 kHz の場合