Root Raised Cosine Filter
The most common usage documented in the tutorials and examples is:
firdes.root_raised_cosine(nfilts, nfilts, 1.0/float(sps), 0.35, 11*sps*nfilts)
self.rrc_taps = filter.firdes.root_raised_cosine( nfilts, # gain nfilts, # sampling rate based on 32 filters in resampler 1.0, # symbol rate self._excess_bw, # excess bandwidth (roll-off factor) ntaps)
Note the sampling rate is not the sample_rate in the .grc file
Numerous block diagrams in this wiki use this block, unfortunately none of those examples include a .grc file so their usage is a mystery. However, the above form us used in the PSK tutorial and several other tutorials and examples. I could not find nor create a working example that conforms to the next section. Discussion from someone else's attempt: https://lists.gnu.org/archive/html/discuss-gnuradio/2018-05/msg00274.html
Another common usage is:
taps = filter.firdes.root_raised_cosine(nfilts, nfilts * sps, 1.0, excess_bw, 11*sps*nfilts)
This filter is a convenience wrapper for an fir filter and a firdes taps generating function.
Parameters
(R): Run-time adjustable
- Decimation
- Description of parameter, provide any tips or recommended values. Note that the name of the parameter above should match the param's label that shows up in grc (e.g. Sample Rate).
- Gain (R)
- Overall gain of filter (typically 1.0)
- Sample Rate (R)
- Sample rate in Hertz.
- Symbol Rate (R)
- Symbol rate, must be a factor of sample rate
- Alpha (R)
- Excess bandwidth factor
- Num Taps (R)
- Number of taps
Example Flowgraph
This flowgraph can be found at [1]. Two Root Raised Cosine Filters in series produce a Raised Cosine Filter which is used for keying waveform shaping, thereby reducing key clicks.
Source Files
- C++ files
- TODO
- Header files
- TODO
- Public header files
- Taps creation
- Filter definition
- Block definition
- [2]