Output the audio signal with filtering by IIR filter in the Quad-SPI flash memory using onboard CODEC. QSPI フラッシュメモリのオーディオデータを遮断周波数可変の IIR フィルタを通してボードに搭載されているCODEC で出力するプログラム.

Dependencies:   BSP_DISCO_F746NG_patch_fixed F746_GUI LCD_DISCO_F746NG QSPI_DISCO_F746NG TS_DISCO_F746NG mbed

Revision:
0:2eb96a7cf9b9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MyClasses_Functions/BiquadFrqRespDrawer.hpp	Fri Apr 01 05:03:20 2016 +0000
@@ -0,0 +1,47 @@
+//--------------------------------------------------------------
+//  BiquadFrqRespDrawer class (Derived class of FrqRespDrawer)
+//  縦続形 IIR フィルタの周波数特性を描画するためのクラス
+//  このクラスは,FrqRespDrawer の派生クラス
+//
+//  2016/03/31, Copyright (c) 2016 MIKAMI, Naoki
+//--------------------------------------------------------------
+
+#ifndef F746_BILINEAR_FRQ_RESP_DRAWER_HPP
+#define F746_BILINEAR_FRQ_RESP_DRAWER_HPP
+
+#include "Biquad.hpp"
+#include "FrquencyResponseDrawer.hpp"
+
+namespace Mikami
+{
+    class BiquadFrqRespDrawer : public FrqRespDrawer
+    {
+    public:
+        BiquadFrqRespDrawer(FrqRespDrawer::Params p)
+            : FrqRespDrawer(p) {}
+
+        // 次数とフィルタの係数設定
+        void SetParams(int order, float g0, Biquad::Coefs ck[])
+        {
+            order_ = order;
+            g0_ = g0;
+            ck_ = ck;
+        }
+        
+        // 周波数応答の絶対値を返す関数, 引数: z^(-1)
+        virtual float AbsH_z(Complex u)
+        {
+            Complex h = g0_;
+            for (int k=0; k<order_/2; k++)
+            h = h*(1.0f + (ck_[k].b1 + ck_[k].b2*u)*u)
+                /((1.0f - (ck_[k].a1 + ck_[k].a2*u)*u));
+            return abs(h);
+        }
+
+    private:
+        int order_;
+        float g0_;
+        Biquad::Coefs *ck_;
+    };
+}
+#endif  // F746_BILINEAR_FRQ_RESP_DRAWER_HPP