@@ -1299,6 +1299,44 @@ int main(int argc, char *argv[])
12991299 }
13001300 }
13011301
1302+ if (!strcmp (argv [1 ],"logaveragepower_cf" ))
1303+ {
1304+ bigbufs = 1 ;
1305+ if (argc <=4 ) return badsyntax ("need required parameters (add_db, table_size, avgnumber)" );
1306+ float add_db = 0 ;
1307+ int avgnumber = 0 ;
1308+ int fft_size = 0 ;
1309+
1310+ sscanf (argv [2 ],"%g" ,& add_db );
1311+ sscanf (argv [3 ],"%d" ,& fft_size );
1312+ sscanf (argv [4 ],"%d" ,& avgnumber );
1313+
1314+ if (!getbufsize ()) return -2 ; //dummy
1315+ if (!sendbufsize (initialize_buffers ())) return -2 ;
1316+
1317+ if (fft_size != the_bufsize ) return -2 ;
1318+
1319+ //fprintf(stderr, "logaveragepower_cf %f %d=%d %d\n", add_db, fft_size, the_bufsize, avgnumber);
1320+ add_db -= 10 * log10 (avgnumber );
1321+ for (;;)
1322+ {
1323+ int i ,n ;
1324+ for (i = 0 ; i < the_bufsize ; i ++ ) {
1325+ output_buffer [i ] = 0 ;
1326+ }
1327+ FEOF_CHECK ;
1328+ for (n = 0 ; n < avgnumber ; n ++ ) {
1329+ FREAD_C ;
1330+ //fprintf(stderr, "averaged %d\n", n);
1331+ accumulate_power_cf ((complexf * )input_buffer , output_buffer , the_bufsize );
1332+ }
1333+ log_ff (NULL , output_buffer , the_bufsize , add_db );
1334+ FWRITE_R ;
1335+ TRY_YIELD ;
1336+ }
1337+ return 0 ;
1338+ }
1339+
13021340 if (!strcmp (argv [1 ],"fft_exchange_sides_ff" ))
13031341 {
13041342 if (argc <=2 ) return badsyntax ("need required parameters (fft_size)" );
0 commit comments