SpectralFocus.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 #ifndef _SpectralFocus_
00024 #define _SpectralFocus_
00025
00026 #include "SpectralEnvelopeExtract.hxx"
00027 #include "SpectralEnvelopeApply.hxx"
00028 #include "Frame.hxx"
00029 #include "InPort.hxx"
00030 #include "OutPort.hxx"
00031 #include "InControl.hxx"
00032 #include "FrameTransformation.hxx"
00033 #include "FrameTransformationConfig.hxx"
00034 #include "SegmentTransformationConfig.hxx"
00035 #include "Spectrum.hxx"
00036 #include "SpecTypeFlags.hxx"
00037
00038
00039 namespace CLAM{
00040
00045 class SpectralFocus: public FrameTransformationTmpl<Spectrum>
00046 {
00047
00048 const char *GetClassName() const {return "SpectralFocus";}
00049
00050 InPort<Spectrum> mIn;
00051 OutPort<Spectrum> mOut;
00052
00053 FloatInControl mCenterFreqCtl;
00054 FloatInControl mFocusAmount;
00055
00056 public:
00057
00058 SpectralFocus()
00059 :
00060 mIn("InSpectrum", this),
00061 mOut("OutSpectrum", this),
00062 mCenterFreqCtl("CenterFreq", this),
00063 mFocusAmount("Focus Amount", this)
00064 {
00065 Configure( SegmentTransformationConfig() );
00066 SpecTypeFlags flg;
00067 flg.bMagPhase = 1;
00068 flg.bMagPhaseBPF = 1;
00069 mBPFSpectrum.SetType(flg);
00070 mFlag.bMagPhase = 0;
00071 mFlag.bMagPhaseBPF = true;
00072 }
00073
00074 ~SpectralFocus() {}
00075
00076 virtual bool InitControls()
00077 {
00078 mCenterFreqCtl.DoControl(1000);
00079 mFocusAmount.DoControl(100);
00080
00081 return true;
00082 }
00083
00084 bool Do(const Frame& in, Frame& out)
00085 {
00086 return Do(in.GetSpectrum(),
00087 out.GetSpectrum());
00088 }
00089
00090 bool Do(const Spectrum& inpeaks,Spectrum& out);
00091
00092 bool Do()
00093 {
00094 bool result = Do(mIn.GetData(), mOut.GetData());
00095 mIn.Consume();
00096 mOut.Produce();
00097 return result;
00098 }
00099
00100 private:
00101 Spectrum mBPFSpectrum;
00102 SpecTypeFlags mFlag;
00103 };
00104 }
00105
00106 #endif // _SpectralFocus_
00107