The costas loop seems to at least work

This commit is contained in:
ha7ilm 2017-04-01 16:08:49 +02:00
parent ca40a41d5a
commit c7137dc68e
2 changed files with 23 additions and 23 deletions

View file

@ -517,7 +517,7 @@
</param> </param>
<param> <param>
<key>_coordinate</key> <key>_coordinate</key>
<value>(824, 427)</value> <value>(976, 379)</value>
</param> </param>
<param> <param>
<key>_rotation</key> <key>_rotation</key>
@ -536,7 +536,7 @@
</param> </param>
<param> <param>
<key>commandline</key> <key>commandline</key>
<value>csdr bpsk_costas_loop_cc 8</value> <value>csdr bpsk_costas_loop_cc 16</value>
</param> </param>
<param> <param>
<key>comment</key> <key>comment</key>
@ -552,7 +552,7 @@
</param> </param>
<param> <param>
<key>_coordinate</key> <key>_coordinate</key>
<value>(120, 523)</value> <value>(128, 411)</value>
</param> </param>
<param> <param>
<key>_rotation</key> <key>_rotation</key>
@ -595,11 +595,11 @@
</param> </param>
<param> <param>
<key>_enabled</key> <key>_enabled</key>
<value>1</value> <value>0</value>
</param> </param>
<param> <param>
<key>_coordinate</key> <key>_coordinate</key>
<value>(112, 403)</value> <value>(432, 411)</value>
</param> </param>
<param> <param>
<key>_rotation</key> <key>_rotation</key>
@ -745,11 +745,11 @@
</param> </param>
<param> <param>
<key>_enabled</key> <key>_enabled</key>
<value>1</value> <value>0</value>
</param> </param>
<param> <param>
<key>_coordinate</key> <key>_coordinate</key>
<value>(544, 371)</value> <value>(824, 507)</value>
</param> </param>
<param> <param>
<key>_rotation</key> <key>_rotation</key>
@ -836,7 +836,7 @@
</param> </param>
<param> <param>
<key>_coordinate</key> <key>_coordinate</key>
<value>(536, 523)</value> <value>(432, 507)</value>
</param> </param>
<param> <param>
<key>_rotation</key> <key>_rotation</key>
@ -1016,12 +1016,6 @@
<source_key>0</source_key> <source_key>0</source_key>
<sink_key>0</sink_key> <sink_key>0</sink_key>
</connection> </connection>
<connection>
<source_block_id>blocks_throttle_0</source_block_id>
<sink_block_id>wxgui_scopesink2_0_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection> <connection>
<source_block_id>digital_psk_mod_0</source_block_id> <source_block_id>digital_psk_mod_0</source_block_id>
<sink_block_id>blocks_throttle_0</sink_block_id> <sink_block_id>blocks_throttle_0</sink_block_id>
@ -1036,7 +1030,7 @@
</connection> </connection>
<connection> <connection>
<source_block_id>freq_xlating_fir_filter_xxx_0</source_block_id> <source_block_id>freq_xlating_fir_filter_xxx_0</source_block_id>
<sink_block_id>ha5kfu_execproc_xx_0_0</sink_block_id> <sink_block_id>ha5kfu_execproc_xx_0</sink_block_id>
<source_key>0</source_key> <source_key>0</source_key>
<sink_key>0</sink_key> <sink_key>0</sink_key>
</connection> </connection>
@ -1046,18 +1040,24 @@
<source_key>0</source_key> <source_key>0</source_key>
<sink_key>0</sink_key> <sink_key>0</sink_key>
</connection> </connection>
<connection>
<source_block_id>freq_xlating_fir_filter_xxx_0</source_block_id>
<sink_block_id>wxgui_scopesink2_0_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>ha5kfu_execproc_xx_0</source_block_id>
<sink_block_id>ha5kfu_execproc_xx_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection> <connection>
<source_block_id>ha5kfu_execproc_xx_0</source_block_id> <source_block_id>ha5kfu_execproc_xx_0</source_block_id>
<sink_block_id>wxgui_scopesink2_0_0</sink_block_id> <sink_block_id>wxgui_scopesink2_0_0</sink_block_id>
<source_key>0</source_key> <source_key>0</source_key>
<sink_key>0</sink_key> <sink_key>0</sink_key>
</connection> </connection>
<connection>
<source_block_id>ha5kfu_execproc_xx_0_0</source_block_id>
<sink_block_id>ha5kfu_execproc_xx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection> <connection>
<source_block_id>ha5kfu_execproc_xx_0_0</source_block_id> <source_block_id>ha5kfu_execproc_xx_0_0</source_block_id>
<sink_block_id>wxgui_scopesink2_0</sink_block_id> <sink_block_id>wxgui_scopesink2_0</sink_block_id>

View file

@ -1949,7 +1949,7 @@ bpsk_costas_loop_state_t init_bpsk_costas_loop_cc(float samples_per_bits)
rc_filter_cutoff, rc_filter_rc, virtual_sampling_dt); rc_filter_cutoff, rc_filter_rc, virtual_sampling_dt);
state.rc_filter_alpha = virtual_sampling_dt/(rc_filter_rc+virtual_sampling_dt); //https://en.wikipedia.org/wiki/Low-pass_filter state.rc_filter_alpha = virtual_sampling_dt/(rc_filter_rc+virtual_sampling_dt); //https://en.wikipedia.org/wiki/Low-pass_filter
float rc_filter_omega_cutoff = 2*M_PI*rc_filter_cutoff; float rc_filter_omega_cutoff = 2*M_PI*rc_filter_cutoff;
state.vco_phase_addition_multiplier = 8*rc_filter_omega_cutoff; //as of Equation 25 in Feigin, assuming input signal amplitude of 1 (to 1V) and (state.vco_phase_addition_multiplier*<vco_input>), a value in radians, will be added to the vco_phase directly. state.vco_phase_addition_multiplier = 8*rc_filter_omega_cutoff / (virtual_sampling_rate); //as of Equation 25 in Feigin, assuming input signal amplitude of 1 (to 1V) and (state.vco_phase_addition_multiplier*<vco_input>), a value in radians, will be added to the vco_phase directly.
fprintf(stderr, "rc_filter_alpha = %g, rc_filter_omega_cutoff = %g, vco_phase_addition_multiplier = %g\n", fprintf(stderr, "rc_filter_alpha = %g, rc_filter_omega_cutoff = %g, vco_phase_addition_multiplier = %g\n",
state.rc_filter_alpha, rc_filter_omega_cutoff, state.vco_phase_addition_multiplier); state.rc_filter_alpha, rc_filter_omega_cutoff, state.vco_phase_addition_multiplier);
return state; return state;