summaryrefslogtreecommitdiff
path: root/gr-fft/lib/window.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gr-fft/lib/window.cc')
-rw-r--r--gr-fft/lib/window.cc19
1 files changed, 18 insertions, 1 deletions
diff --git a/gr-fft/lib/window.cc b/gr-fft/lib/window.cc
index 1610b46f5d..015e2d9943 100644
--- a/gr-fft/lib/window.cc
+++ b/gr-fft/lib/window.cc
@@ -74,7 +74,24 @@ namespace gr {
return 1.0/(ntaps >> 1);
}
- std::vector<float>
+ double
+ window::max_attenuation(win_type type, double beta)
+ {
+ switch(type) {
+ case(WIN_HAMMING): return 53; break;
+ case(WIN_HANN): return 44; break;
+ case(WIN_BLACKMAN): return 74; break;
+ case(WIN_RECTANGULAR): return 21; break;
+ case(WIN_KAISER): return (beta/0.1102 + 8.7); break;
+ case(WIN_BLACKMAN_hARRIS): return 92; break;
+ case(WIN_BARTLETT): return 27; break;
+ case(WIN_FLATTOP): return 93; break;
+ default:
+ throw std::out_of_range("window::max_attenuation: unknown window type provided.");
+ }
+ }
+
+ std::vector<float>
window::coswindow(int ntaps, float c0, float c1, float c2)
{
std::vector<float> taps(ntaps);