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
IIR_CascadeFrqResp.hpp
00001 //----------------------------------------------------------- 00002 // Frequency response for IIR filter of cascade form 00003 // 00004 // 2016/04/16, Copyright (c) 2016 MIKAMI, Naoki 00005 //----------------------------------------------------------- 00006 00007 #ifndef IIR_CASCADE_FREQUENCY_RESPONSE_HPP 00008 #define IIR_CASCADE_FREQUENCY_RESPONSE_HPP 00009 00010 #include "FrequancyResponseBase.hpp" 00011 #include "Biquad.hpp" 00012 00013 namespace Mikami 00014 { 00015 class IIR_CascadeFrqResp : public FrequencyResponse 00016 { 00017 public: 00018 IIR_CascadeFrqResp() {} 00019 00020 // 次数とフィルタの係数設定 00021 void SetParams(int order, float g0, Biquad::Coefs ck[]) 00022 { 00023 order_ = order; 00024 g0_ = g0; 00025 ck_ = ck; 00026 } 00027 00028 // 周波数応答の絶対値を返す関数, 引数: z^(-1) 00029 virtual float AbsH_z(Complex u) 00030 { 00031 Complex h = g0_; 00032 for (int k=0; k<order_/2; k++) 00033 h = h*(1.0f + (ck_[k].b1 + ck_[k].b2*u)*u) 00034 /((1.0f - (ck_[k].a1 + ck_[k].a2*u)*u)); 00035 return abs(h); 00036 } 00037 00038 private: 00039 int order_; 00040 float g0_; 00041 Biquad::Coefs *ck_; 00042 00043 // disallow copy constructor and assignment operator 00044 IIR_CascadeFrqResp(const IIR_CascadeFrqResp&); 00045 IIR_CascadeFrqResp& operator=(const IIR_CascadeFrqResp&); 00046 }; 00047 } 00048 #endif // IIR_CASCADE_FREQUENCY_RESPONSE_HPP
Generated on Wed Jul 27 2022 22:49:01 by 1.7.2