You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.5 KiB
54 lines
1.5 KiB
#include <stdio.h> |
|
#include <stdlib.h> |
|
#include <string.h> |
|
#include <time.h> |
|
#include <sys/time.h> |
|
#include <sys/resource.h> |
|
#include "fec.h" |
|
|
|
int main(){ |
|
unsigned char block[255]; |
|
int i; |
|
void *rs; |
|
struct rusage start,finish; |
|
double extime; |
|
int trials = 10000; |
|
|
|
for(i=0;i<223;i++) |
|
block[i] = 0x01; |
|
|
|
rs = init_rs_char(8,0x187,112,11,32,0); |
|
encode_rs_char(rs,block,&block[223]); |
|
|
|
getrusage(RUSAGE_SELF,&start); |
|
for(i=0;i<trials;i++){ |
|
#if 0 |
|
block[0] ^= 0xff; /* Introduce an error */ |
|
block[2] ^= 0xff; /* Introduce an error */ |
|
#endif |
|
decode_rs_char(rs,block,NULL,0); |
|
} |
|
getrusage(RUSAGE_SELF,&finish); |
|
extime = finish.ru_utime.tv_sec - start.ru_utime.tv_sec + 1e-6*(finish.ru_utime.tv_usec - start.ru_utime.tv_usec); |
|
|
|
printf("Execution time for %d Reed-Solomon blocks using general decoder: %.2f sec\n",trials,extime); |
|
printf("decoder speed: %g bits/s\n",trials*223*8/extime); |
|
|
|
|
|
encode_rs_8(block,&block[223],0); |
|
getrusage(RUSAGE_SELF,&start); |
|
for(i=0;i<trials;i++){ |
|
#if 0 |
|
block[0] ^= 0xff; /* Introduce an error */ |
|
block[2] ^= 0xff; /* Introduce an error */ |
|
#endif |
|
decode_rs_8(block,NULL,0,0); |
|
} |
|
getrusage(RUSAGE_SELF,&finish); |
|
extime = finish.ru_utime.tv_sec - start.ru_utime.tv_sec + 1e-6*(finish.ru_utime.tv_usec - start.ru_utime.tv_usec); |
|
printf("Execution time for %d Reed-Solomon blocks using CCSDS decoder: %.2f sec\n",trials,extime); |
|
printf("decoder speed: %g bits/s\n",trials*223*8/extime); |
|
|
|
exit(0); |
|
} |
|
|
|
|