// file: csnr_cal_3.cc // // this function hamming windows the signal // // system include file // #include // local include file // #include "global_constants.h" #include "calculate_snr_constants.h" #include "calculate_snr.h" // function: hamming_window_signal_cc // // arguments: // float* hamming_window_signal_a: (output) hamming signal // float* signal_window_a: (input) buffer contain the signal to // be pre-emphasized // int samples_per_win_a: (input) number of samples per window // int num_chans_a: (input) number of channels // int debug_mode_a: (input) debug level // // return: an int to indicate status // // this function hamming windows the signal using // // int hamming_window_signal_cc (float*& hamming_window_signal_a, float* signal_window_a, int samples_per_win_a, int num_chans_a, int debug_mode_a) { int num_samples = samples_per_win_a * num_chans_a; for (int j = 0; j < num_chans_a; j++) { for (int i = j; i < num_samples; i += num_chans_a) { hamming_window_signal_a[i] = signal_window_a[i] * ( 0.54 - 0.46 * cos( 2 * 3.14 * (float)(i / num_chans_a) / (samples_per_win_a - 1) ) ); } } if (debug_mode_a > DEBUG_FULL) { for (int j = 0; j < num_chans_a; j++) { for (int i = j; i < num_samples; i += num_chans_a) { fprintf(stdout, "chan %d :: hamming windowed signal [%d] = %.2f\n", j, i, hamming_window_signal_a[i]); } } fprintf(stdout, "\n"); } // exit gracefully // return TRUE; }