Doxygen Source Code Documentation
plug_fourier.c File Reference
#include "afni.h"
#include "fourier_filter.c"
Go to the source code of this file.
Defines | |
#define | IN_FOURIER_PLUGIN |
Functions | |
char * | Fourier_Main (PLUGIN_interface *) |
void | fourier_1D (int num, double to, double dt, float *vec) |
DEFINE_PLUGIN_PROTOTYPE PLUGIN_interface * | PLUGIN_init (int ncall) |
Variables | |
char | helpstring [] |
float | low_fc |
float | high_fc |
char * | output_prefix |
int | autocorr |
int | retrend |
int | ignore |
MCW_idcode * | idc |
Define Documentation
|
Definition at line 61 of file plug_fourier.c. |
Function Documentation
|
Definition at line 68 of file plug_fourier.c. References dt, filter(), high_fc, ignore, low_fc, and vec. Referenced by PLUGIN_init().
|
|
Definition at line 139 of file plug_fourier.c. References autocorr, Fourier_Filter_Driver(), high_fc, ignore, low_fc, output_prefix, PLUTO_find_dset(), PLUTO_prefix_ok(), and retrend. Referenced by PLUGIN_init().
00140 { 00141 THD_3dim_dataset *input ; 00142 char *tag; 00143 00144 00145 /* New call, so reinitialize variables */ 00146 low_fc=0; high_fc = 0; autocorr=FALSE; retrend=FALSE; output_prefix=NULL, idc=NULL; 00147 00148 /*--------------------------------------------------------------------*/ 00149 /*----- Check inputs from AFNI to see if they are reasonable-ish -----*/ 00150 00151 if( plint == NULL ) 00152 return "*************************\n" 00153 "Fourier_Main: NULL input\n" 00154 "*************************" ; 00155 00156 00157 tag = PLUTO_get_optiontag(plint) ; 00158 while( tag != NULL ){ 00159 00160 if (strcmp(tag, "Input") == 0 ) { 00161 idc = PLUTO_get_idcode(plint) ; 00162 input = PLUTO_find_dset(idc) ; 00163 if( input == NULL ) 00164 return "********************************\n" 00165 "Fourier_Main: bad input dataset\n" 00166 "********************************" ; 00167 } 00168 00169 else if (strcmp(tag, "Preprocess") == 0) { 00170 ignore = PLUTO_get_number(plint); 00171 retrend = strcmp(PLUTO_get_string(plint), "No"); 00172 } 00173 00174 else if( strcmp(tag,"Output") == 0 ){ 00175 output_prefix = PLUTO_get_string(plint) ; 00176 if( ! PLUTO_prefix_ok(output_prefix) ) 00177 return "*************************\n" 00178 "Fourier_Main: bad prefix\n" 00179 "*************************" ; 00180 } 00181 00182 else if( strcmp(tag,"Lowpass") == 0 ){ 00183 low_fc = PLUTO_get_number(plint); 00184 } 00185 00186 else if( strcmp(tag,"Highpass") == 0 ){ 00187 high_fc = PLUTO_get_number(plint); 00188 } 00189 00190 else if( strcmp(tag,"Autocorrelate") == 0 ){ 00191 autocorr=TRUE; 00192 } 00193 00194 tag = PLUTO_get_optiontag(plint) ; 00195 } 00196 00197 /*------------------------------------------------------*/ 00198 /*---------- At this point, the inputs are OK ----------*/ 00199 00200 if ((output_prefix == NULL) || (idc == NULL)) /* must be setting up for 1D transform */ 00201 return NULL ; 00202 else 00203 return Fourier_Filter_Driver(plint, input, low_fc, high_fc, ignore, autocorr, retrend, output_prefix); 00204 } |
|
Definition at line 80 of file plug_fourier.c. References ANAT_ALL_MASK, autocorr, fourier_1D(), Fourier_Main(), FUNC_ALL_MASK, helpstring, high_fc, ignore, low_fc, output_prefix, PLUTO_add_hint(), PLUTO_register_1D_function, PLUTO_set_sequence(), retrend, and yn.
00081 { 00082 PLUGIN_interface * plint ; 00083 static char *yn[2] = {"No", "Yes"}; 00084 00085 if( ncall > 0 ) return NULL ; /* only one interface */ 00086 00087 /*-- set titles and call point --*/ 00088 00089 /* Initialize variables so we can be a 1D transformer*/ 00090 low_fc=0; high_fc = 0; ignore=1; autocorr=FALSE; retrend=FALSE; output_prefix=NULL; idc=NULL; 00091 PLUTO_register_1D_function( "Fourier", fourier_1D ); 00092 00093 00094 plint = PLUTO_new_interface( "Fourier Stuff" , "Filtering, autocorrelation and other stuff done with FFTs" , helpstring , 00095 PLUGIN_CALL_VIA_MENU , Fourier_Main ) ; 00096 00097 PLUTO_add_hint( plint , "Filtering, autocorrelation and other stuff done with FFTs" ) ; 00098 00099 PLUTO_set_sequence( plint , "z:Ross" ) ; 00100 /*-- first line of input: Dataset --*/ 00101 00102 PLUTO_add_option( plint , "Input" , "Input" , FALSE ) ; 00103 PLUTO_add_dataset(plint , "Dataset" , 00104 ANAT_ALL_MASK , FUNC_ALL_MASK , 00105 DIMEN_4D_MASK | BRICK_ALLREAL_MASK ) ; 00106 00107 /*-- second line of input: Prefix for output dataset --*/ 00108 00109 PLUTO_add_option( plint , "Output" , "Output" , FALSE ) ; 00110 PLUTO_add_string( plint , "Prefix" , 0, NULL , 19 ) ; 00111 00112 /*-- third line of input: Preprocessing --*/ 00113 00114 PLUTO_add_option( plint , "Preprocess" , "Preprocess" , TRUE ) ; 00115 PLUTO_add_number( plint , "Ignore" , 0, 10, 0, 1 , FALSE) ; 00116 PLUTO_add_string( plint, "Re-trend", 2, yn, 0); 00117 00118 /*-- fourth line of input: Lowpass option --*/ 00119 00120 PLUTO_add_option( plint , "Lowpass" , "Lowpass" , FALSE ) ; 00121 PLUTO_add_number( plint , "Fc" , 0, 5000, 3, 0 , TRUE) ; 00122 00123 /*-- fifth line of input: Highass option --*/ 00124 00125 PLUTO_add_option( plint , "Highpass" , "Highpass" , FALSE ) ; 00126 PLUTO_add_number( plint , "Fc" , 0, 5000, 3, 0 , TRUE) ; 00127 00128 /*-- sixt line of input: Autocorrelation option --*/ 00129 /* 00130 PLUTO_add_option( plint , "Autocorrelate" , "Autocorrelate" , FALSE ) ; 00131 */ 00132 return plint ; 00133 } |
Variable Documentation
|
Definition at line 54 of file plug_fourier.c. Referenced by Fourier_Main(), and PLUGIN_init(). |
|
Initial value: " Purpose: Do some common FFT manipulations of 3d+time data\n" " Inputs:\n" " Dataset = A 3d+time dataset in memory.\n" " Outputs:\n" " Prefix = Filename prefix to be usedfor the output dataset.\n" " Parameters:\n" " Preprocess: Data manipulations before/after filtering\n" " Ignore: ignore the first n datapoints. After filtering\n" " these points are set to the value of the n+1th point\n" " such that the timeseries is the same length\n" " A linear trend is removed before any filtering is performed.\n" " Setting retrend to 'Yes' restores this trend after filtering\n" " This is always yes for the 1D transform version\n" " Lowpass: Perform a low pass filtering of the data.\n" " Fc is the frequency cutoff (in Hz). Note that this is\n" " typically a very small number.\n" " Highpass: Perform a high pass filtering of the data.\n" " Fc is the frequency cutoff (in Hz). Note that this is\n" " typically a very small number.\n\n" " With appropriate combination of lowpass and highpass, a\n" " bandpass (f_high < f_low) or notch (f_high > f_low)\n" " filter can be made.\n" " Note that if multiple operations are chosen, they are performed\n" " in the order listed.\n\n" " IMPORTANT: This plugin also sets the parameters for the 1D \n" " transform named Fourier. Thus, it is not necessary to have\n" " an input and output.\n\n" " BY- T. Ross and K. Heimerl 8/99\n" Definition at line 18 of file plug_fourier.c. Referenced by PLUGIN_init(). |
|
Definition at line 52 of file plug_fourier.c. Referenced by fourier_1D(), Fourier_Main(), and PLUGIN_init(). |
|
Definition at line 55 of file plug_fourier.c. |
|
Definition at line 54 of file plug_fourier.c. Referenced by fourier_1D(), Fourier_Main(), and PLUGIN_init(). |
|
Definition at line 52 of file plug_fourier.c. Referenced by fourier_1D(), Fourier_Main(), and PLUGIN_init(). |
|
Definition at line 53 of file plug_fourier.c. Referenced by Fourier_Main(), and PLUGIN_init(). |
|
Definition at line 54 of file plug_fourier.c. Referenced by Fourier_Main(), and PLUGIN_init(). |