#include <windows.h>
The Kaiser window (almost) maximises the energy in the main-lobe compared to the side-lobes.
Kaiser windows can be constructing using the shape-parameter (beta) or using the static with???()
methods.
Static Methods | |
static double | bandwidthToEnbw (double bandwidth, bool heuristicOptimal=false) |
Equivalent noise bandwidth (ENBW), a measure of frequency resolution. More... | |
Bandwidth methods | |
static Kaiser | withBandwidth (double bandwidth, bool heuristicOptimal=false) |
static double | bandwidthToBeta (double bandwidth, bool heuristicOptimal=false) |
Returns the Kaiser shape where the main lobe has the specified bandwidth (as a factor of 1/window-length). More... | |
static double | betaToBandwidth (double beta) |
Performance methods | |
static double | bandwidthToEnergyDb (double bandwidth, bool heuristicOptimal=false) |
Total energy ratio (in dB) between side-lobes and the main lobe. More... | |
static double | energyDbToBandwidth (double energyDb, bool heuristicOptimal=false) |
static double | bandwidthToPeakDb (double bandwidth, bool heuristicOptimal=false) |
Peak ratio (in dB) between side-lobes and the main lobe. More... | |
static double | peakDbToBandwidth (double peakDb, bool heuristicOptimal=false) |
Methods | |
Kaiser (double beta) | |
Set up a Kaiser window with a given shape. beta is pi*alpha (since there is ambiguity about shape parameters) More... | |
double | operator() (double unit) |
Return the window's value for position in the range [0, 1]. More... | |
template<typename Data > | |
void | fill (Data &&data, int size) const |
Fills an arbitrary container with a Kaiser window. More... | |
|
inline |
Set up a Kaiser window with a given shape. beta
is pi*alpha
(since there is ambiguity about shape parameters)
|
inlinestatic |
Returns the Kaiser shape where the main lobe has the specified bandwidth (as a factor of 1/window-length).
If heuristicOptimal
is enabled, the main lobe width is slightly wider, improving both the peak and total energy - see bandwidthToEnergyDb()
and bandwidthToPeakDb()
.
|
inlinestatic |
Equivalent noise bandwidth (ENBW), a measure of frequency resolution.
This approximation is accurate to ±0.05 up to a bandwidth of 22.
|
inlinestatic |
Total energy ratio (in dB) between side-lobes and the main lobe.
This function uses an approximation which is accurate to ±0.5dB for 2 ⩽ bandwidth ≤ 10, or 1 ⩽ bandwidth ≤ 10 when heuristicOptimal
is enabled.
|
inlinestatic |
Peak ratio (in dB) between side-lobes and the main lobe.
This function uses an approximation which is accurate to ±0.5dB for 2 ⩽ bandwidth ≤ 9, or 0.5 ⩽ bandwidth ≤ 9 when heuristicOptimal
is enabled.
|
inline |
Fills an arbitrary container with a Kaiser window.
|
inline |
Return the window's value for position in the range [0, 1].