GNU Radio 3.5.3.2 C++ API
|
#include <gr_cpm.h>
Public Types | |
enum | cpm_type { LRC, LSRC, LREC, TFM, GAUSSIAN, GENERIC = 999 } |
Static Public Member Functions | |
static std::vector< float > | phase_response (cpm_type type, unsigned samples_per_sym, unsigned L, double beta=0.3) |
Return the taps for an interpolating FIR filter (gr_interp_fir_filter_fff). |
enum gr_cpm::cpm_type |
static std::vector<float> gr_cpm::phase_response | ( | cpm_type | type, |
unsigned | samples_per_sym, | ||
unsigned | L, | ||
double | beta = 0.3 |
||
) | [static] |
Return the taps for an interpolating FIR filter (gr_interp_fir_filter_fff).
These taps represent the phase response for use in a CPM modulator, see also gr_cpmmod_bc.
type | The CPM type (Rectangular, Raised Cosine, Spectral Raised Cosine, Tamed FM or Gaussian). |
samples_per_sym | Samples per symbol. |
L | The length of the phase response in symbols. |
beta | For Spectral Raised Cosine, this is the rolloff factor. For Gaussian phase responses, this the 3dB-time-bandwidth product. For all other cases, it is ignored. |
Output: returns a vector of length K = samples_per_sym
x L
. This can be used directly in an interpolating FIR filter such as gr_interp_fir_filter_fff with interpolation factor samples_per_sym
.
All phase responses are normalised s.t. ; this will cause a maximum phase change of between two symbols, where h is the modulation index.
The following phase responses can be generated:
A short description of all these phase responses can be found in [1].
[1]: Anderson, Aulin and Sundberg; Digital Phase Modulation