power_spectrum.c
上传用户:bossps2lzz
上传日期:2022-07-07
资源大小:522k
文件大小:2k
源码类别:

DSP编程

开发平台:

C/C++

  1. /*****************************************************************************
  2.  *
  3.  *
  4.  *
  5.  *
  6.  * 
  7.  * power_spectrum.c 
  8.  *
  9.  *
  10.  *
  11.  * This program will compute the power in a given signal.
  12.  *
  13.  * The input will be the address of the structure that 
  14.  * has the data after applying FFT.
  15.  *
  16.  * The power will be a real quantity and will be stored
  17.  * in the real part of the complex number.
  18.  * data.real = ((data.real)*(data.real)) + ((data.imag)*(data.imag))
  19.  *
  20.  *
  21.  *
  22.  * Written by Vasanthan Rangan and Sowmya Narayanan
  23.  *
  24.  *
  25.  *
  26.  *
  27.  *****************************************************************************/
  28. #define column_length 256 /* Define the Column Length */
  29. #define row_length 100 /* Define Row Length */
  30. struct complex { /* Generic Structure to define real and imaginary part
  31.   * of the signal */
  32. float real;
  33. float imag;
  34. };
  35. struct buffer {
  36. struct complex data[row_length][column_length];
  37. }; /* Structre to store the input data */
  38. /* Function to compute the power spectrum of the input signal */
  39. power_spectrum(struct buffer *input_data) {
  40. int i,j; /* Variables used as counters */
  41. for (i=0; i<row_length; i++) { /* For all the Frames */
  42. for ( j=0; j < column_length; j++) { /* For all the samples in one Frame */
  43. /* Compute Power (real)^2 + (imaginary)^2 */
  44. input_data->data[i][j].real = ((input_data->data[i][j].real)*(input_data->data[i][j].real))+ ((input_data->data[i][j].imag)*(input_data->data[i][j].imag));
  45. }
  46. }
  47. return; /* Return back to Main Function */
  48. }