Changing channel width and its relation with interpolation/decimation rate and bit rate

Folks,

I am trying to change the channel width used for a transmission using
the benchmark_tx.py program. I use the default modulation scheme
(gmsk) and on the receive side, I am running the usrp_fft.py to see
the spectrum and understand how wide the channel is used.

If I use an interpolation rate of 128, I see a channel width of 500kHz
showing high energy in the spectrum. Similarly, if I change it to 64,
I see about 1MHz occupied. I read in one of the docs that the
interpolation rate could be varied from [4, 512] and it should be a
multiple of 4. I tried it but I was able to vary only from 16 to 512.
I notice the channel width = 64MHz/interpolation rate. Please correct
me if I am wrong. The bits/symbol always seems to be 1, so if I use a
500KHz channel, the bit rate is set to 500Kbps.

On the receive side, if use the benchmark_rx.py, a decimation rate of
64 corresponds to 500Kbps bitrate while on the transmit side an
interpolation rate of 128 corresponds to 500kbps. Also, if I fix the
bitrate to 500kbps, I do not see the relation channel width =
64Mhz/interpolation rate to hold. Channel width seems to be 500kHz for
different interpolation rates.

It would be very helpful if someone can help me understand the
relationship between channel width, bit rate and the
interpolation/decimation rates. I want to be able tune the channel
width for each transmission dynamically by playing with these
parameters. Thanks a lot for your time and consideration.

-Anand
PhD candidate,
Wireless Networking and Simulations Lab,
Stony Brook University.

On Wed, Sep 3, 2008 at 5:12 PM, Anand Prabhu Subramanian
[email protected] wrote:

interpolation rate could be varied from [4, 512] and it should be a
different interpolation rates.

It would be very helpful if someone can help me understand the
relationship between channel width, bit rate and the
interpolation/decimation rates. I want to be able tune the channel
width for each transmission dynamically by playing with these
parameters. Thanks a lot for your time and consideration.

You’re close. The USRP always transmits samples at a rate of 128Msps
(Mega-samples/second). The USRP samples at 64Msps. GMSK has a
spectral efficiency of 1 bit/sec/Hz. At 1 sample/symbol and an
interpolation rate of 128, approximately 1MHz worth of bandwidth is
used. If you are running at 2 samples/symbol, you are running at
500kHz worth of bandwidth.

Working through the math for TX, you come up with 128Msps / 128
(interpolation rate) / 2 samples/symbol = 500ksps (kilosymbols/sec).

On the receive side, just work in that samples are at 64Msps instead of
128.

The actual bandwidth of your signal is determined by the modulation
type and the type of filtering done beforehand. GMSK only rotates
~pi/4 for every bit, so +/-(symbol_rate/2) ends up being your
bandwidth. CPM is all about trajectory, but that’s a little
off-topic.

Hope this was helpful.

Brian

Dear Brain,

Thank you very much for the reply. I didnt get this point.

GMSK only rotates
~pi/4 for every bit, so +/-(symbol_rate/2) ends up being your
bandwidth.

Can you please explain it a little bit. I am sorry my DSP background
is very less. I am still learning. Thanks for your help.

-Anand
PhD Candidate,
Wireless Networking and Simulations Lab,
Stony Brook University