Forum: GNU Radio RRC Polyphase Filter in generic modulator

Posted by Almohanad Fayez (Guest)
on 2013-02-22 03:00
(Received via mailing list)
I've been trying to understand what's happening under the hood with the
polyphase filter bank in the generic_mod_demod.py.

Here's what I think is happening, since nfilt=32 which is also used the
sampling rate of the firdes.root_raised_cosine filter means that the
highest rate the polyphase filter will see is an interpolation factor of 
32
from the basic inputted signal sampling frequency?

while pfb.arb_resampler_ccf has a sampling rate of samples_per_symbol 
which
in the default case is =2 ... does this mean that the polyphase filter 
is
interpolating by a factor of 2?

If I am inputting data at a sampling rate of 16kHz and I'm trying to
interpolate them to 256kHz before sending them to the user how is the
256kHz and the desired interpolation factor of 16 taken into account in 
the
RRC filter in the generic modulator block.

I've read the gnuradio pfb page but I think I'm missing something 
important
here.


Thanks
Posted by Martin Braun (CEL) (Guest)
on 2013-02-22 08:40
(Received via mailing list)
Almohanad,

perhaps the examples in gr-digital/examples/demod are more suitable to
understand the internals.

A couple of notes:


On Thu, Feb 21, 2013 at 08:58:42PM -0500, Almohanad Fayez wrote:
> I've been trying to understand what's happening under the hood with the
> polyphase filter bank in the generic_mod_demod.py. 
>
>
> Here's what I think is happening, since nfilt=32 which is also used the
> sampling rate of the firdes.root_raised_cosine filter means that the highest
> rate the polyphase filter will see is an interpolation factor of 32 from the
> basic inputted signal sampling frequency?

PFB filter taps operate on what you could think of as 'fractional'
time, i.e. the sampling time is 1/32th (or whatever) of the original
sampling time. If you have a cutoff frequency in your low pass, that
must be taken care of in the filter taps (i.e. reduced by factor 32).
If you're specifying absolute frequencies, just increase the sampling
frequency (hm, I'm not sure this is really clear...).

> the default case is =2 ... does this mean that the polyphase filter is
> interpolating by a factor of 2? 

When going from symbols to samples, you always have to interpolate.
Usual values are 2 (as used here) or 4.

> If I am inputting data at a sampling rate of 16kHz and I'm trying to
> interpolate them to 256kHz before sending them to the user how is the 256kHz
> and the desired interpolation factor of 16 taken into account in the RRC filter
> in the generic modulator block.

I don't understand this Q. The answer is probably, you'll need an extra
interpolation block, depending on how your FG looks like.

> I've read the gnuradio pfb page but I think I'm missing something important
> here.

Just to be clear, you do know what an FIR does and how filter taps are
defined? Or is this the information you're lacking?

MB

--
Karlsruhe Institute of Technology (KIT)
Communications Engineering Lab (CEL)

Dipl.-Ing. Martin Braun
Research Associate

Kaiserstraße 12
Building 05.01
76131 Karlsruhe

Phone: +49 721 608-43790
Fax: +49 721 608-46071
www.cel.kit.edu

KIT -- University of the State of Baden-Württemberg and
National Laboratory of the Helmholtz Association
Posted by Almohanad Fayez (Guest)
on 2013-02-22 15:30
(Received via mailing list)
Thanks martin for your explanation.  I modified the dbpsk_loopback.grc
example to where my input sampling frequency is 16khz and instead of
looping back i'm using a uhd sink block with a sampling rate of 256khz.
Looking at the constellation on my spectrum analyzer i'm getting a dbpsk
signal with a symbol rate of 128khz.

Since the flowgraph seems to be working i'm expecting an interpolation
factor of 16 somewhere i originally was trying to do it with a FIR 
filter
before sending it to the usrp but then i found out that modulation block
itself has an internal rrc filter.  Now I am trying to figure out where 
the
interpolation factor of 16 is occurring in the polyphase filter.

I'm confused how things are working without an explicit interpolation
factor of 16.  I'm not sure if the issue is my lack of understanding of
polyphase filters or I didn't see where the interpolation factor is
calculated internally.

Thanks
Posted by Tom Rondeau (Guest)
on 2013-02-22 15:36
(Received via mailing list)
On Fri, Feb 22, 2013 at 9:29 AM, Almohanad Fayez
<almohanad.fayez@gmail.com> wrote:
> interpolation factor of 16 is occurring in the polyphase filter.
>
> I'm confused how things are working without an explicit interpolation factor
> of 16.  I'm not sure if the issue is my lack of understanding of polyphase
> filters or I didn't see where the interpolation factor is calculated
> internally.
>
> Thanks


How many samples/symbol are you using? And I would actually print this
number out from inside generic_mod_demod.py. There's some calculations
that are done early on to help you match your specified bit rate with
the sample rate required by the USRP (if you ask for 16 kbps, it will
automatically set the sps high to match what the USRP tells you it's
closest sample rate is).

Tom
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.