From 721004b838d9d9ac5e1ccc1d2d09884506b31809 Mon Sep 17 00:00:00 2001 From: Luis Esteve Date: Wed, 18 Jul 2012 15:47:59 +0000 Subject: [PATCH] Changing nouns of variables of freq_xlating_fir_filter. Improving configuration files. git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@216 64b25241-fba3-4117-9849-534c7e92360d --- conf/gnss-sdr.conf | 49 ++++++++------- conf/master.conf | 61 ++++++++++--------- .../adapters/freq_xlating_fir_filter.cc | 8 +-- .../adapters/freq_xlating_fir_filter.h | 4 +- .../adapters/direct_resampler_conditioner.cc | 7 +-- .../gnss_block/gnss_block_factory_test.cc | 2 +- 6 files changed, 69 insertions(+), 62 deletions(-) diff --git a/conf/gnss-sdr.conf b/conf/gnss-sdr.conf index 35ad817b0..9158c9988 100644 --- a/conf/gnss-sdr.conf +++ b/conf/gnss-sdr.conf @@ -13,17 +13,17 @@ GNSS-SDR.internal_fs_hz=4000000 ControlThread.wait_for_flowgraph=false ;######### SIGNAL_SOURCE CONFIG ############ -;#implementation: Use File_Signal_Source or UHD_Signal_Source or GN3S_Signal_Source (experimental) +;#implementation: Use [File_Signal_Source] or [UHD_Signal_Source] or [GN3S_Signal_Source] (experimental) SignalSource.implementation=File_Signal_Source ;#filename: path to file with the captured GNSS signal samples to be processed -SignalSource.filename=../data/my_capture.dat +;SignalSource.filename=../data/my_capture.dat ;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version. SignalSource.item_type=gr_complex ;#sampling_frequency: Original Signal sampling frequency in [Hz] -SignalSource.sampling_frequency=8000000 +SignalSource.sampling_frequency=4000000 ;#freq: RF front-end center frequency in [Hz] SignalSource.freq=1575420000 @@ -53,22 +53,25 @@ SignalSource.enable_throttle_control=false ;######### SIGNAL_CONDITIONER CONFIG ############ ;## It holds blocks to change data type, filter and resample input data. -;#implementation: Pass_Through disables this block and the Data_Type_adapter, Input_Filter and Resampler blocks -;#implementation: Signal_Conditioner enables this block. Then you have to configure Data_Type_adapter, Input_Filter and Resampler blocks -SignalConditioner.implementation=Signal_Conditioner -;SignalConditioner.implementation=Pass_Through + +;#implementation: Use [Pass_Through] or [Signal_Conditioner] +;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks +;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks +;SignalConditioner.implementation=Signal_Conditioner +SignalConditioner.implementation=Pass_Through ;######### DATA_TYPE_ADAPTER CONFIG ############ ;## Changes the type of input data. Please disable it in this version. -;#implementation: Pass_Through disables this block +;#implementation: [Pass_Through] disables this block DataTypeAdapter.implementation=Pass_Through ;######### INPUT_FILTER CONFIG ############ ;## Filter the input data. Can be combined with frequency translation for IF signals -;#implementation: Pass_Through disables this block -;#implementation: Fir_Filter enables a FIR Filter -;#implementation: Freq_Xlating_Fir_Filter enables FIR filter and a composite frequency translation that shifts center_frequency down to zero Hz. +;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter] +;#[Pass_Through] disables this block +;#[Fir_Filter] enables a FIR Filter +;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz. ;InputFilter.implementation=Fir_Filter ;InputFilter.implementation=Freq_Xlating_Fir_Filter @@ -129,25 +132,26 @@ InputFilter.filter_type=bandpass InputFilter.grid_density=16 ;#The following options are used only in Freq_Xlating_Fir_Filter implementation. -;#InputFilter.center_frequency is the frequency (in Hz) shifted down to zero Hz +;#InputFilter.IF is the intermediate frequency (in Hz) shifted down to zero Hz -InputFilter.sampling_frequency=8000000 -InputFilter.center_frequency=0 +InputFilter.sampling_frequency=4000000 +InputFilter.IF=0 ;######### RESAMPLER CONFIG ############ ;## Resamples the input data. -;#implementation: Pass_Through disables this block -;#implementation: Direct_Resampler enables a resampler that implements a nearest neigbourhood interpolation -Resampler.implementation=Direct_Resampler -;Resampler.implementation=Pass_Through +;#implementation: Use [Pass_Through] or [Direct_Resampler] +;#[Pass_Through] disables this block +;#[Direct_Resampler] enables a resampler that implements a nearest neigbourhood interpolation +;Resampler.implementation=Direct_Resampler +Resampler.implementation=Pass_Through -;#dump: Dump the filtered data to a file. -InputFilter.dump=false +;#dump: Dump the resamplered data to a file. +Resampler.dump=false ;#dump_filename: Log path and filename. -InputFilter.dump=../data/resampler.dat +Resampler.dump_filename=../data/resampler.dat ;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version. Resampler.item_type=gr_complex @@ -162,6 +166,7 @@ Resampler.sample_freq_out=4000000 ;######### CHANNELS GLOBAL CONFIG ############ ;#count: Number of available satellite channels. Channels.count=5 +;#in_acquisition: Number of channels simultaneously acquiring Channels.in_acquisition=1 ;######### CHANNEL 0 CONFIG ############ @@ -354,7 +359,7 @@ Acquisition8.doppler_step=250 ;######### TRACKING GLOBAL CONFIG ############ -;#implementatiion: Selected tracking algorithm: [GPS_L1_CA_DLL_PLL_Tracking] or [GPS_L1_CA_DLL_FLL_PLL_Tracking] +;#implementation: Selected tracking algorithm: [GPS_L1_CA_DLL_PLL_Tracking] or [GPS_L1_CA_DLL_FLL_PLL_Tracking] Tracking.implementation=GPS_L1_CA_DLL_FLL_PLL_Tracking ;#item_type: Type and resolution for each of the signal samples. Use only [gr_complex] in this version. Tracking.item_type=gr_complex diff --git a/conf/master.conf b/conf/master.conf index 23a434f89..18b619539 100644 --- a/conf/master.conf +++ b/conf/master.conf @@ -13,17 +13,17 @@ GNSS-SDR.internal_fs_hz=4000000 ControlThread.wait_for_flowgraph=false ;######### SIGNAL_SOURCE CONFIG ############ -;#implementation: Use File_Signal_Source or UHD_Signal_Source or GN3S_Signal_Source (experimental) +;#implementation: Use [File_Signal_Source] or [UHD_Signal_Source] or [GN3S_Signal_Source] (experimental) SignalSource.implementation=File_Signal_Source ;#filename: path to file with the captured GNSS signal samples to be processed -SignalSource.filename=../data/my_capture.dat +;SignalSource.filename=../data/my_capture.dat ;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version. SignalSource.item_type=gr_complex ;#sampling_frequency: Original Signal sampling frequency in [Hz] -SignalSource.sampling_frequency=8000000 +SignalSource.sampling_frequency=4000000 ;#freq: RF front-end center frequency in [Hz] SignalSource.freq=1575420000 @@ -53,22 +53,25 @@ SignalSource.enable_throttle_control=false ;######### SIGNAL_CONDITIONER CONFIG ############ ;## It holds blocks to change data type, filter and resample input data. -;#implementation: Pass_Through disables this block and the Data_Type_adapter, Input_Filter and Resampler blocks -;#implementation: Signal_Conditioner enables this block. Then you have to configure Data_Type_adapter, Input_Filter and Resampler blocks -SignalConditioner.implementation=Signal_Conditioner -;SignalConditioner.implementation=Pass_Through + +;#implementation: Use [Pass_Through] or [Signal_Conditioner] +;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks +;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks +;SignalConditioner.implementation=Signal_Conditioner +SignalConditioner.implementation=Pass_Through ;######### DATA_TYPE_ADAPTER CONFIG ############ ;## Changes the type of input data. Please disable it in this version. -;#implementation: Pass_Through disables this block +;#implementation: [Pass_Through] disables this block DataTypeAdapter.implementation=Pass_Through ;######### INPUT_FILTER CONFIG ############ ;## Filter the input data. Can be combined with frequency translation for IF signals -;#implementation: Pass_Through disables this block -;#implementation: Fir_Filter enables a FIR Filter -;#implementation: Freq_Xlating_Fir_Filter enables FIR filter and a composite frequency translation that shifts center_frequency down to zero Hz. +;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter] +;#[Pass_Through] disables this block +;#[Fir_Filter] enables a FIR Filter +;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz. ;InputFilter.implementation=Fir_Filter ;InputFilter.implementation=Freq_Xlating_Fir_Filter @@ -129,25 +132,26 @@ InputFilter.filter_type=bandpass InputFilter.grid_density=16 ;#The following options are used only in Freq_Xlating_Fir_Filter implementation. -;#InputFilter.center_frequency is the frequency (in Hz) shifted down to zero Hz +;#InputFilter.IF is the intermediate frequency (in Hz) shifted down to zero Hz -InputFilter.sampling_frequency=8000000 -InputFilter.center_frequency=0 +InputFilter.sampling_frequency=4000000 +InputFilter.IF=0 ;######### RESAMPLER CONFIG ############ ;## Resamples the input data. -;#implementation: Pass_Through disables this block -;#implementation: Direct_Resampler enables a resampler that implements a nearest neigbourhood interpolation -Resampler.implementation=Direct_Resampler -;Resampler.implementation=Pass_Through +;#implementation: Use [Pass_Through] or [Direct_Resampler] +;#[Pass_Through] disables this block +;#[Direct_Resampler] enables a resampler that implements a nearest neigbourhood interpolation +;Resampler.implementation=Direct_Resampler +Resampler.implementation=Pass_Through -;#dump: Dump the filtered data to a file. -InputFilter.dump=false +;#dump: Dump the resamplered data to a file. +Resampler.dump=false ;#dump_filename: Log path and filename. -InputFilter.dump=../data/resampler.dat +Resampler.dump_filename=../data/resampler.dat ;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version. Resampler.item_type=gr_complex @@ -162,6 +166,7 @@ Resampler.sample_freq_out=4000000 ;######### CHANNELS GLOBAL CONFIG ############ ;#count: Number of available satellite channels. Channels.count=5 +;#in_acquisition: Number of channels simultaneously acquiring Channels.in_acquisition=1 ;######### CHANNEL 0 CONFIG ############ @@ -287,7 +292,7 @@ Acquisition.sampled_ms=1 ;#implementation: Acquisition algorithm selection for this channel: [GPS_L1_CA_PCPS_Acquisition] Acquisition0.implementation=GPS_L1_CA_PCPS_Acquisition ;#threshold: Acquisition threshold -Acquisition0.threshold=60 +Acquisition0.threshold=50 ;#doppler_max: Maximum expected Doppler shift [Hz] Acquisition0.doppler_max=10000 ;#doppler_max: Doppler step in the grid search [Hz] @@ -297,35 +302,35 @@ Acquisition0.doppler_step=250 ;######### ACQUISITION CH 1 CONFIG ############ Acquisition1.implementation=GPS_L1_CA_PCPS_Acquisition -Acquisition1.threshold=60 +Acquisition1.threshold=50 Acquisition1.doppler_max=10000 Acquisition1.doppler_step=250 ;######### ACQUISITION CH 2 CONFIG ############ Acquisition2.implementation=GPS_L1_CA_PCPS_Acquisition -Acquisition2.threshold=60 +Acquisition2.threshold=50 Acquisition2.doppler_max=10000 Acquisition2.doppler_step=250 ;######### ACQUISITION CH 3 CONFIG ############ Acquisition3.implementation=GPS_L1_CA_PCPS_Acquisition -Acquisition3.threshold=60 +Acquisition3.threshold=50 Acquisition3.doppler_max=10000 Acquisition3.doppler_step=250 ;######### ACQUISITION CH 4 CONFIG ############ Acquisition4.implementation=GPS_L1_CA_PCPS_Acquisition -Acquisition4.threshold=60 +Acquisition4.threshold=50 Acquisition4.doppler_max=10000 Acquisition4.doppler_step=250 ;######### ACQUISITION CH 5 CONFIG ############ Acquisition5.implementation=GPS_L1_CA_PCPS_Acquisition -Acquisition5.threshold=60 +Acquisition5.threshold=50 Acquisition5.doppler_max=10000 Acquisition5.doppler_step=250 @@ -354,7 +359,7 @@ Acquisition8.doppler_step=250 ;######### TRACKING GLOBAL CONFIG ############ -;#implementatiion: Selected tracking algorithm: [GPS_L1_CA_DLL_PLL_Tracking] or [GPS_L1_CA_DLL_FLL_PLL_Tracking] +;#implementation: Selected tracking algorithm: [GPS_L1_CA_DLL_PLL_Tracking] or [GPS_L1_CA_DLL_FLL_PLL_Tracking] Tracking.implementation=GPS_L1_CA_DLL_FLL_PLL_Tracking ;#item_type: Type and resolution for each of the signal samples. Use only [gr_complex] in this version. Tracking.item_type=gr_complex diff --git a/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.cc b/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.cc index e47b5b242..0e78cf794 100644 --- a/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.cc +++ b/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.cc @@ -55,7 +55,7 @@ FreqXlatingFirFilter::FreqXlatingFirFilter(ConfigurationInterface* configuration == 0)) { item_size = sizeof(gr_complex); - freq_xlating_fir_filter_ccf_ = gr_make_freq_xlating_fir_filter_ccf(1, taps_, center_freq_, sampling_freq_); + freq_xlating_fir_filter_ccf_ = gr_make_freq_xlating_fir_filter_ccf(1, taps_, intermediate_freq_, sampling_freq_); DLOG(INFO) << "input_filter(" << freq_xlating_fir_filter_ccf_->unique_id() << ")"; } @@ -114,7 +114,7 @@ void FreqXlatingFirFilter::init() std::string default_output_item_type = "gr_complex"; std::string default_taps_item_type = "float"; std::string default_dump_filename = "../data/input_filter.dat"; - double default_center_freq = 0; + double default_intermediate_freq = 0; double default_sampling_freq = 4000000; int default_number_of_taps = 6; unsigned int default_number_of_bands = 2; @@ -136,8 +136,8 @@ void FreqXlatingFirFilter::init() dump_ = config_->property(role_ + ".dump", false); dump_filename_ = config_->property(role_ + ".dump_filename", default_dump_filename); - center_freq_ = config_->property(role_ + ".center_frequency", - default_center_freq); + intermediate_freq_ = config_->property(role_ + ".IF", + default_intermediate_freq); sampling_freq_ = config_->property(role_ + ".sampling_frequency", default_sampling_freq); diff --git a/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.h b/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.h index 59c119a0a..9084be6b7 100644 --- a/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.h +++ b/src/algorithms/input_filter/adapters/freq_xlating_fir_filter.h @@ -47,7 +47,7 @@ class ConfigurationInterface; * \brief This class adapts a gnuradio gr_freq_xlating_fir_filter designed with gr_remez * * Construct a FIR filter with the given taps and a composite frequency - * translation that shifts center_freq down to zero Hz. The frequency + * translation that shifts intermediate_freq_ down to zero Hz. The frequency * translation logically comes before the filtering operation. * * See Parks-McClellan FIR filter design, http://en.wikipedia.org/wiki/Parks-McClellan_filter_design_algorithm @@ -95,7 +95,7 @@ private: std::string output_item_type_; std::string taps_item_type_; std::vector taps_; - double center_freq_; + double intermediate_freq_; double sampling_freq_; std::string role_; unsigned int in_streams_; diff --git a/src/algorithms/resampler/adapters/direct_resampler_conditioner.cc b/src/algorithms/resampler/adapters/direct_resampler_conditioner.cc index 07483406d..c35631d17 100644 --- a/src/algorithms/resampler/adapters/direct_resampler_conditioner.cc +++ b/src/algorithms/resampler/adapters/direct_resampler_conditioner.cc @@ -55,6 +55,7 @@ DirectResamplerConditioner::DirectResamplerConditioner( item_type_ = configuration->property(role + ".item_type", default_item_type); dump_ = configuration->property(role + ".dump", false); + DLOG(INFO) << "dump_ is "<< dump_; dump_filename_ = configuration->property(role + ".dump_filename", default_dump_file); @@ -86,13 +87,9 @@ DirectResamplerConditioner::DirectResamplerConditioner( { DLOG(INFO) << "Dumping output into file " << dump_filename_; file_sink_ = gr_make_file_sink(item_size_, dump_filename_.c_str()); - } - - - if (dump_) - { DLOG(INFO) << "file_sink(" << file_sink_->unique_id() << ")"; } + } DirectResamplerConditioner::~DirectResamplerConditioner() {} diff --git a/src/tests/gnss_block/gnss_block_factory_test.cc b/src/tests/gnss_block/gnss_block_factory_test.cc index b5db083e3..338ef0e6a 100644 --- a/src/tests/gnss_block/gnss_block_factory_test.cc +++ b/src/tests/gnss_block/gnss_block_factory_test.cc @@ -177,7 +177,7 @@ TEST(GNSS_Block_Factory_Test, InstantiateFreqXlatingFIRFilter) { configuration->set_property("InputFilter.grid_density", "16"); configuration->set_property("InputFilter.sampling_frequency","4000000"); - configuration->set_property("InputFilter.center_frequency","34000"); + configuration->set_property("InputFilter.IF","34000"); GNSSBlockFactory *factory = new GNSSBlockFactory(); GNSSBlockInterface *input_filter = factory->GetBlock(configuration, "InputFilter", "Freq_Xlating_Fir_Filter", 1,1, queue);