00001
00006 #include <math.h>
00007 #include <bpm/bpm_messages.h>
00008 #include <bpm/bpm_process.h>
00009
00021 int downmix_waveform( double *wf, int ns, double fs, double freq, double t0, double **out ) {
00022
00023
00024 int i;
00025 double ti, ped, rms;
00026
00027 if ( ! wf || ! out ) {
00028 bpm_error( "Invalid pointer arguments in downmix_waveform(...)",
00029 __FILE__, __LINE__ );
00030 return BPM_FAILURE;
00031 }
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041 for ( i=0; i<ns; i++ ) {
00042
00043
00044
00045
00046
00047
00048 out[i][Re] = wf[i] * cos( 2. * PI * freq * i / fs );
00049 out[i][Im] = wf[i] * sin( 2. * PI * freq * i / fs );
00050 }
00051
00052 return BPM_SUCCESS;
00053 }