1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 <2010> 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 <2010> 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Using spectrumRecord of the waveProc module |
From: | "Condamoor, Shantha" <[email protected]> |
To: | "[email protected]" <[email protected]> |
Date: | Fri, 13 Aug 2010 10:41:04 -0700 |
Hi, I am using the EPICS 'waveProc1-0' module for wave
analysis and FFT calculations for an RF digitizer. Of the three features offered in this module, I am using: dbd/waveAnlRecord.dbd (for calculation of
min, max, standard deviation etc. of the raw waveform) dbd/spectrumRecord.dbd (for fft processing) I based my db on the sample waTest.db provided in the
waTestApp in the waveProc module for waveAnlRecord and created a
spectrumRecord.db guided by spectrumRecord.dbd records. I added epicsDSP.h, epicsFFT.cpp and epicsTemplateFFT.h
to my src dir from the waveProc's waveProc head/src/spectrumRecord/src and
included epicsFFT.cpp in my Makefile such that the epicsShareFunc
epicsOneDimFFT will be available to my app for fft processing. The ioc startup script loads both the databases for
processing the waveAnl record 'wa' and spectrumRecord.db for processing
spectrum record 'spec'. The INP field of 'wa' and INPW field of 'spec' is linked
to the digitizer's raw waveform value which is an array of 4096 samples. I am unsure how to have the spectrum record processing
trigger the epicsOneDimFFT processing. I set the 'spec' field SNAM to this function. When the digitizer is armed and triggered, I can see the
waveform's raw values and plot the graph of the signal: I triggered the record processing of the 'wa' record, and
can see the min, max and other values for my raw waveform correctly being
updated correctly. I trigger the record processing of the 'spec' record and
expect to see some nice fft results but all I see is 0's expect for the first
element which shows 1.02009e-300 Similar results for other spectrum fields. Question: Is the fft record processing happening on the
raw waveform data? Is the epicsShareFunc being invoked for the spec record
processing? If so, how do I do that? A sample application showing the
use of the waveProc module's SpectrumRecord (just like the waveTestApp provided
in that package) will be much useful. Any help on understanding this would be much helpful as I
have not used epics templates or the waveProc module before. I can provide more details on my hardware or EPICS setup
if needed. Thanks, Shantha |