diff options
Diffstat (limited to 'gnuradio-core')
-rw-r--r-- | gnuradio-core/src/lib/general/gr_firdes.h | 78 | ||||
-rw-r--r-- | gnuradio-core/src/lib/general/gr_firdes.i | 1 |
2 files changed, 73 insertions, 6 deletions
diff --git a/gnuradio-core/src/lib/general/gr_firdes.h b/gnuradio-core/src/lib/general/gr_firdes.h index 7b30084d9..11752ddae 100644 --- a/gnuradio-core/src/lib/general/gr_firdes.h +++ b/gnuradio-core/src/lib/general/gr_firdes.h @@ -88,7 +88,7 @@ class gr_firdes { double sampling_freq, double cutoff_freq, // Hz beginning transition band double transition_width, // Hz width of transition band - double attenuation_dB, // attenuation dB + double attenuation_dB, // out of band attenuation dB win_type window = WIN_HAMMING, double beta = 6.76); // used only with Kaiser @@ -106,6 +106,7 @@ class gr_firdes { * maximum attenuation and passband ripple. * \p beta: parameter for Kaiser window */ + static std::vector<float> high_pass (double gain, double sampling_freq, @@ -114,12 +115,28 @@ class gr_firdes { win_type window = WIN_HAMMING, double beta = 6.76); // used only with Kaiser + /*! + * \brief use "window method" to design a high-pass FIR filter + * + * \p gain: overall gain of filter (typically 1.0) + * \p sampling_freq: sampling freq (Hz) + * \p cutoff_freq: center of transition band (Hz) + * \p transition_width: width of transition band (Hz). + * \p attenuation_dB out of band attenuation + * The normalized width of the transition + * band is what sets the number of taps + * required. Narrow --> more taps + * \p window_type: What kind of window to use. Determines + * maximum attenuation and passband ripple. + * \p beta: parameter for Kaiser window + */ + static std::vector<float> high_pass_2 (double gain, double sampling_freq, double cutoff_freq, // Hz center of transition band double transition_width, // Hz width of transition band - double attenuation_dB, // attenuation dB + double attenuation_dB, // out of band attenuation dB win_type window = WIN_HAMMING, double beta = 6.76); // used only with Kaiser @@ -147,13 +164,29 @@ class gr_firdes { win_type window = WIN_HAMMING, double beta = 6.76); // used only with Kaiser + /*! + * \brief use "window method" to design a band-pass FIR filter + * + * \p gain: overall gain of filter (typically 1.0) + * \p sampling_freq: sampling freq (Hz) + * \p low_cutoff_freq: center of transition band (Hz) + * \p high_cutoff_freq: center of transition band (Hz) + * \p transition_width: width of transition band (Hz). + * \p attenuation_dB out of band attenuation + * The normalized width of the transition + * band is what sets the number of taps + * required. Narrow --> more taps + * \p window_type: What kind of window to use. Determines + * maximum attenuation and passband ripple. + * \p beta: parameter for Kaiser window + */ static std::vector<float> band_pass_2 (double gain, double sampling_freq, double low_cutoff_freq, // Hz beginning transition band double high_cutoff_freq, // Hz beginning transition band double transition_width, // Hz width of transition band - double attenuation_dB, // attenuation dB + double attenuation_dB, // out of band attenuation dB win_type window = WIN_HAMMING, double beta = 6.76); // used only with Kaiser @@ -182,17 +215,33 @@ class gr_firdes { win_type window = WIN_HAMMING, double beta = 6.76); // used only with Kaiser + /*! + * \brief use "window method" to design a complex band-pass FIR filter + * + * \p gain: overall gain of filter (typically 1.0) + * \p sampling_freq: sampling freq (Hz) + * \p low_cutoff_freq: center of transition band (Hz) + * \p high_cutoff_freq: center of transition band (Hz) + * \p transition_width: width of transition band (Hz). + * \p attenuation_dB out of band attenuation + * The normalized width of the transition + * band is what sets the number of taps + * required. Narrow --> more taps + * \p window_type: What kind of window to use. Determines + * maximum attenuation and passband ripple. + * \p beta: parameter for Kaiser window + */ + static std::vector<gr_complex> complex_band_pass_2 (double gain, double sampling_freq, double low_cutoff_freq, // Hz beginning transition band double high_cutoff_freq, // Hz beginning transition band double transition_width, // Hz width of transition band - double attenuation_dB, // attenuation dB + double attenuation_dB, // out of band attenuation dB win_type window = WIN_HAMMING, double beta = 6.76); // used only with Kaiser - /*! * \brief use "window method" to design a band-reject FIR filter * @@ -218,13 +267,30 @@ class gr_firdes { win_type window = WIN_HAMMING, double beta = 6.76); // used only with Kaiser + /*! + * \brief use "window method" to design a band-reject FIR filter + * + * \p gain: overall gain of filter (typically 1.0) + * \p sampling_freq: sampling freq (Hz) + * \p low_cutoff_freq: center of transition band (Hz) + * \p high_cutoff_freq: center of transition band (Hz) + * \p transition_width: width of transition band (Hz). + * \p attenuation_dB out of band attenuation + * The normalized width of the transition + * band is what sets the number of taps + * required. Narrow --> more taps + * \p window_type: What kind of window to use. Determines + * maximum attenuation and passband ripple. + * \p beta: parameter for Kaiser window + */ + static std::vector<float> band_reject_2 (double gain, double sampling_freq, double low_cutoff_freq, // Hz beginning transition band double high_cutoff_freq, // Hz beginning transition band double transition_width, // Hz width of transition band - double attenuation_dB, // attenuation dB + double attenuation_dB, // out of band attenuation dB win_type window = WIN_HAMMING, double beta = 6.76); // used only with Kaiser diff --git a/gnuradio-core/src/lib/general/gr_firdes.i b/gnuradio-core/src/lib/general/gr_firdes.i index 4ac9855d2..73becadba 100644 --- a/gnuradio-core/src/lib/general/gr_firdes.i +++ b/gnuradio-core/src/lib/general/gr_firdes.i @@ -49,6 +49,7 @@ class gr_firdes { * \p sampling_freq: sampling freq (Hz) * \p cutoff_freq: center of transition band (Hz) * \p transition_width: width of transition band (Hz). + * \p attenuation_dB out of band attenuation * The normalized width of the transition * band is what sets the number of taps * required. Narrow --> more taps |