Return the taps for an interpolating FIR filter (gr::filter::interp_fir_filter_fff). More...
#include <gnuradio/analog/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::filter::interp_fir_filter_fff). More... | |
Return the taps for an interpolating FIR filter (gr::filter::interp_fir_filter_fff).
|
static |
Return the taps for an interpolating FIR filter (gr::filter::interp_fir_filter_fff).
These taps represent the phase response \(g(k)\) 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. \( \sum_{k=0}^{K-1} g(k) = 1\); this will cause a maximum phase change of \( h \cdot \pi\) 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