24 #ifndef GNSS_SDR_GALILEO_E5A_NONCOHERENT_IQ_ACQUISITION_CAF_CC_H 25 #define GNSS_SDR_GALILEO_E5A_NONCOHERENT_IQ_ACQUISITION_CAF_CC_H 32 #include <gnuradio/block.h> 33 #include <gnuradio/gr_complex.h> 48 using galileo_e5a_noncoherentIQ_acquisition_caf_cc_sptr = gnss_shared_ptr<galileo_e5a_noncoherentIQ_acquisition_caf_cc>;
50 galileo_e5a_noncoherentIQ_acquisition_caf_cc_sptr galileo_e5a_noncoherentIQ_make_acquisition_caf_cc(
52 bool both_signal_components,
77 d_gnss_synchro = p_gnss_synchro;
83 inline unsigned int mag()
const override 92 void set_local_code(std::complex<float>* code, std::complex<float>* codeQ)
override;
123 d_channel_fsm = std::move(channel_fsm);
129 int general_work(
int noutput_items, gr_vector_int& ninput_items,
130 gr_vector_const_void_star& input_items,
131 gr_vector_void_star& output_items)
override;
134 friend galileo_e5a_noncoherentIQ_acquisition_caf_cc_sptr
135 galileo_e5a_noncoherentIQ_make_acquisition_caf_cc(
137 bool both_signal_components,
143 bool both_signal_components,
147 void calculate_magnitudes(gr_complex* fft_begin,
int doppler_shift,
150 float estimate_input_power(gr_complex* in);
152 std::string d_satellite_str;
155 std::ofstream d_dump_file;
159 uint64_t d_sample_counter;
163 float d_test_statistics;
166 const int d_CAF_window_hz;
168 int d_doppler_resolution;
169 const int d_fft_size;
170 int d_num_doppler_bins;
171 unsigned int d_gr_stream_buffer;
172 unsigned int d_channel;
173 unsigned int d_well_count;
174 unsigned int d_sampled_ms;
175 unsigned int d_code_phase;
178 const bool d_both_signal_components;
180 std::weak_ptr<ChannelFsm> d_channel_fsm;
181 std::unique_ptr<gnss_fft_complex_fwd> d_fft_if;
182 std::unique_ptr<gnss_fft_complex_rev> d_ifft;
184 std::vector<std::vector<gr_complex>> d_grid_doppler_wipeoffs;
185 std::vector<gr_complex> d_fft_code_I_A;
186 std::vector<gr_complex> d_fft_code_I_B;
187 std::vector<gr_complex> d_fft_code_Q_A;
188 std::vector<gr_complex> d_fft_code_Q_B;
189 std::vector<gr_complex> d_inbuffer;
190 std::vector<float> d_magnitudeIA;
191 std::vector<float> d_magnitudeIB;
192 std::vector<float> d_magnitudeQA;
193 std::vector<float> d_magnitudeQB;
194 std::vector<float> d_CAF_vector;
195 std::vector<float> d_CAF_vector_I;
196 std::vector<float> d_CAF_vector_Q;
202 #endif // GNSS_SDR_GALILEO_E5A_NONCOHERENT_IQ_ACQUISITION_CAF_CC_H Helper file for FFT interface.
Header file of the interface to an acquisition implementation GNSS block.
void set_gnss_synchro(Gnss_Synchro *p_gnss_synchro) override
Set acquisition/tracking common Gnss_Synchro object pointer to exchange synchronization data between ...
void set_local_code(std::complex< float > *code, std::complex< float > *codeQ) override
Sets local code for PCPS acquisition algorithm.
Class that contains all the configuration parameters for generic acquisition block based on the PCPS ...
Interface of the State Machine for channel.
unsigned int mag() const override
Returns the maximum peak of grid search.
void set_active(bool active) override
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.
This class implements a Parallel Code Phase Search Acquisition.
void set_channel_fsm(std::weak_ptr< ChannelFsm > channel_fsm) override
Set channel fsm associated to this acquisition instance.
void set_channel(unsigned int channel) override
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) override
Parallel Code Phase Search Acquisition signal processing.
~galileo_e5a_noncoherentIQ_acquisition_caf_cc()
Default destructor.
This abstract class represents an interface to an acquisition GNSS block.
Interface of the Gnss_Synchro class.