Demo program of FrqRespDrawer class to draw frequency response for digital filter. ディジタルフィルタの周波数特性を,周波数軸をログスケールで描画するための FrqRespDrawer クラスの使用例.

Dependencies:   BSP_DISCO_F746NG F746_GUI FrequencyResponseDrawer LCD_DISCO_F746NG TS_DISCO_F746NG mbed

Committer:
MikamiUitOpen
Date:
Fri Mar 17 01:34:01 2017 +0000
Revision:
4:d15803f401f1
Parent:
0:8fc907d1eb45
5

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:8fc907d1eb45 1 //-----------------------------------------------------------
MikamiUitOpen 0:8fc907d1eb45 2 // Frequency response for FIR filter of direct form
MikamiUitOpen 0:8fc907d1eb45 3 //
MikamiUitOpen 0:8fc907d1eb45 4 // 2016/04/17, Copyright (c) 2016 MIKAMI, Naoki
MikamiUitOpen 0:8fc907d1eb45 5 //-----------------------------------------------------------
MikamiUitOpen 0:8fc907d1eb45 6
MikamiUitOpen 0:8fc907d1eb45 7 #ifndef FIR_DIRECT_FREQUENCY_RESPONSE_HPP
MikamiUitOpen 0:8fc907d1eb45 8 #define FIR_DIRECT_FREQUENCY_RESPONSE_HPP
MikamiUitOpen 0:8fc907d1eb45 9
MikamiUitOpen 0:8fc907d1eb45 10 #include "FrequancyResponseBase.hpp"
MikamiUitOpen 0:8fc907d1eb45 11
MikamiUitOpen 0:8fc907d1eb45 12 namespace Mikami
MikamiUitOpen 0:8fc907d1eb45 13 {
MikamiUitOpen 0:8fc907d1eb45 14 class FIR_FrqResp : public FrequencyResponse
MikamiUitOpen 0:8fc907d1eb45 15 {
MikamiUitOpen 0:8fc907d1eb45 16 public:
MikamiUitOpen 0:8fc907d1eb45 17 FIR_FrqResp() : ORDER_(10)
MikamiUitOpen 0:8fc907d1eb45 18 {
MikamiUitOpen 0:8fc907d1eb45 19 float hk[] =
MikamiUitOpen 0:8fc907d1eb45 20 {
MikamiUitOpen 0:8fc907d1eb45 21 -3.391730E-02f, 1.206756E-03f, 5.917430E-02f, 1.457397E-01f,
MikamiUitOpen 0:8fc907d1eb45 22 2.247430E-01f, 2.567399E-01f, 2.247430E-01f, 1.457397E-01f,
MikamiUitOpen 0:8fc907d1eb45 23 5.917430E-02f, 1.206756E-03f, -3.391730E-02f
MikamiUitOpen 0:8fc907d1eb45 24 };
MikamiUitOpen 0:8fc907d1eb45 25 h_ = new float[ORDER_+1];
MikamiUitOpen 0:8fc907d1eb45 26 for (int k=0; k<=ORDER_; k++) h_[k] = hk[k];
MikamiUitOpen 0:8fc907d1eb45 27 }
MikamiUitOpen 0:8fc907d1eb45 28
MikamiUitOpen 0:8fc907d1eb45 29 // 周波数応答の絶対値を返す関数, 引数: z^(-1)
MikamiUitOpen 0:8fc907d1eb45 30 virtual float AbsH_z(Complex u)
MikamiUitOpen 0:8fc907d1eb45 31 {
MikamiUitOpen 0:8fc907d1eb45 32 Complex h = 0;
MikamiUitOpen 0:8fc907d1eb45 33 for (int k=ORDER_; k>=0; k--)
MikamiUitOpen 0:8fc907d1eb45 34 h = h*u + h_[k];
MikamiUitOpen 0:8fc907d1eb45 35 return abs(h);
MikamiUitOpen 0:8fc907d1eb45 36 }
MikamiUitOpen 0:8fc907d1eb45 37
MikamiUitOpen 0:8fc907d1eb45 38 private:
MikamiUitOpen 0:8fc907d1eb45 39 const int ORDER_;
MikamiUitOpen 0:8fc907d1eb45 40 float *h_;
MikamiUitOpen 0:8fc907d1eb45 41 };
MikamiUitOpen 0:8fc907d1eb45 42 }
MikamiUitOpen 0:8fc907d1eb45 43 #endif // FIR_DIRECT_FREQUENCY_RESPONSE_HPP
MikamiUitOpen 0:8fc907d1eb45 44