diff options
author | ymherklotz <ymherklotz@gmail.com> | 2018-03-08 12:41:10 +0000 |
---|---|---|
committer | ymherklotz <ymherklotz@gmail.com> | 2018-03-08 12:41:10 +0000 |
commit | eb65717dbacac3fee92c765c434bfaa0d1eb61d7 (patch) | |
tree | 63e65068e4dd168d171bf9cf42d2d09a945c35fb /Project/RTDSP/enhance.c | |
parent | 3d0c2bcb8a8540f266097a0c5f9cf45b6db77e2f (diff) | |
download | NoiseSilencer-eb65717dbacac3fee92c765c434bfaa0d1eb61d7.tar.gz NoiseSilencer-eb65717dbacac3fee92c765c434bfaa0d1eb61d7.zip |
Fixed small issue with resetting
Diffstat (limited to 'Project/RTDSP/enhance.c')
-rw-r--r-- | Project/RTDSP/enhance.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/Project/RTDSP/enhance.c b/Project/RTDSP/enhance.c index 3aae46a..7094773 100644 --- a/Project/RTDSP/enhance.c +++ b/Project/RTDSP/enhance.c @@ -105,6 +105,7 @@ double avg = 0; MVal M[NUM_M]; float K; float time_constant = 50E-6; /* Time constant in ms */ +int started = 0; /******************************* Function prototypes *******************************/ void init_hardware(void); /* Initialize codec */ void init_HWI(void); /* Initialize hardware interrupts */ @@ -149,7 +150,7 @@ void main() for(i = 0; i < FFTLEN; ++i) { M[k].mag_spec[i] = MAX_FLOAT; } - M[k].sum = 0; + M[k].sum = MAX_FLOAT; } // initializing the value to estimate the low pass filter @@ -203,7 +204,7 @@ void write_spectrum(void) { M[m_ptr].sum = 0; for(k = 0; k < FFTLEN; ++k) { x_val = cabs(fft_out[k]); - if(M[m_ptr].mag_spec[k] > x_val) { + if(x_val < M[m_ptr].mag_spec[k] && x_val != 0) { M[m_ptr].mag_spec[k] = x_val; M[m_ptr].sum += x_val; } else { @@ -217,7 +218,7 @@ void get_noise(void) { int min_index = 0, k; for(k = 1; k < NUM_M; ++k) { - if (M[k].sum != 0 && M[k].sum < min_sum) { + if (M[k].sum < min_sum) { min_sum = M[k].sum; min_index = k; } @@ -332,6 +333,7 @@ void ISR_AIC(void) if (++io_ptr >= CIRCBUF) io_ptr=0; frame_ctr++; + started = 1; } /************************************************************************************/ |