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

Committer:
MikamiUitOpen
Date:
Thu Apr 07 00:32:00 2016 +0000
Revision:
1:a1be09c2533a
Parent:
0:2eb96a7cf9b9
2

Who changed what in which revision?

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