diff --git a/modulation/stereo_encoder.c b/modulation/stereo_encoder.c index c7f5740..6289ad6 100644 --- a/modulation/stereo_encoder.c +++ b/modulation/stereo_encoder.c @@ -28,7 +28,7 @@ void init_stereo_encoder(StereoEncoder* st, uint8_t multiplier, Oscillator* osc, st->pilot_volume = pilot_volume; st->audio_volume = audio_volume; #ifdef STEREO_SSB - init_delay_line(&st->delay, 15); // 7*2+1 + init_delay_line(&st->delay, STEREO_SSB*2+1); #endif } @@ -55,7 +55,7 @@ float stereo_encode(StereoEncoder* st, uint8_t enabled, float left, float right) float signalx2 = get_oscillator_sin_multiplier_ni(st->osc, st->multiplier * 2.0f); #ifdef STEREO_SSB - float stereo = (crealf(stereo_hilbert) * signalx2cos) - (cimagf(stereo_hilbert) * signalx2); + float stereo = (crealf(stereo_hilbert) * signalx2cos) + (cimagf(stereo_hilbert) * signalx2); return (mid*half_audio) + (signalx1*st->pilot_volume) + (stereo * half_audio); #else return (mid*half_audio) + (signalx1*st->pilot_volume) + ((side*signalx2) * half_audio); diff --git a/modulation/stereo_encoder.h b/modulation/stereo_encoder.h index 04564c5..83e1916 100644 --- a/modulation/stereo_encoder.h +++ b/modulation/stereo_encoder.h @@ -1,6 +1,6 @@ #pragma once -#define STEREO_SSB +#define STEREO_SSB 12 #include #include "../dsp/oscillator.h" diff --git a/src/fm95.c b/src/fm95.c index 4a47f77..70721d5 100644 --- a/src/fm95.c +++ b/src/fm95.c @@ -493,7 +493,7 @@ void init_runtime(FM95_Runtime* runtime, const FM95_Config config) { } #ifdef STEREO_SSB - runtime->stereo_hilbert = firhilbf_create(7, 60); + runtime->stereo_hilbert = firhilbf_create(STEREO_SSB, 80); #endif if(config.preemphasis != 0) {