00001 /* 00002 libbpm - BPM signal processing/simulation library 00003 Copyright (C) 2006-07 Bino Maiheu (bino@hep.ucl.ac.uk) 00004 00005 This program is free software; you can redistribute it and/or modify 00006 it under the terms of the GNU General Public License as published by 00007 the Free Software Foundation; either version 2 of the License, or 00008 (at your option) any later version. 00009 00010 This program is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License 00016 along with this program; if not, write to the Free Software 00017 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00018 */ 00019 00034 #ifndef BPMRF_H__ 00035 #define BPMRF_H__ 00036 00037 /* ----------------------------------------------------------------------------- 00038 includes 00039 -------------------------------------------------------------------------- */ 00040 #include <math.h> 00041 #include <bpm/bpm_defs.h> 00042 #include <bpm/bpm_interface.h> 00043 #include <bpm/bpm_wf.h> 00044 00045 /* ----------------------------------------------------------------------------- 00046 macro definitions 00047 -------------------------------------------------------------------------- */ 00048 00049 /* ----------------------------------------------------------------------------- 00050 typedefs, enums and other declarations 00051 -------------------------------------------------------------------------- */ 00052 #ifdef __cplusplus 00053 extern "C" { 00054 #endif 00055 00056 /* ----------------------------------------------------------------------------- 00057 function prototypes and declarations 00058 -------------------------------------------------------------------------- */ 00063 EXTERN int rf_nsamples; 00064 00069 EXTERN double rf_samplefreq; 00070 00071 EXTERN int rf_setup( int nsamples, double sfreq ); 00072 00079 EXTERN int rf_rectify( doublewf_t *D, complexwf_t *RF ); 00080 00091 EXTERN int rf_addLO( double amp, double lofreq, enum bpmphase_t type, 00092 double phase, double phasenoise, doublewf_t *LO ); 00093 00102 EXTERN int rf_mixer( doublewf_t *RF_Re, doublewf_t *LO, doublewf_t *IF ); 00103 00111 EXTERN int rf_amplify( doublewf_t *RF, double dB ); 00112 00120 EXTERN int rf_amplify_complex( complexwf_t *RF, double dB ); 00121 00128 EXTERN int rf_phase_shifter( complexwf_t *RF, double rotation ); 00129 00130 #ifdef __cplusplus 00131 } 00132 #endif 00133 00134 #endif /* #ifndef BPMRF_H__ */ 00135 00136 /* ================================ end of file ============================= */