Root Raised Cosine Filter

From GNU Radio
Revision as of 20:54, 30 December 2020 by Skintigh (talk | contribs) (Added section with working example)
Jump to navigation Jump to search


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) 

Source: https://github.com/gnuradio/gnuradio/blob/4849af9ad83bc16d21e2c63ab95bab1755289c2f/gr-digital/python/digital/generic_mod_demod.py#L126

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)

as in https://github.com/gnuradio/gnuradio/blob/94d52b9ac28739a4b9ddf1a66c45d0bf5ea19e87/gr-digital/python/digital/qa_pfb_clock_sync.py


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

Insert description of flowgraph here, then show a screenshot of the flowgraph and the output if there is an interesting GUI. Currently we have no standard method of uploading the actual flowgraph to the wiki or git repo, unfortunately. The plan is to have an example flowgraph showing how the block might be used, for every block, and the flowgraphs will live in the git repo.

Source Files

C++ files
TODO
Header files
TODO
Public header files
Taps creation
Filter definition
Block definition
[1]