diff options
4 files changed, 44 insertions, 8 deletions
diff --git a/gr-filter/include/filter/channel_model.h b/gr-filter/include/filter/channel_model.h index 42b879515..44d7f1a64 100644 --- a/gr-filter/include/filter/channel_model.h +++ b/gr-filter/include/filter/channel_model.h @@ -33,6 +33,16 @@ namespace gr { /*! * \brief channel simulator * \ingroup misc_blk + * + * This block implements a basic channel model simulator that can + * be used to help evaluate, design, and test various signals, + * waveforms, and algorithms. This model allows the user to set + * the voltage of an AWGN noise source, a (normalized) frequency + * offset, a sample timing offset, and a noise seed to randomize + * the AWGN noise source. + * + * Multipath can be approximated in this model by using a FIR + * filter representation of a multipath delay profile.. */ class FILTER_API channel_model : virtual public gr_hier_block2 { @@ -40,11 +50,25 @@ namespace gr { // gr::filter::channel_model::sptr typedef boost::shared_ptr<channel_model> sptr; - static FILTER_API sptr make(double noise_voltage, - double frequency_offset, - double epsilon, - const std::vector<gr_complex> &taps, - double noise_seed=0); + /*! \brief Build the channel simulator. + * + * \param noise_voltage The AWGN noise level as a voltage (to be + * calculated externally to meet, say, a + * desired SNR). + * \param frequency_offset The normalized frequency offset. 0 is + * no offset; 0.25 would be, for a digital + * modem, one quarter of the symbol rate. + * \param epsilon The sample timing offset to emulate the + * different rates between the sample clocks of + * the transmitter and receiver. 1.0 is no difference. + * \param taps Taps of a FIR filter to emulate a multipath delay profile. + * \param noise_seed A random number generator seed for the noise source. + */ + static FILTER_API sptr make(double noise_voltage=0.0, + double frequency_offset=0.0, + double epsilon=1.0, + const std::vector<gr_complex> &taps=std::vector<gr_complex>(1,1), + double noise_seed=3021); virtual void set_noise_voltage(double noise_voltage) = 0; virtual void set_frequency_offset(double frequency_offset) = 0; diff --git a/gr-filter/include/filter/fractional_interpolator_cc.h b/gr-filter/include/filter/fractional_interpolator_cc.h index e5d066bbc..3f196c80f 100644 --- a/gr-filter/include/filter/fractional_interpolator_cc.h +++ b/gr-filter/include/filter/fractional_interpolator_cc.h @@ -39,6 +39,12 @@ namespace gr { // gr::filter::fractional_interpolator_cc::sptr typedef boost::shared_ptr<fractional_interpolator_cc> sptr; + /*! + * \brief Build the interpolating MMSE filter (complex input, complex output) + * + * \param phase_shift The phase shift of the output signal to the input + * \param interp_ratio The interpolation ratio = input_rate / output_rate. + */ static FILTER_API sptr make(float phase_shift, float interp_ratio); diff --git a/gr-filter/include/filter/fractional_interpolator_ff.h b/gr-filter/include/filter/fractional_interpolator_ff.h index 8280baee3..e05da847d 100644 --- a/gr-filter/include/filter/fractional_interpolator_ff.h +++ b/gr-filter/include/filter/fractional_interpolator_ff.h @@ -39,6 +39,12 @@ namespace gr { // gr::filter::fractional_interpolator_ff::sptr typedef boost::shared_ptr<fractional_interpolator_ff> sptr; + /*! + * \brief Build the interpolating MMSE filter (float input, float output) + * + * \param phase_shift The phase shift of the output signal to the input + * \param interp_ratio The interpolation ratio = input_rate / output_rate. + */ static FILTER_API sptr make(float phase_shift, float interp_ratio); diff --git a/gr-filter/include/filter/freq_xlating_fir_filter_XXX.h.t b/gr-filter/include/filter/freq_xlating_fir_filter_XXX.h.t index d56303461..8764c4f0d 100644 --- a/gr-filter/include/filter/freq_xlating_fir_filter_XXX.h.t +++ b/gr-filter/include/filter/freq_xlating_fir_filter_XXX.h.t @@ -38,8 +38,9 @@ namespace gr { /*! * \brief FIR filter combined with frequency translation with - * @I_TYPE@ input, @O_TYPE@ output and @TAP_TYPE@ taps \ingroup - * filter_blk + * @I_TYPE@ input, @O_TYPE@ output and @TAP_TYPE@ taps + * + * \ingroup filter_blk * * This class efficiently combines a frequency translation * (typically "down conversion") with a FIR filter (typically @@ -60,7 +61,6 @@ namespace gr { * \brief FIR filter with @I_TYPE@ input, @O_TYPE@ output, and * @TAP_TYPE@ taps that also frequency translates a signal from * \p center_freq. - * \ingroup filter_blk * * Construct a FIR filter with the given taps and a composite * frequency translation that shifts center_freq down to zero |