Filter improvement: LP and HP filters, added test function
The -3 dB level at cut-off frequency is now maintained for multiple iterations.
This commit is contained in:
@@ -48,7 +48,7 @@ void scrambler_init(void)
|
||||
|
||||
void scrambler_setup(scrambler_t *scrambler, int samplerate)
|
||||
{
|
||||
filter_lowpass_init(&scrambler->lp, CARRIER_HZ - FILTER_BELOW, samplerate);
|
||||
filter_lowpass_init(&scrambler->lp, CARRIER_HZ - FILTER_BELOW, samplerate, FILTER_TURNS);
|
||||
scrambler->carrier_phaseshift256 = 256.0 / ((double)samplerate / CARRIER_HZ);
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ void scrambler(scrambler_t *scrambler, int16_t *samples, int length)
|
||||
scrambler->carrier_phase256 = phase;
|
||||
|
||||
/* cut off carrier frequency and modulation above carrier frequency */
|
||||
filter_lowpass_process(&scrambler->lp, spl, length, FILTER_TURNS);
|
||||
filter_process(&scrambler->lp, spl, length);
|
||||
|
||||
for (i = 0; i < length; i++) {
|
||||
/* store result */
|
||||
|
@@ -1,9 +1,9 @@
|
||||
#include "../common/filter.h"
|
||||
|
||||
typedef struct scrambler {
|
||||
double carrier_phaseshift256; /* carrier phase shift per sample */
|
||||
double carrier_phase256; /* current phase of carrier frequency */
|
||||
filter_lowpass_t lp; /* filter to remove carrier frequency */
|
||||
double carrier_phaseshift256; /* carrier phase shift per sample */
|
||||
double carrier_phase256; /* current phase of carrier frequency */
|
||||
filter_t lp; /* filter to remove carrier frequency */
|
||||
} scrambler_t;
|
||||
|
||||
void scrambler_init(void);
|
||||
|
Reference in New Issue
Block a user