Frequency dependant behaviour of wired transmission using USRP


I am currently doing a project at university on channel sounding. I have
been using pseudo-random noise and complex chirps as the base signals in
order to do this task. In order to get used to using the USRP, I have
been using a coaxial cable of around 3m connecting the two USRPs (on two
different computers). I am currently using the DC-30/40MHz
daughterboards for the initial test stage. I am using a very basic
transmission and receive structure. I write a file in MATLAB, generally
pseudo-random noise, read this in Python and then use it as a vector
source into the USRP. The transmit works fine and has been tested using
oscilloscopes etc. The received side takes the data into a complex file
sink. The receive end also takes in data well. I am running a NetBSD
system which has proven itself to work well.

When I look at the frequency content of the received data however I see
a strange tappering on the low/high frequencies sides of the signal,
almost as if the coaxial cable is applying a bandpass filter to the data
(I apply an FFT to the data on MATLAB after receiving it. For example I
take a 1000 chunk of the data, if the transmitted data was 1000 long, I
then take a complex fft.). The complex chirp and PR noise are both
spectrally flat and should not be changed drastically by the wired
channel. When I do a time domain cross correlation, I get nice
delta-esque peaks, which implies that the impulse response of the wired
channel is a delta (what I expect). Thus the frequency domain and time
domain descriptions are conflicting.

I have:

  • Checked this phenomenom at DC, still occurs
  • Occurs at 10MHz and 20MHz (the coaxial should surely work up into the
    GHz range)
  • Changed USRP, still occurs

I know:

  • The transmitted data definately has a flat spectral density at
  • The received signal is complex and seems to have been demodulated
    correctly (I take into account the frequency offset)
  • This channel shouldn’t be behaving like this!

Attached are the transmit/receive python files as well a few figures
showing this problem.

Thank you for your help in advance,

Harry Jones wrote:

source into the USRP. The transmit works fine and has been tested using
spectrally flat and should not be changed drastically by the wired

I believe you are seeing the rolloff of the CIC interpolator. If you
use a lower interpolation ratio in the FPGA and do some interpolation in
software, you should see it much flatter.

In any case, you can’t expect to use 100% of the nyquist bandwidth in
any real DSP system due to practical filter rolloff issues.


This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs