Hi everyone,
I've been thinking about the PFB and its operations (match-filtering and interpolation in one go). From the source code of the PFB block
Lines 390 and 427, the match/diff filter output are
out[i + d_out_idx] = d_filters[d_filtnum].filter(&in[count + d_out_idx]);
gr_complex diff = d_diff_filters[d_filtnum].filter(&in[count]);
That is, the filtering operations produce a single symbol. Given that filters work on a block of samples, I was wondering how many samples are actually filtered in the case above. What becomes of the other output samples from the filter? Are they just discarded? Correct me if I'm wrong but shouldn't it be more efficient not to discard the extra samples produced by the filters? That way, we could "fix" the filter index (d_filtnum) for a block of the filter output vector? The transient filter index characteristics will then become a staircase as shown by my simulation results below.