Takahiro Tanaka / Mbed 2 deprecated mbed_effector

Dependencies:   C12832 mbed

Committer:
vaifreak
Date:
Fri Sep 04 16:50:36 2015 +0000
Revision:
2:25adc1277b3e
Parent:
1:bfbfd6fede05
Child:
3:1666e2d5bd46
mbed effector, version 1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vaifreak 1:bfbfd6fede05 1 //=============================================================================
vaifreak 2:25adc1277b3e 2 // @author vaifreak
vaifreak 2:25adc1277b3e 3 // @brief clipper sub unit ( for Drive )
vaifreak 1:bfbfd6fede05 4 //=============================================================================
vaifreak 1:bfbfd6fede05 5 #pragma once
vaifreak 1:bfbfd6fede05 6
vaifreak 1:bfbfd6fede05 7 //---------------------------------------------
vaifreak 1:bfbfd6fede05 8 // Clipper, Base class.
vaifreak 1:bfbfd6fede05 9 //---------------------------------------------
vaifreak 2:25adc1277b3e 10 class ClipperBase
vaifreak 1:bfbfd6fede05 11 {
vaifreak 1:bfbfd6fede05 12 public:
vaifreak 2:25adc1277b3e 13 virtual float Process( float samp ) = 0;
vaifreak 1:bfbfd6fede05 14 };
vaifreak 1:bfbfd6fede05 15
vaifreak 1:bfbfd6fede05 16 //---------------------------------------------
vaifreak 1:bfbfd6fede05 17 // Simple clipper.
vaifreak 1:bfbfd6fede05 18 //---------------------------------------------
vaifreak 2:25adc1277b3e 19 class SimpleClipper : public ClipperBase
vaifreak 1:bfbfd6fede05 20 {
vaifreak 1:bfbfd6fede05 21 private:
vaifreak 1:bfbfd6fede05 22 float clip;
vaifreak 1:bfbfd6fede05 23
vaifreak 1:bfbfd6fede05 24 public:
vaifreak 2:25adc1277b3e 25 SimpleClipper( float c = 0.5f )
vaifreak 1:bfbfd6fede05 26 {
vaifreak 1:bfbfd6fede05 27 clip = c;
vaifreak 1:bfbfd6fede05 28 }
vaifreak 2:25adc1277b3e 29 virtual float Process( float samp )
vaifreak 1:bfbfd6fede05 30 {
vaifreak 1:bfbfd6fede05 31 if( samp > clip ) {
vaifreak 1:bfbfd6fede05 32 return clip;
vaifreak 1:bfbfd6fede05 33 } else {
vaifreak 1:bfbfd6fede05 34 return samp;
vaifreak 1:bfbfd6fede05 35 }
vaifreak 1:bfbfd6fede05 36 }
vaifreak 1:bfbfd6fede05 37 };
vaifreak 1:bfbfd6fede05 38
vaifreak 1:bfbfd6fede05 39 //---------------------------------------------
vaifreak 1:bfbfd6fede05 40 // Simple clipper.
vaifreak 1:bfbfd6fede05 41 //---------------------------------------------
vaifreak 2:25adc1277b3e 42 class SoftClipper : public ClipperBase
vaifreak 1:bfbfd6fede05 43 {
vaifreak 1:bfbfd6fede05 44 private:
vaifreak 1:bfbfd6fede05 45 float clip;
vaifreak 1:bfbfd6fede05 46 float comp_k;
vaifreak 1:bfbfd6fede05 47
vaifreak 1:bfbfd6fede05 48 public:
vaifreak 2:25adc1277b3e 49 SoftClipper( float c = 0.5f, float k = 0.01f )
vaifreak 1:bfbfd6fede05 50 {
vaifreak 1:bfbfd6fede05 51 clip = c;
vaifreak 1:bfbfd6fede05 52 comp_k = k;
vaifreak 1:bfbfd6fede05 53 }
vaifreak 1:bfbfd6fede05 54
vaifreak 2:25adc1277b3e 55 virtual float Process( float samp )
vaifreak 1:bfbfd6fede05 56 {
vaifreak 1:bfbfd6fede05 57 if( samp > clip ) {
vaifreak 1:bfbfd6fede05 58 return clip + (samp-clip)*comp_k;
vaifreak 1:bfbfd6fede05 59 } else {
vaifreak 1:bfbfd6fede05 60 return samp;
vaifreak 1:bfbfd6fede05 61 }
vaifreak 1:bfbfd6fede05 62 }
vaifreak 1:bfbfd6fede05 63 };
vaifreak 1:bfbfd6fede05 64