IIR Cascade
Dependencies: DSP_MultirateLinearphase mbed
main.cpp@0:fd55988037cc, 2022-09-13 (annotated)
- Committer:
- CQpub0Mikami
- Date:
- Tue Sep 13 07:48:33 2022 +0000
- Revision:
- 0:fd55988037cc
1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
CQpub0Mikami | 0:fd55988037cc | 1 | //---------------------------------------------------------------------- |
CQpub0Mikami | 0:fd55988037cc | 2 | // 縦続形II IIR フィルタ,float 型を使用 |
CQpub0Mikami | 0:fd55988037cc | 3 | // |
CQpub0Mikami | 0:fd55988037cc | 4 | // 2022/01/19, Copyright (c) 2022 MIKAMI, Naoki |
CQpub0Mikami | 0:fd55988037cc | 5 | //---------------------------------------------------------------------- |
CQpub0Mikami | 0:fd55988037cc | 6 | |
CQpub0Mikami | 0:fd55988037cc | 7 | #include "MultirateLiPh.hpp" |
CQpub0Mikami | 0:fd55988037cc | 8 | #include "IirCascade.hpp" |
CQpub0Mikami | 0:fd55988037cc | 9 | #include "Coefs_IIR6_Cascade_LP_300.hpp" |
CQpub0Mikami | 0:fd55988037cc | 10 | #pragma diag_suppress 870 // マルチバイト文字使用の警告抑制のため |
CQpub0Mikami | 0:fd55988037cc | 11 | using namespace Mikami; |
CQpub0Mikami | 0:fd55988037cc | 12 | |
CQpub0Mikami | 0:fd55988037cc | 13 | const float FS_ = 10.0f; // 入力の標本化周波数: 10 kHz |
CQpub0Mikami | 0:fd55988037cc | 14 | MultirateLiPh myAdDa_(FS_); // 出力標本化周波数を4倍にするオブジェクト |
CQpub0Mikami | 0:fd55988037cc | 15 | IirCascade df_(ORDER_, CK_, G0_); |
CQpub0Mikami | 0:fd55988037cc | 16 | |
CQpub0Mikami | 0:fd55988037cc | 17 | // ADC 変換終了割込みに対する割込みサービス・ルーチン |
CQpub0Mikami | 0:fd55988037cc | 18 | void AdcIsr() |
CQpub0Mikami | 0:fd55988037cc | 19 | { |
CQpub0Mikami | 0:fd55988037cc | 20 | float xn = myAdDa_.Input(); // 入力 |
CQpub0Mikami | 0:fd55988037cc | 21 | float yn = df_.Execute(xn); // 縦続形 IIR フィルタの処理 |
CQpub0Mikami | 0:fd55988037cc | 22 | myAdDa_.Output(yn); // 出力 |
CQpub0Mikami | 0:fd55988037cc | 23 | } |
CQpub0Mikami | 0:fd55988037cc | 24 | |
CQpub0Mikami | 0:fd55988037cc | 25 | int main() |
CQpub0Mikami | 0:fd55988037cc | 26 | { |
CQpub0Mikami | 0:fd55988037cc | 27 | printf("\r\n縦続形 IIR フィルタを実行します\r\n"); |
CQpub0Mikami | 0:fd55988037cc | 28 | |
CQpub0Mikami | 0:fd55988037cc | 29 | myAdDa_.Start(&AdcIsr); // 標本化を開始する |
CQpub0Mikami | 0:fd55988037cc | 30 | while (true) {} |
CQpub0Mikami | 0:fd55988037cc | 31 | } |