SpectralNotch.hxx
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _SpectralNotch_
00025 #define _SpectralNotch_
00026
00027 #include "InPort.hxx"
00028 #include "OutPort.hxx"
00029 #include "InControl.hxx"
00030 #include "Frame.hxx"
00031 #include "FrameTransformation.hxx"
00032 #include "FrameTransformationConfig.hxx"
00033
00034 namespace CLAM{
00035
00036 class SpectralNotch: public FrameTransformationTmpl<Spectrum>
00037 {
00038 InPort<Spectrum> mIn;
00039 OutPort<Spectrum> mOut;
00040
00041 FloatInControl mBandwidthCtl;
00042 FloatInControl mGainCtl;
00043 FloatInControl mFreq;
00044
00045 public:
00046 const char* GetClassName() const
00047 {
00048 return "SpectralNotch";
00049 }
00050
00051 SpectralNotch()
00052 :
00053 mIn("In Spectrum", this),
00054 mOut("Out Spectrum", this),
00055 mBandwidthCtl("Bandwidth", this),
00056 mGainCtl("Gain", this),
00057 mFreq("Center Freq", this)
00058 {
00059 Configure( FrameTransformationConfig() );
00060 }
00061
00062 ~SpectralNotch() {}
00063
00064 virtual bool InitControls()
00065 {
00066 mAmount.DoControl(1000);
00067 mBandwidthCtl.DoControl(100);
00068 mGainCtl.DoControl(0);
00069
00070 return true;
00071 }
00072
00073 bool Do(const Frame& in, Frame& out)
00074 {
00075 return Do(in.GetSpectrum(),
00076 out.GetSpectrum());
00077 }
00078
00079 bool Do(const Spectrum& in, Spectrum& out);
00080
00081 bool Do()
00082 {
00083 bool result = Do(mIn.GetData(), mOut.GetData());
00084 mIn.Consume();
00085 mOut.Produce();
00086 return result;
00087 }
00088 };
00089 };
00090
00091 #endif // _SpectralNotch_