# Interpolation and filtering

Hello all,

I have two interpolation and filtering related queries in
“gri_mmse_fir_interpolator_cc.cc”.

1. 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],
``````

&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?

1. 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”?

Regards

Ravi

On Wed, Jun 03, 2009 at 05:42:48PM +0530, Ravishankar. M wrote:

{
filters[i] = gr_fir_util::create_gr_fir_ccf
(t);----------------------------------------------------(2)

}

}

Can you let me know what is performed in steps (1) and (2).

Step (1) initializes an STL vector of float using the values from
taps[i], …, taps[i][NTAPS-1]. See any C++ book and/or STL guide

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?

Step(2) is not designing a filter, it is instantiating a filter that
uses the taps from vector t above.

The values of the taps comes from the “interpolator_taps.h” include
file. They were designed using the non-linear optimization code