Output the audio signal with filtering by IIR filter in the *.wav file on the SD card using onboard CODEC. SD カードの *.wav ファイルのオーディオ信号を遮断周波数可変の IIR フィルタを通して,ボードに搭載されているCODEC で出力する.

Dependencies:   BSP_DISCO_F746NG F746_GUI LCD_DISCO_F746NG SDFileSystem_Warning_Fixed TS_DISCO_F746NG mbed FrequencyResponseDrawer F746_SAI_IO Array_Matrix

Committer:
MikamiUitOpen
Date:
Mon Jul 04 05:59:44 2016 +0000
Revision:
11:769d986c10fa
Parent:
5:3e8ca1ed31a1
12

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:04b43b777fae 1 //------------------------------------------------------------------------------
MikamiUitOpen 0:04b43b777fae 2 // IIR フィルタを双一次 z 変換で設計し,その周波数特性を描画するためのクラス -- Header
MikamiUitOpen 0:04b43b777fae 3 //
MikamiUitOpen 5:3e8ca1ed31a1 4 // 2016/05/01, Copyright (c) 2016 MIKAMI, Naoki
MikamiUitOpen 0:04b43b777fae 5 //------------------------------------------------------------------------------
MikamiUitOpen 0:04b43b777fae 6
MikamiUitOpen 0:04b43b777fae 7 #ifndef F746_DISIGNER_AND_DRAWER_HPP
MikamiUitOpen 0:04b43b777fae 8 #define F746_DISIGNER_AND_DRAWER_HPP
MikamiUitOpen 0:04b43b777fae 9
MikamiUitOpen 0:04b43b777fae 10 #include "NumericLabel.hpp"
MikamiUitOpen 0:04b43b777fae 11 #include "TouchPanelDetectorX.hpp"
MikamiUitOpen 0:04b43b777fae 12 #include "FrquencyResponseDrawer.hpp"
MikamiUitOpen 0:04b43b777fae 13 #include "BilinearDesignLH.hpp"
MikamiUitOpen 0:04b43b777fae 14 #include "IIR_CascadeFrqResp.hpp"
MikamiUitOpen 0:04b43b777fae 15
MikamiUitOpen 0:04b43b777fae 16 namespace Mikami
MikamiUitOpen 0:04b43b777fae 17 {
MikamiUitOpen 0:04b43b777fae 18 class DesignerDrawer
MikamiUitOpen 0:04b43b777fae 19 {
MikamiUitOpen 0:04b43b777fae 20 public:
MikamiUitOpen 0:04b43b777fae 21 // Constructor
MikamiUitOpen 0:04b43b777fae 22 DesignerDrawer(uint16_t x0, uint16_t y0,
MikamiUitOpen 5:3e8ca1ed31a1 23 float db1, int fs, int order,
MikamiUitOpen 0:04b43b777fae 24 float fc, uint16_t fL, uint16_t fH,
MikamiUitOpen 0:04b43b777fae 25 BilinearDesign::Type lpHp);
MikamiUitOpen 0:04b43b777fae 26
MikamiUitOpen 0:04b43b777fae 27 ~DesignerDrawer();
MikamiUitOpen 0:04b43b777fae 28
MikamiUitOpen 0:04b43b777fae 29 // フィルタの再設計と周波数特性の再描画
MikamiUitOpen 0:04b43b777fae 30 bool ReDesignAndDraw(Biquad::Coefs *ck, float &g0,
MikamiUitOpen 0:04b43b777fae 31 BilinearDesign::Type lpHp);
MikamiUitOpen 0:04b43b777fae 32
MikamiUitOpen 0:04b43b777fae 33 // 周波数特性の描画
MikamiUitOpen 0:04b43b777fae 34 void DrawResponse();
MikamiUitOpen 0:04b43b777fae 35
MikamiUitOpen 0:04b43b777fae 36 void GetCoefficients(Biquad::Coefs *ck, float &g0);
MikamiUitOpen 0:04b43b777fae 37
MikamiUitOpen 0:04b43b777fae 38 uint16_t GetOrder() { return ORDER_; }
MikamiUitOpen 0:04b43b777fae 39
MikamiUitOpen 0:04b43b777fae 40 private:
MikamiUitOpen 0:04b43b777fae 41 LCD_DISCO_F746NG *lcd_;
MikamiUitOpen 0:04b43b777fae 42 TS_DISCO_F746NG *ts_;
MikamiUitOpen 0:04b43b777fae 43
MikamiUitOpen 0:04b43b777fae 44 const uint16_t X0_, Y0_;
MikamiUitOpen 0:04b43b777fae 45 const uint16_t ORDER_;
MikamiUitOpen 0:04b43b777fae 46 const uint16_t CURSOR_Y0_, CURSOR_LENGTH_;
MikamiUitOpen 0:04b43b777fae 47 const uint16_t LOWER_F_, HIGHER_F_;
MikamiUitOpen 0:04b43b777fae 48 const uint32_t CURSOR_COLOR_, CURSOR_TOUCHED_COLOR_;
MikamiUitOpen 0:04b43b777fae 49
MikamiUitOpen 3:cda40218256c 50 IIR_CascadeFrqResp *frqResp_; // IIR フィルタの周波数応答に対応するオブジェクト
MikamiUitOpen 0:04b43b777fae 51 BilinearDesign::Coefs *coefs_; // 設計された係数
MikamiUitOpen 0:04b43b777fae 52 Biquad::Coefs *ck_;
MikamiUitOpen 0:04b43b777fae 53 float g0_; // 設計された係数(利得定数)
MikamiUitOpen 0:04b43b777fae 54
MikamiUitOpen 0:04b43b777fae 55 int fC_; // 遮断周波数
MikamiUitOpen 0:04b43b777fae 56
MikamiUitOpen 0:04b43b777fae 57 uint16_t cursorX_, oldCursorX_;
MikamiUitOpen 0:04b43b777fae 58 bool cursorRedraw_;
MikamiUitOpen 0:04b43b777fae 59 BilinearDesign::Type lp_;
MikamiUitOpen 0:04b43b777fae 60
MikamiUitOpen 0:04b43b777fae 61 FrqRespDrawer *drawerObj_;
MikamiUitOpen 0:04b43b777fae 62 BilinearDesign *designObj_;
MikamiUitOpen 0:04b43b777fae 63 TouchPanelDetectorX *tp_;
MikamiUitOpen 0:04b43b777fae 64 NumericLabel<int> *lblFrq_; // 遮断周波数表示用
MikamiUitOpen 0:04b43b777fae 65
MikamiUitOpen 0:04b43b777fae 66 // 周波数を 10, 20, 50, 100 Hz の倍数にする
MikamiUitOpen 0:04b43b777fae 67 int Frq10(float f);
MikamiUitOpen 0:04b43b777fae 68 };
MikamiUitOpen 0:04b43b777fae 69 }
MikamiUitOpen 0:04b43b777fae 70 #endif // F746_DISIGNER_AND_DRAWER_HPP