20 #ifndef GNSS_SDR_SIGNAL_GENERATOR_C_H 21 #define GNSS_SDR_SIGNAL_GENERATOR_C_H 24 #include <gnuradio/block.h> 28 #if GNURADIO_USES_STD_POINTERS 31 #include <boost/shared_ptr.hpp> 47 #if GNURADIO_USES_STD_POINTERS 48 using signal_generator_c_sptr = std::shared_ptr<signal_generator_c>;
50 using signal_generator_c_sptr = boost::shared_ptr<signal_generator_c>;
61 const std::vector<std::string> &signal1,
62 const std::vector<std::string> &system,
63 const std::vector<unsigned int> &PRN,
64 const std::vector<float> &CN0_dB,
65 const std::vector<float> &doppler_Hz,
66 const std::vector<unsigned int> &delay_chips,
67 const std::vector<unsigned int> &delay_sec,
71 unsigned int vector_length,
86 int general_work(
int noutput_items,
87 gr_vector_int &ninput_items,
88 gr_vector_const_void_star &input_items,
89 gr_vector_void_star &output_items);
93 const std::vector<std::string> &signal1,
94 const std::vector<std::string> &system,
95 const std::vector<unsigned int> &PRN,
96 const std::vector<float> &CN0_dB,
97 const std::vector<float> &doppler_Hz,
98 const std::vector<unsigned int> &delay_chips,
99 const std::vector<unsigned int> &delay_sec,
103 unsigned int vector_length,
107 std::vector<std::string> signal1,
108 std::vector<std::string> system,
109 const std::vector<unsigned int> &PRN,
110 std::vector<float> CN0_dB,
111 std::vector<float> doppler_Hz,
112 std::vector<unsigned int> delay_chips,
113 std::vector<unsigned int> delay_sec,
117 unsigned int vector_length,
122 void generate_codes();
124 std::random_device r;
125 std::uniform_int_distribution<int> uniform_dist;
126 std::normal_distribution<float> normal_dist;
127 std::vector<std::string> signal_;
128 std::vector<std::string> system_;
129 std::vector<std::vector<gr_complex>> sampled_code_data_;
130 std::vector<std::vector<gr_complex>> sampled_code_pilot_;
131 std::vector<gr_complex> current_data_bits_;
132 std::vector<gr_complex> complex_phase_;
133 std::vector<float> CN0_dB_;
134 std::vector<float> doppler_Hz_;
135 std::vector<float> start_phase_rad_;
136 std::vector<unsigned int> PRN_;
137 std::vector<unsigned int> delay_chips_;
138 std::vector<unsigned int> delay_sec_;
139 std::vector<unsigned int> samples_per_code_;
140 std::vector<unsigned int> num_of_codes_per_vector_;
141 std::vector<unsigned int> data_bit_duration_ms_;
142 std::vector<unsigned int> ms_counter_;
143 std::vector<signed int> current_data_bit_int_;
144 std::vector<signed int> data_modulation_;
145 std::vector<signed int> pilot_modulation_;
147 unsigned int work_counter_{};
149 unsigned int num_sats_;
150 unsigned int vector_length_;
155 #endif // GNSS_SDR_SIGNAL_GENERATOR_C_H This class generates synthesized GNSS signal.
Implementation of the Gnss_Signal class.
signal_generator_c_sptr signal_make_generator_c(const std::vector< std::string > &signal1, const std::vector< std::string > &system, const std::vector< unsigned int > &PRN, const std::vector< float > &CN0_dB, const std::vector< float > &doppler_Hz, const std::vector< unsigned int > &delay_chips, const std::vector< unsigned int > &delay_sec, bool data_flag, bool noise_flag, unsigned int fs_in, unsigned int vector_length, float BW_BB)
Return a shared_ptr to a new instance of gen_source.
friend signal_generator_c_sptr signal_make_generator_c(const std::vector< std::string > &signal1, const std::vector< std::string > &system, const std::vector< unsigned int > &PRN, const std::vector< float > &CN0_dB, const std::vector< float > &doppler_Hz, const std::vector< unsigned int > &delay_chips, const std::vector< unsigned int > &delay_sec, bool data_flag, bool noise_flag, unsigned int fs_in, unsigned int vector_length, float BW_BB)
Return a shared_ptr to a new instance of gen_source.