2 % Copyright 2001 Free Software Foundation, Inc.
4 % This file is part of GNU Radio
6 % GNU Radio is free software; you can redistribute it and/or modify
7 % it under the terms of the GNU General Public License as published by
8 % the Free Software Foundation; either version 3, or (at your option)
11 % GNU Radio is distributed in the hope that it will be useful,
12 % but WITHOUT ANY WARRANTY; without even the implied warranty of
13 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 % GNU General Public License for more details.
16 % You should have received a copy of the GNU General Public License
17 % along with GNU Radio; see the file COPYING. If not, write to
18 % the Free Software Foundation, Inc., 51 Franklin Street,
19 % Boston, MA 02110-1301, USA.
21 %% find the N-dB width of the given filter
22 %% E.g., to find the 3-dB width, use width = db_width (taps, -3.0)
23 %% the result is normalized to nyquist == 1
25 function width = db_width (taps, db)
26 [H,w] = freqz (taps, 1, 4096);
30 threshold = max_H * 10^(db/20);
31 if (min_H > threshold)
32 error ("The %g dB point is never reached", db);
34 above = Habs >= threshold;
35 width = sum(above) / length (above);