不韋 呂
/
UIT2_IIR_Cascade
IIR filter of cascade form using float type operations and coefficients for ST Nucleo F401RE.
Diff: main.cpp
- Revision:
- 2:d4999d914eee
- Parent:
- 1:b688b41d0ba1
- Child:
- 4:83e5419d22bb
--- a/main.cpp Mon Oct 20 23:52:12 2014 +0000 +++ b/main.cpp Tue Oct 21 09:09:15 2014 +0000 @@ -1,5 +1,5 @@ //-------------------------------------------------------------- -// IIR フィルタ,縦続形,dfloat で演算 +// IIR フィルタ,縦続形,float で演算 // Analog Input : A0 // Analog Output: MCP4922 using SPI // 2014/10/20, Copyright (c) 2014 MIKAMI, Naoki @@ -7,7 +7,7 @@ #include "mbed.h" -#include "ADC_Interrupt.hpp" // for ADC using interrupt +#include "ADC_Base.hpp" // for ADC not using interrupt #include "DAC_MCP4922.hpp" // for DAC MCP4922 #include "ScfClockTim3.hpp" // for clock supplied to SCF @@ -51,18 +51,18 @@ float xn = adc_.Read(); // Read from A0 //----------------------------------------------- - float yk = g0_*xn; + float yn = g0_*xn; for (int k=0; k<ORDER_/2; k++) { - float un = ck_[k].a1*uk[k].u1 + ck_[k].a2*uk[k].u2 + yk; - yk = un + ck_[k].b1*uk[k].u1 + + ck_[k].b2*uk[k].u2; + float un = ck_[k].a1*uk[k].u1 + ck_[k].a2*uk[k].u2 + yn; + yn = un + ck_[k].b1*uk[k].u1 + + ck_[k].b2*uk[k].u2; // 計算結果の移動 uk[k].u2 = uk[k].u1; uk[k].u1 = un; } //----------------------------------------------- - myDac_.Write(yk); // Write to DAC + myDac_.Write(yn); // Write to DAC } }