#include <gnuradio/fft/window.h>
Public Types | |
enum | win_type { WIN_HAMMING = 0, WIN_HANN = 1, WIN_BLACKMAN = 2, WIN_RECTANGULAR = 3, WIN_KAISER = 4, WIN_BLACKMAN_hARRIS = 5, WIN_BLACKMAN_HARRIS = 5, WIN_BARTLETT = 6, WIN_FLATTOP = 7 } |
Static Public Member Functions | |
static double | max_attenuation (win_type type, double beta=6.76) |
Given a window::win_type, this tells you the maximum attenuation you can expect. More... | |
static std::vector< float > | coswindow (int ntaps, float c0, float c1, float c2) |
Helper function to build cosine-based windows. 3-coefficient version. More... | |
static std::vector< float > | coswindow (int ntaps, float c0, float c1, float c2, float c3) |
Helper function to build cosine-based windows. 4-coefficient version. More... | |
static std::vector< float > | coswindow (int ntaps, float c0, float c1, float c2, float c3, float c4) |
Helper function to build cosine-based windows. 5-coefficient version. More... | |
static std::vector< float > | rectangular (int ntaps) |
Build a rectangular window. More... | |
static std::vector< float > | hamming (int ntaps) |
Build a Hamming window. More... | |
static std::vector< float > | hann (int ntaps) |
Build a Hann window (sometimes known as Hanning). More... | |
static std::vector< float > | hanning (int ntaps) |
Alias to build a Hann window. More... | |
static std::vector< float > | blackman (int ntaps) |
Build an exact Blackman window. More... | |
static std::vector< float > | blackman2 (int ntaps) |
Build Blackman window, variation 1. More... | |
static std::vector< float > | blackman3 (int ntaps) |
Build Blackman window, variation 2. More... | |
static std::vector< float > | blackman4 (int ntaps) |
Build Blackman window, variation 3. More... | |
static std::vector< float > | blackman_harris (int ntaps, int atten=92) |
Build a Blackman-harris window with a given attenuation. More... | |
static std::vector< float > | blackmanharris (int ntaps, int atten=92) |
static std::vector< float > | nuttall (int ntaps) |
Build a Nuttall (or Blackman-Nuttall) window. More... | |
static std::vector< float > | nuttal (int ntaps) |
static std::vector< float > | blackman_nuttall (int ntaps) |
Alias to the Nuttall window. More... | |
static std::vector< float > | blackman_nuttal (int ntaps) |
static std::vector< float > | nuttall_cfd (int ntaps) |
Build a Nuttall continuous first derivative window. More... | |
static std::vector< float > | nuttal_cfd (int ntaps) |
static std::vector< float > | flattop (int ntaps) |
Build a flat top window. More... | |
static std::vector< float > | kaiser (int ntaps, double beta) |
Build a Kaiser window with a given beta. More... | |
static std::vector< float > | bartlett (int ntaps) |
Build a Barlett (triangular) window. More... | |
static std::vector< float > | welch (int ntaps) |
static std::vector< float > | parzen (int ntaps) |
Build a Parzen (or de la Valle-Poussin) window. More... | |
static std::vector< float > | exponential (int ntaps, double d) |
Build an exponential window with a given decay. More... | |
static std::vector< float > | riemann (int ntaps) |
Build a Riemann window. More... | |
static std::vector< float > | build (win_type type, int ntaps, double beta) |
Build a window using gr::fft::win_type to index the type of window desired. More... | |
Enumerator | |
---|---|
WIN_HAMMING |
Hamming window; max attenuation 53 dB. |
WIN_HANN |
Hann window; max attenuation 44 dB. |
WIN_BLACKMAN |
Blackman window; max attenuation 74 dB. |
WIN_RECTANGULAR |
Basic rectangular window; max attenuation 21 dB. |
WIN_KAISER |
Kaiser window; max attenuation see window::max_attenuation. |
WIN_BLACKMAN_hARRIS |
Blackman-harris window; max attenuation 92 dB. |
WIN_BLACKMAN_HARRIS |
alias to WIN_BLACKMAN_hARRIS for capitalization consistency |
WIN_BARTLETT |
Barlett (triangular) window; max attenuation 26 dB. |
WIN_FLATTOP |
flat top window; useful in FFTs; max attenuation 93 dB |
|
static |
Build a Barlett (triangular) window.
See:
A. V. Oppenheim and R. W. Schafer, "Discrete-Time Signal Processing," Upper Saddle River, N.J.: Prentice Hall, 2010, pp. 535-538.
ntaps | Number of coefficients in the window. |
|
static |
Build an exact Blackman window.
See:
A. V. Oppenheim and R. W. Schafer, "Discrete-Time Signal Processing," Upper Saddle River, N.J.: Prentice Hall, 2010, pp. 535-538.
ntaps | Number of coefficients in the window. |
|
static |
Build Blackman window, variation 1.
|
static |
Build Blackman window, variation 2.
|
static |
Build Blackman window, variation 3.
|
static |
Build a Blackman-harris window with a given attenuation.
f. j. harris, "On the use of windows for harmonic analysis with the discrete Fourier transforms," Proc. IEEE, Vol. 66, ppg. 51-83, Jan. 1978.
ntaps | Number of coefficients in the window. |
atten | Attenuation factor. Must be [61, 67, 74, 92]. See the above paper for details. |
|
static |
Deprecated: use blackman_nuttall window instead.
|
static |
Alias to the Nuttall window.
ntaps | Number of coefficients in the window. |
|
static |
Alias to gr::fft::window::blakcman_harris.
|
static |
Build a window using gr::fft::win_type to index the type of window desired.
type | a gr::fft::win_type index for the type of window. |
ntaps | Number of coefficients in the window. |
beta | Used only for building Kaiser windows. |
|
static |
Helper function to build cosine-based windows. 3-coefficient version.
|
static |
Helper function to build cosine-based windows. 4-coefficient version.
|
static |
Helper function to build cosine-based windows. 5-coefficient version.
|
static |
Build an exponential window with a given decay.
See: http://en.wikipedia.org/wiki/Window_function#Exponential_or_Poisson_window
ntaps | Number of coefficients in the window. |
d | Decay of d dB over half the window length. |
|
static |
Build a flat top window.
See: http://en.wikipedia.org/wiki/Window_function#Flat_top_window
ntaps | Number of coefficients in the window. |
|
static |
Build a Hamming window.
See:
A. V. Oppenheim and R. W. Schafer, "Discrete-Time Signal Processing," Upper Saddle River, N.J.: Prentice Hall, 2010, pp. 535-538.
ntaps | Number of coefficients in the window. |
|
static |
Build a Hann window (sometimes known as Hanning).
See:
A. V. Oppenheim and R. W. Schafer, "Discrete-Time Signal Processing," Upper Saddle River, N.J.: Prentice Hall, 2010, pp. 535-538.
ntaps | Number of coefficients in the window. |
|
static |
Alias to build a Hann window.
ntaps | Number of coefficients in the window. |
|
static |
Build a Kaiser window with a given beta.
See:
A. V. Oppenheim and R. W. Schafer, "Discrete-Time Signal Processing," Upper Saddle River, N.J.: Prentice Hall, 2010, pp. 541-545.
ntaps | Number of coefficients in the window. |
beta | Shaping parameter of the window. See the discussion in Oppenheim and Schafer. |
|
static |
Given a window::win_type, this tells you the maximum attenuation you can expect.
For most windows, this is a set value. For the Kaiser window, the attenuation is based on the value of beta. The actual relationship is a piece-wise exponential relationship to calculate beta from the desired attenuation and can be found on page 542 of Oppenheim and Schafer (Discrete-Time Signal Processing, 3rd edition). To simplify this function to solve for A given beta, we use a linear form that is exact for attenuation >= 50 dB.
For an attenuation of 50 dB, beta = 4.55.
For an attenuation of 70 dB, beta = 6.76.
type | The window::win_type enumeration of the window type. |
beta | Beta value only used for the Kaiser window. |
|
static |
Deprecated: use nuttall window instead.
|
static |
Deprecated: use nuttall_cfd window instead.
|
static |
Build a Nuttall (or Blackman-Nuttall) window.
See: http://en.wikipedia.org/wiki/Window_function#Blackman.E2.80.93Nuttall_window
ntaps | Number of coefficients in the window. |
|
static |
Build a Nuttall continuous first derivative window.
See: http://en.wikipedia.org/wiki/Window_function#Nuttall_window.2C_continuous_first_derivative
ntaps | Number of coefficients in the window. |
|
static |
Build a Parzen (or de la Valle-Poussin) window.
See:
A. D. Poularikas, "Handbook of Formulas and Tables for Signal Processing," Springer, Oct 28, 1998
ntaps | Number of coefficients in the window. |
|
static |
Build a rectangular window.
Taps are flat across the window.
ntaps | Number of coefficients in the window. |
|
static |
Build a Riemann window.
See:
A. D. Poularikas, "Handbook of Formulas and Tables for Signal Processing," Springer, Oct 28, 1998
ntaps | Number of coefficients in the window. |
|
static |