24 #ifndef GNSS_SDR_GALILEO_E5A_NONCOHERENT_IQ_ACQUISITION_CAF_CC_H 25 #define GNSS_SDR_GALILEO_E5A_NONCOHERENT_IQ_ACQUISITION_CAF_CC_H 30 #include <gnuradio/block.h> 31 #include <gnuradio/gr_complex.h> 46 using galileo_e5a_noncoherentIQ_acquisition_caf_cc_sptr = gnss_shared_ptr<galileo_e5a_noncoherentIQ_acquisition_caf_cc>;
48 galileo_e5a_noncoherentIQ_acquisition_caf_cc_sptr galileo_e5a_noncoherentIQ_make_acquisition_caf_cc(
49 unsigned int sampled_ms,
50 unsigned int max_dwells,
51 unsigned int doppler_max, int64_t fs_in,
52 int samples_per_ms,
int samples_per_code,
53 bool bit_transition_flag,
55 const std::string& dump_filename,
56 bool both_signal_components_,
59 bool enable_monitor_output);
82 d_gnss_synchro = p_gnss_synchro;
88 inline unsigned int mag()
const 102 void set_local_code(std::complex<float>* code, std::complex<float>* codeQ);
135 d_channel_fsm = std::move(channel_fsm);
145 d_threshold = threshold;
154 d_doppler_max = doppler_max;
163 d_doppler_step = doppler_step;
169 int general_work(
int noutput_items, gr_vector_int& ninput_items,
170 gr_vector_const_void_star& input_items,
171 gr_vector_void_star& output_items);
174 friend galileo_e5a_noncoherentIQ_acquisition_caf_cc_sptr
175 galileo_e5a_noncoherentIQ_make_acquisition_caf_cc(
176 unsigned int sampled_ms,
177 unsigned int max_dwells,
178 unsigned int doppler_max, int64_t fs_in,
179 int samples_per_ms,
int samples_per_code,
180 bool bit_transition_flag,
182 const std::string& dump_filename,
183 bool both_signal_components_,
186 bool enable_monitor_output);
189 unsigned int sampled_ms,
190 unsigned int max_dwells,
191 unsigned int doppler_max, int64_t fs_in,
192 int samples_per_ms,
int samples_per_code,
193 bool bit_transition_flag,
195 const std::string& dump_filename,
196 bool both_signal_components_,
199 bool enable_monitor_output);
201 void calculate_magnitudes(gr_complex* fft_begin,
int doppler_shift,
204 float estimate_input_power(gr_complex* in);
206 std::weak_ptr<ChannelFsm> d_channel_fsm;
207 std::unique_ptr<gnss_fft_complex_fwd> d_fft_if;
208 std::unique_ptr<gnss_fft_complex_rev> d_ifft;
210 std::vector<std::vector<gr_complex>> d_grid_doppler_wipeoffs;
211 std::vector<gr_complex> d_fft_code_I_A;
212 std::vector<gr_complex> d_fft_code_I_B;
213 std::vector<gr_complex> d_fft_code_Q_A;
214 std::vector<gr_complex> d_fft_code_Q_B;
215 std::vector<gr_complex> d_inbuffer;
216 std::vector<float> d_magnitudeIA;
217 std::vector<float> d_magnitudeIB;
218 std::vector<float> d_magnitudeQA;
219 std::vector<float> d_magnitudeQB;
220 std::vector<float> d_CAF_vector;
221 std::vector<float> d_CAF_vector_I;
222 std::vector<float> d_CAF_vector_Q;
224 std::string d_satellite_str;
225 std::string d_dump_filename;
227 std::ofstream d_dump_file;
232 uint64_t d_sample_counter;
235 float d_doppler_freq;
238 float d_test_statistics;
241 int d_samples_per_ms;
242 int d_samples_per_code;
245 int d_doppler_resolution;
249 int d_num_doppler_bins;
250 unsigned int d_gr_stream_buffer;
251 unsigned int d_channel;
252 unsigned int d_max_dwells;
253 unsigned int d_well_count;
254 unsigned int d_sampled_ms;
255 unsigned int d_code_phase;
257 bool d_bit_transition_flag;
260 bool d_both_signal_components;
261 bool d_enable_monitor_output;
267 #endif // GNSS_SDR_GALILEO_E5A_NONCOHERENT_IQ_ACQUISITION_CAF_CC_H void set_threshold(float threshold)
Set statistics threshold of PCPS algorithm.
Helper file for FFT interface.
void init()
Initializes acquisition algorithm.
unsigned int mag() const
Returns the maximum peak of grid search.
Interface of the State Machine for channel.
void set_active(bool active)
Starts acquisition algorithm, turning from standby mode to active mode.
This is the class that contains the information that is shared by the processing blocks.
void set_gnss_synchro(Gnss_Synchro *p_gnss_synchro)
Set acquisition/tracking common Gnss_Synchro object pointer to exchange synchronization data between ...
This class implements a Parallel Code Phase Search Acquisition.
void set_doppler_max(unsigned int doppler_max)
Set maximum Doppler grid search.
void set_doppler_step(unsigned int doppler_step)
Set Doppler steps for the grid search.
void set_local_code(std::complex< float > *code, std::complex< float > *codeQ)
Sets local code for PCPS acquisition algorithm.
void set_channel_fsm(std::weak_ptr< ChannelFsm > channel_fsm)
Set channel fsm associated to this acquisition instance.
void set_state(int state)
If set to 1, ensures that acquisition starts at the first available sample.
void set_channel(unsigned int channel)
Set acquisition channel unique ID.
int general_work(int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
Parallel Code Phase Search Acquisition signal processing.
~galileo_e5a_noncoherentIQ_acquisition_caf_cc()
Default destructor.
Interface of the Gnss_Synchro class.