Hello all,
I have two interpolation and filtering related queries in
“gri_mmse_fir_interpolator_cc.cc”.
- In the code portion:
gri_mmse_fir_interpolator_cc::gri_mmse_fir_interpolator_cc ()
{
filters.resize (NSTEPS + 1);
for (int i = 0; i < NSTEPS + 1; i++){
std::vector<float> t (&taps[i][0],
&taps[i][NTAPS]);----------------------------------------(1)
filters[i] = gr_fir_util::create_gr_fir_ccf
(t);----------------------------------------------------(2)
}
}
Can you let me know what is performed in steps (1) and (2). In step (2),
filter is designed but I don’t understand the procedure behind the
design.
“Taps[][]” is a two dimensional array defined and provided values in
“interpolator_taps.h”. I don’t understand the step (1) of how the 2D
array
is used. Can anyone please provide their explanation involved in this
procedure?
- In the code portion:
gr_complex
gri_mmse_fir_interpolator_cc::interpolate (const gr_complex input[],
float
mu)
{
int imu = (int) rint (mu * NSTEPS);
assert (imu >= 0);
assert (imu <= NSTEPS);
gr_complex r = filters[imu]->filter
(input);------------------------------------------------------------------(1
)
return r;
}
What “filter” function is called in step (1)? How exactly is the
interpolation done and values returned using “filter”?
Thanks in advance.
Regards
Ravi