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
on 2013-02-22 03:00
on 2013-02-22 08:40
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
on 2013-02-22 15:30
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
on 2013-02-22 15:36
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
Log in with Google account | Log in with Yahoo account
No account? Register here.