From 2a03208e438b92c2484214f71dba24b64e44e9dd Mon Sep 17 00:00:00 2001 From: ha7ilm Date: Sat, 4 Mar 2017 19:50:11 +0100 Subject: [PATCH] timing_recovery_cc: a better graph --- csdr.c | 1 + libcsdr.c | 45 +++++++++++++++++++++++++++++++-------------- libcsdr.h | 3 ++- 3 files changed, 34 insertions(+), 15 deletions(-) diff --git a/csdr.c b/csdr.c index ce14a5b..2ad9773 100644 --- a/csdr.c +++ b/csdr.c @@ -2376,6 +2376,7 @@ int main(int argc, char *argv[]) timing_recovery_state_t state = timing_recovery_init(algorithm, decimation, add_q); int debug_i=0; + state.debug_force = !!debug_n; //should remove that later FREAD_C; for(;;) { diff --git a/libcsdr.c b/libcsdr.c index a3aa435..d31a9c0 100644 --- a/libcsdr.c +++ b/libcsdr.c @@ -1644,24 +1644,40 @@ void pll_cc(pll_t* p, complexf* input, float* output_dphase, complexf* output_nc } } -void octave_plot_point_on_cplxsig(complexf* signal, int signal_size, int points_size, ...) +void octave_plot_point_on_cplxsig(complexf* signal, int signal_size, float error, int points_size, ...) { - fprintf(stderr, "N = %d;\nisig = [", signal_size); - for(int i=0;idebug_phase >= si && debug_i) + if( state->debug_force || (state->debug_phase >= si && debug_i) ) { debug_i--; if(!debug_i) state->debug_phase = -1; - octave_plot_point_on_cplxsig(input+current_bitstart_index, state->decimation_rate*2, + octave_plot_point_on_cplxsig(input+current_bitstart_index, state->decimation_rate*2, error, 3, num_samples_halfbit * 1, 'r', num_samples_halfbit * 2, 'r', @@ -1753,7 +1770,7 @@ void timing_recovery_cc(complexf* input, complexf* output, int input_size, timin if(state->debug_phase == si) { state->debug_phase = -1; - octave_plot_point_on_cplxsig(input+current_bitstart_index, state->decimation_rate*2, + octave_plot_point_on_cplxsig(input+current_bitstart_index, state->decimation_rate*2, error, num_samples_quarterbit * 1, 'r', num_samples_quarterbit * 2, 'r', num_samples_quarterbit * 3, 'r', diff --git a/libcsdr.h b/libcsdr.h index 9501c21..28427cb 100644 --- a/libcsdr.h +++ b/libcsdr.h @@ -305,6 +305,7 @@ typedef struct timing_recovery_state_s int use_q; //use both I and Q for calculating the error int debug_phase; int debug_count; + int debug_force; } timing_recovery_state_t; timing_recovery_state_t timing_recovery_init(timing_recovery_algorithm_t algorithm, int decimation_rate, int use_q); @@ -312,4 +313,4 @@ void timing_recovery_cc(complexf* input, complexf* output, int input_length, tim timing_recovery_algorithm_t timing_recovery_get_algorithm_from_string(char* input); char* timing_recovery_get_string_from_algorithm(timing_recovery_algorithm_t algorithm); void timing_recovery_trigger_debug(timing_recovery_state_t* state, int debug_phase); -void octave_plot_point_on_cplxsig(complexf* signal, int signal_size, int points_size, ...); +void octave_plot_point_on_cplxsig(complexf* signal, int signal_size, float error, int points_size, ...);