diff options
Diffstat (limited to 'src/rtl_fm.c')
| -rw-r--r-- | src/rtl_fm.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/rtl_fm.c b/src/rtl_fm.c index 0350d8b..eb7190a 100644 --- a/src/rtl_fm.c +++ b/src/rtl_fm.c @@ -187,10 +187,10 @@ void build_fir(struct fm_state *fm) { int i, len; len = fm->downsample; - for(i = 0; i < len; i++) { + for(i = 0; i < (len/2); i++) { fm->fir[i] = i; } - for(i = len-1; i <= 0; i--) { + for(i = len-1; i >= (len/2); i--) { fm->fir[i] = len - i; } fm->fir_sum = 0; @@ -311,6 +311,8 @@ int mad(int *samples, int len, int step) /* mean average deviation */ { int i=0, sum=0, ave=0; + if (len == 0) + {return 0;} for (i=0; i<len; i+=step) { sum += samples[i]; } @@ -319,7 +321,7 @@ int mad(int *samples, int len, int step) for (i=0; i<len; i+=step) { sum += abs(samples[i] - ave); } - return sum / (len * step); + return sum / (len / step); } int post_squelch(struct fm_state *fm) |
