Skip to content

Commit

Permalink
Added yapp_decimate.
Browse files Browse the repository at this point in the history
  • Loading branch information
jayanthc committed Apr 1, 2017
1 parent 401e64d commit b18f3dd
Show file tree
Hide file tree
Showing 7 changed files with 1,408 additions and 41 deletions.
52 changes: 33 additions & 19 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,13 @@ ifeq ($(HDF5), yes)
LFLAGS_HDF5 = $(LFLAGS_HDF5_DIR) -lhdf5
endif
# in some cases, linking needs to be done with the X11 library, in which case
# append '-lX11' (and possibly the path to the library) to the line below.
# libgfortran may also be needed in some case, in which case append
# '-lgfortran' (and possibly the path to the library) to the line below
# append '-lX11' (and possibly the path to the library) to the line below, as
# shown in the commented out example. the commented example also shows other
# libraries that may be needed.
# libgfortran may also be needed in some cases, in which case append
# '-lgfortran' (and possibly the path to the library) to the line below.
LFLAGS_PGPLOT = $(LFLAGS_PGPLOT_DIR) -lcpgplot
#LFLAGS_PGPLOT = $(LFLAGS_PGPLOT_DIR) -lpgplot -lcpgplot -lX11 -lpng
LFLAGS_MATH = -lm

# directories
Expand Down Expand Up @@ -111,6 +114,8 @@ all: yapp_makever \
yapp_dedisperse \
yapp_smooth.o \
yapp_smooth \
yapp_decimate.o \
yapp_decimate \
yapp_filter.o \
yapp_filter \
yapp_fold.o \
Expand Down Expand Up @@ -151,7 +156,7 @@ yapp_common.o: $(SRCDIR)/yapp_common.c $(SRCDIR)/yapp.h
$(CC) $(CFLAGS_C) $(DDEBUG) $(DHDF5) $< -o $(IDIR)/$@

yapp_viewmetadata.o: $(SRCDIR)/yapp_viewmetadata.c $(SRCDIR)/yapp.h
$(CC) $(CFLAGS_C) $(DHDF5) $< -o $(IDIR)/$@
$(CC) $(CFLAGS_C) $(DDEBUG) $(DHDF5) $< -o $(IDIR)/$@

yapp_viewmetadata: $(IDIR)/yapp_viewmetadata.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o
Expand All @@ -161,7 +166,7 @@ colourmap.o: $(SRCDIR)/colourmap.c $(SRCDIR)/colourmap.h
$(CC) $(CFLAGS_C) $< -o $(IDIR)/$@

yapp_showinfo.o: $(SRCDIR)/yapp_showinfo.c $(SRCDIR)/yapp.h
$(CC) $(CFLAGS_C) $(DHDF5) $< -o $(IDIR)/$@
$(CC) $(CFLAGS_C) $(DDEBUG) $(DHDF5) $< -o $(IDIR)/$@

yapp_showinfo: $(IDIR)/yapp_showinfo.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o $(IDIR)/colourmap.o
Expand All @@ -176,15 +181,15 @@ yapp_viewdata: $(IDIR)/yapp_viewdata.o $(IDIR)/yapp_version.o \
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_ft.o: $(SRCDIR)/yapp_ft.c $(SRCDIR)/yapp.h
$(CC) $(CFLAGS_C) $(DDEBUG) $< -o $(IDIR)/$@
$(CC) $(CFLAGS_C) $(DDEBUG) $(DHDF5) $< -o $(IDIR)/$@

yapp_ft: $(IDIR)/yapp_ft.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_FFTW3) \
$(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_dedisperse.o: $(SRCDIR)/yapp_dedisperse.c $(SRCDIR)/yapp.h
$(CC) $(CFLAGS_C) $(DDEBUG) $(DFC) $(SRCDIR)/yapp_dedisperse.c \
$(CC) $(CFLAGS_C) $(DDEBUG) $(DHDF5) $(DFC) $(SRCDIR)/yapp_dedisperse.c \
-o $(IDIR)/$@

yapp_dedisperse: $(IDIR)/yapp_dedisperse.o
Expand All @@ -194,61 +199,69 @@ yapp_dedisperse: $(IDIR)/yapp_dedisperse.o

yapp_smooth.o: $(SRCDIR)/yapp_smooth.c $(SRCDIR)/yapp.h \
$(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) $(DDEBUG) $< -o $(IDIR)/$@
$(CC) $(CFLAGS_C) $(DDEBUG) $(DHDF5) $< -o $(IDIR)/$@

yapp_smooth: $(IDIR)/yapp_smooth.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_decimate.o: $(SRCDIR)/yapp_decimate.c $(SRCDIR)/yapp.h \
$(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) $(DDEBUG) $(DHDF5) $< -o $(IDIR)/$@

yapp_decimate: $(IDIR)/yapp_decimate.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_filter.o: $(SRCDIR)/yapp_filter.c $(SRCDIR)/yapp.h \
$(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) $(DDEBUG) $< -o $(IDIR)/$@
$(CC) $(CFLAGS_C) $(DDEBUG) $(DHDF5) $< -o $(IDIR)/$@

yapp_filter: $(IDIR)/yapp_filter.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_FFTW3) \
$(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_fold.o: $(SRCDIR)/yapp_fold.c $(SRCDIR)/yapp.h $(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) $(DDEBUG) $< -o $(IDIR)/$@
$(CC) $(CFLAGS_C) $(DDEBUG) $(DHDF5) $< -o $(IDIR)/$@

yapp_fold: $(IDIR)/yapp_fold.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o $(IDIR)/colourmap.o
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_add.o: $(SRCDIR)/yapp_add.c $(SRCDIR)/yapp.h $(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) $(DDEBUG) $< -o $(IDIR)/$@
$(CC) $(CFLAGS_C) $(DDEBUG) $(DHDF5) $< -o $(IDIR)/$@

yapp_add: $(IDIR)/yapp_add.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_subtract.o: $(SRCDIR)/yapp_subtract.c $(SRCDIR)/yapp.h $(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) $(DDEBUG) $< -o $(IDIR)/$@
$(CC) $(CFLAGS_C) $(DDEBUG) $(DHDF5) $< -o $(IDIR)/$@

yapp_subtract: $(IDIR)/yapp_subtract.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_fits2fil.o: $(UTILDIR)/yapp_fits2fil.c $(UTILDIR)/yapp_fits2fil.h \
$(SRCDIR)/yapp.h $(SRCDIR)/yapp_sigproc.h $(SRCDIR)/yapp_psrfits.h
$(CC) $(CFLAGS_C) -I$(SRCDIR) $(DDEBUG) $< -o $(UTILDIR)/$@
$(CC) $(CFLAGS_C) -I$(SRCDIR) $(DDEBUG) $(DHDF5) $< -o $(UTILDIR)/$@

yapp_fits2fil: $(UTILDIR)/yapp_fits2fil.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o
$(CC) $^ $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_dat2tim.o: $(UTILDIR)/yapp_dat2tim.c $(UTILDIR)/yapp_dat2tim.h \
$(SRCDIR)/yapp.h $(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) -I$(SRCDIR) $(DDEBUG) $< -o $(UTILDIR)/$@
$(CC) $(CFLAGS_C) -I$(SRCDIR) $(DDEBUG) $(DHDF5) $< -o $(UTILDIR)/$@

yapp_dat2tim: $(UTILDIR)/yapp_dat2tim.o $(SRCDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o
$(CC) $^ $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_tim2dat.o: $(UTILDIR)/yapp_tim2dat.c $(UTILDIR)/yapp_tim2dat.h \
$(SRCDIR)/yapp.h $(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) -I$(SRCDIR) $(DDEBUG) $< -o $(UTILDIR)/$@
$(CC) $(CFLAGS_C) -I$(SRCDIR) $(DDEBUG) $(DHDF5) $< -o $(UTILDIR)/$@

yapp_tim2dat: $(UTILDIR)/yapp_tim2dat.o $(SRCDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o
Expand All @@ -273,28 +286,28 @@ yapp_fil2h5:
endif

yapp_siftpulses.o: $(SRCDIR)/yapp_siftpulses.c $(SRCDIR)/yapp.h $(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) $(DDEBUG) $< -o $(IDIR)/$@
$(CC) $(CFLAGS_C) $(DDEBUG) $(DHDF5) $< -o $(IDIR)/$@

yapp_siftpulses: $(IDIR)/yapp_siftpulses.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_stacktim.o: $(SRCDIR)/yapp_stacktim.c $(SRCDIR)/yapp.h $(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) $(DDEBUG) $< -o $(IDIR)/$@
$(CC) $(CFLAGS_C) $(DDEBUG) $(DHDF5) $< -o $(IDIR)/$@

yapp_stacktim: $(IDIR)/yapp_stacktim.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o $(IDIR)/colourmap.o
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_split.o: $(SRCDIR)/yapp_split.c $(SRCDIR)/yapp.h $(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) $(DDEBUG) $< -o $(IDIR)/$@
$(CC) $(CFLAGS_C) $(DDEBUG) $(DHDF5) $< -o $(IDIR)/$@

yapp_split: $(IDIR)/yapp_split.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o $(IDIR)/colourmap.o
$(CC) $^ $(LFLAGS_PGPLOT) $(LFLAGS_MATH) $(LFLAGS_CFITSIO) $(LFLAGS_HDF5) -o $(BINDIR)/$@

yapp_ym2fil.o: $(UTILDIR)/yapp_ym2fil.c $(SRCDIR)/yapp.h $(SRCDIR)/yapp_sigproc.h
$(CC) $(CFLAGS_C) -I$(SRCDIR) $(DDEBUG) $< -o $(UTILDIR)/$@
$(CC) $(CFLAGS_C) -I$(SRCDIR) $(DDEBUG) $(DHDF5) $< -o $(UTILDIR)/$@

yapp_ym2fil: $(UTILDIR)/yapp_ym2fil.o $(IDIR)/yapp_version.o \
$(IDIR)/yapp_erflookup.o $(IDIR)/yapp_common.o $(IDIR)/colourmap.o
Expand Down Expand Up @@ -324,6 +337,7 @@ clean:
$(DELCMD) $(IDIR)/yapp_ft.o
$(DELCMD) $(IDIR)/yapp_dedisperse.o
$(DELCMD) $(IDIR)/yapp_smooth.o
$(DELCMD) $(IDIR)/yapp_decimate.o
$(DELCMD) $(IDIR)/yapp_filter.o
$(DELCMD) $(IDIR)/yapp_fold.o
$(DELCMD) $(IDIR)/yapp_add.o
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ The YAPP tools available with this release are:
* `yapp_stacktim` : Stacks time series data to form filterbank data.
* `yapp_split` : Splits time series data into time sections.
* `yapp_showinfo` : Displays supported file types and colourmaps.
* `yapp_decimate` : Decimate filterbank and time series data.

YAPP also comes with the following utilities:

Expand Down
40 changes: 40 additions & 0 deletions src/yapp.h
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,10 @@ enum tagFileFormats
#define YAPP_BYTE2BIT_FACTOR 8

#define INFIX_SMOOTH "smooth"
#define INFIX_DECIMATE "dec"
#define INFIX_DECIMATE_FREQ "f"
#define INFIX_DECIMATE_TIME "t"
#define INFIX_DECIMATE_BITS "b"
#define INFIX_SUB "sub"
#define INFIX_FILTER "filt"
#define INFIX_DEDISPERSE "dm"
Expand Down Expand Up @@ -626,6 +630,42 @@ int YAPP_CalcDelays(double dDM,
int** ppiOffsetTab,
int* piMaxOffset);

/**
* Decimate data
* @param[in] pfInBuf Input buffer
* @param[in] iBlockSize Number of samples in input buffer
* @param[in] iSampsPerWin Number of time samples in window
* @param[in] iNumChans Number of input channels
* @param[in] iChansPerWin Number of channels in window
* @param[out] pfOutBuf Output buffer
* @param[in] iOutNumChans Number of output channels
*/
void YAPP_Decimate(float *pfInBuf,
int iBlockSize,
int iSampsPerWin,
int iNumChans,
int iChansPerWin,
float *pfOutBuf,
int iOutNumChans);

void YAPP_Float2Nibble(float *pfBuf,
int iLen,
float fMin,
float fMax,
unsigned char *pcBuf);

void YAPP_Float2Byte(float *pfBuf,
int iLen,
float fMin,
float fMax,
unsigned char *pcBuf);

void YAPP_Float2Short(float *pfBuf,
int iLen,
float fMin,
float fMax,
short int *piBuf);

/**
* Smooth data
* @param[in] pfInBuf Input buffer
Expand Down
Loading

0 comments on commit b18f3dd

Please sign in to comment.