GNU Radio 3.7.1 C++ API
|
Detects a plateau and marks the middle. More...
#include <plateau_detector_fb.h>
Public Types | |
typedef boost::shared_ptr < plateau_detector_fb > | sptr |
Static Public Member Functions | |
static sptr | make (int max_len, float threshold=0.9) |
Detects a plateau and marks the middle.
Detect a plateau of a-priori known height. Input is a stream of floats, the output is a stream of bytes. Whenever a plateau is detected, the middle of that plateau is marked with a '1' on the output stream (all other samples are left at zero).
You can use this in a Schmidl & Cox synchronisation algorithm to interpret the output of the normalized correlator. Just pass the length of the cyclic prefix (in samples) as the max_len parameter).
Unlike the peak detectors, you must the now the absolute height of the plateau. Whenever the amplitude exceeds the given threshold, it starts assuming the presence of a plateau.
An implicit hysteresis is provided by the fact that after detecting one plateau, it waits at least max_len samples before the next plateau can be detected.
static sptr gr::blocks::plateau_detector_fb::make | ( | int | max_len, |
float | threshold = 0.9 |
||
) | [static] |
max_len | Maximum length of the plateau |
threshold | Anything above this value is considered a plateau |