Basic Audio Signal Processing Library
Dependents: unzen_sample_nucleo_f746 skeleton_unzen_nucleo_f746 ifmag_noise_canceller synthesizer_f746
オーディオ信号処理用のライブラリです。
mbed-dspのフィルタ群向けに作ったクラス・ラッパーのほか、以下のクラスを用意しています。
- ヒステリシス
- sin/cosオシレータ
- リミッター
クラスは全て名前空間amakusaに含まれます。
Diff: limitterlinatan.cpp
- Revision:
- 1:0a37bce4f985
- Parent:
- 0:058daa59980d
- Child:
- 5:3d6cf4dbf458
--- a/limitterlinatan.cpp Sun Dec 11 21:04:06 2016 +0000 +++ b/limitterlinatan.cpp Mon Jan 02 11:04:49 2017 +0000 @@ -5,16 +5,18 @@ #define M_PI 3.1415927F #endif - void amakusa::LimitterLinAtan::run( float src[], float dst[], int count ) + void amakusa::LimitterLinAtan::run( float32_t *pSrc, float32_t *pDst, uint32_t blockSize) { + uint32_t count = blockSize? blockSize : this->blockSize; + for ( int i=0; i<count; i++ ) { - if ( src[i] > 0.5F ) - dst[i] = std::atan((src[i]-0.5F)*M_PI)/M_PI+0.5F; - else if ( -0.5F > src[i] ) - dst[i] = std::atan((src[i]+0.5F)*M_PI)/M_PI-0.5F; + if ( pSrc[i] > 0.5F ) + pDst[i] = std::atan((pSrc[i]-0.5F)*M_PI)/M_PI+0.5F; + else if ( -0.5F > pSrc[i] ) + pDst[i] = std::atan((pSrc[i]+0.5F)*M_PI)/M_PI-0.5F; else - dst[i] = src[i]; + pDst[i] = pSrc[i]; } }