Demo program of digital signal processing: Variable LPF/HPF, Vocal canceller, Pitch shifter, Reverbrator. ディジタル信号処理のデモプログラム. 遮断周波数可変 LPF/HPF,ボーカルキャンセラ,ピッチシフタ,残響生成器.
Dependencies: Array_Matrix F446_AD_DA UIT_AQM1602 mbed
SignalProcessing/VariableLpHp.hpp
- Committer:
- MikamiUitOpen
- Date:
- 2017-01-30
- Revision:
- 4:2f06a5893e4a
- Parent:
- 0:fa74b1130cc3
- Child:
- 5:503bd366fd73
File content as of revision 4:2f06a5893e4a:
//-------------------------------------------------------------- // 遮断周波数可変フィルタ,LPF と HPF // // 2017/01/30, Copyright (c) 2017 MIKAMI, Naoki //-------------------------------------------------------------- #ifndef VARIABLE_LOWPASS_HIGHPASS_FILTER_HPP #define VARIABLE_LOWPASS_HIGHPASS_FILTER_HPP #include "IIR_Cascade.hpp" #include "SignalProcessing.hpp" #include "BilinearDesignLH.hpp" #include "Array.hpp" using namespace Mikami; class VariableLpHp : public SignalProcessing { public: VariableLpHp(int order, float fs) : ORDER2_(order/2), coefs_(order/2), coefsIir_(order/2), designer_(order, fs), filter_(order) {} virtual float Execute(float xn1, float xn2) { return filter_.Execute((xn1 + xn2)*0.5f); } void Design(float fc, BilinearDesign::Type passBand) { float g0; designer_.Execute(fc, passBand, coefs_, g0); for (int n=0; n<ORDER2_; n++) coefsIir_[n] = *(Biquad::Coefs *)&coefs_[n]; filter_.SetCoefs(g0, coefsIir_); filter_.Clear(); } private: const int ORDER2_; Array<BilinearDesign::Coefs> coefs_; Array<Biquad::Coefs> coefsIir_; BilinearDesign designer_; IirCascade filter_; }; #endif // VARIABLE_LOWPASS_HIGHPASS_FILTER_HPP