// file: csnr_cal_4.cc // // this function calculates the energy of the signal // // system include file // #include // local include file // #include "global_constants.h" #include "calculate_snr_constants.h" #include "calculate_snr.h" // function: calculate_energy_cc // // arguments: // float* energy_signal_a: (output) energy of a 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 calculates the energy of a signal // // int calculate_energy_cc (float*& energy_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++) { energy_signal_a[j] = 0; for (int i = j; i < num_samples; i += num_chans_a) { energy_signal_a[j] += signal_window_a[i] * signal_window_a[i]; } energy_signal_a[j] /= samples_per_win_a; } // exit gracefully // return TRUE; }