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