[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] Interpolation and filtering
From: |
Eric Blossom |
Subject: |
Re: [Discuss-gnuradio] Interpolation and filtering |
Date: |
Thu, 4 Jun 2009 10:59:25 -0700 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
On Wed, Jun 03, 2009 at 05:42:48PM +0530, Ravishankar. M wrote:
> 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][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).
Step (1) initializes an STL vector of float using the values from
taps[i][0], ..., taps[i][NTAPS-1]. See any C++ book and/or STL guide
for additional help.
> 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
contained in gnuradio-core/src/gen_interpolator_taps.
interpolator_taps.h contains the taps for NSTEPS filters, each of
which has NTAPS taps.
For more details on the technique, please see "Digital Communication
Receivers: Synchronization, Channel Estimation and Signal Processing"
by Meyr, Moeneclaey and Fechtel, pages 505 to 513.
Eric