diff options
author | Andreas Eversberg <jolly@eversberg.eu> | 2017-01-15 11:08:42 +0100 |
---|---|---|
committer | Andreas Eversberg <jolly@eversberg.eu> | 2017-02-18 21:01:04 +0100 |
commit | ac0da3f76ee3f31599b0c572ed296b251e94378b (patch) | |
tree | a1e3bfe7bedd349db38c11487023a57e5da1dfe0 /src/common/samplerate.c | |
parent | 799b96c801567c1cd0c6a1281511bca90eeac1db (diff) |
Filter improvement: LP and HP filters, added test function
The -3 dB level at cut-off frequency is now maintained for multiple
iterations.
Diffstat (limited to 'src/common/samplerate.c')
-rw-r--r-- | src/common/samplerate.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/common/samplerate.c b/src/common/samplerate.c index 8113055..f554cf0 100644 --- a/src/common/samplerate.c +++ b/src/common/samplerate.c @@ -37,8 +37,8 @@ int init_samplerate(samplerate_t *state, double samplerate) memset(state, 0, sizeof(*state)); state->factor = samplerate / 8000.0; - filter_lowpass_init(&state->up.lp, 4000.0, samplerate); - filter_lowpass_init(&state->down.lp, 4000.0, samplerate); + filter_lowpass_init(&state->up.lp, 4000.0, samplerate, 1); + filter_lowpass_init(&state->down.lp, 4000.0, samplerate, 1); return 0; } @@ -56,7 +56,7 @@ int samplerate_downsample(samplerate_t *state, int16_t *input, int input_num, in spl[i] = *input++ / 32768.0; /* filter down */ - filter_lowpass_process(&state->down.lp, spl, input_num, 1); + filter_process(&state->down.lp, spl, input_num); /* resample filtered result */ in_index = state->down.in_index; @@ -125,7 +125,7 @@ int samplerate_upsample(samplerate_t *state, int16_t *input, int input_num, int1 state->up.in_index = in_index; /* filter up */ - filter_lowpass_process(&state->up.lp, spl, output_num, 1); + filter_process(&state->up.lp, spl, output_num); /* convert double to samples */ for (i = 0; i < output_num; i++) { |