Ali, I think the example uses the generic_mod block <https://github.com/gnuradio/gnuradio/blob/main/gr-digital/python/digital/generic_mod_demod.py> inside. This block uses the polyphase arb resampler for antialiasing. The line that computes the rrc delay is here <https://github.com/gnuradio/gnuradio/blob/0becf06a397edc1b2dcf440785e40b73f76433ad/gr-digital/python/digital/generic_mod_demod.py#L146>. Briefly, for your example with sps = 2, it's (11 x 2 x 2 - 2) / 2 = 21. For sps = 4, (11 x 4 x 4 - 4) / 2 = 86. I don't know if this helps.
Jared. On Tue, Jan 10, 2023 at 6:08 PM Cinaed Simson <cinaed.sim...@gmail.com> wrote: > Hi Ali - your flowchart has no device and no throttle. You need to add a > throttle. > > And I don't the expertise or the time to look at the source code. > > So I'm punting back to the list. > > -- Cinaed > > > On 1/10/23 03:10, Ali G. Dezfuli wrote: > > Hi everybody,expertise > > > > I just want to know how the delay of the "Constellation Modulator" > > block in GRC is calculated. > > In fact, whether you set the block's last parameter "truncate filter > > transient" or not, a delay of 86 samples could be generated, no matter > > how many points are in the constellation. > > > > This magic number (i.e. 86) also appears in > > "linear_equalizer_compare.grc" example (in > > gr-digital/examples/equalizers in modulated_sync_word variable). > > > > I know this delay depends on the "samples per symbol" (sps) parameter > > and comes from the built-in pulse shaping with its default taps equal: > > firdes.root_raised_cosine(32, 32, 1.0, exess_bw, 32*11*sps) > > and with the following sps to delay relation: > > (sps=2, delay=21) > > (sps=4, delay=86) > > (sps=8, delay=348) > > etc. > > > > my GR version is: v3.11.0.0git-316-gc11667ef > > thank you all! > > >