Re: [USRP-users] USRP X300 and phase alignment

2018-06-15 Thread Derek Kozel via USRP-users
Hello Alice,

A single 10 GigE connection should be able to carry two channels of 100
MS/s. Here is a link to some advice for tuning the Ethernet performance of
your computer.
http://files.ettus.com/manual/page_transport.html

Your current program has no use of timed commands so the phase offset will
be random for each tune. Here is the manual page on synchronization. You
will need to add the commands to your program.
http://files.ettus.com/manual/page_sync.html

Regards,
Derek

On Fri, Jun 15, 2018 at 12:33 PM, Alice Lo Valvo 
wrote:

> Hi Derek,
>
> thank you for your answer. My answers are below.
>
> Il 15/06/18 13:08, Derek Kozel ha scritto:
>
> Hello Alice,
>
> I think you have two different issues. You should not be encountering Late
> errors. How do you schedule your timed commands? What connection to the
> host computer are you using? 10 GigE should be able to handle 100 MS/s, are
> you using 1 GigE?
>
> I attached the python file that I created. I use 10GigE, but the channel
> bandwidth for each channel is 100MHz.. should't it be a problem?
>
> Separately, there will always be a phase offset between channels, even
> when using timed commands. Which daughterboards are you using? The
> requirements to achieve a repeatable phase offsets are different between
> boards.
>
> I'm using SBX 120...
>
> Regards,
> Alice
>
>
> Regards,
> Derek
>
> On Fri, Jun 15, 2018 at 11:13 AM, Alice Lo Valvo via USRP-users <
> usrp-users@lists.ettus.com> wrote:
>
>> Hi all,
>> I have to transmit two flows with the same "start trigger".
>> I used one USRP X300 with two channels, but because of the large
>> bandwidth (100MHz), there is the L error.
>> So, I tried to use two USRPs X300 with the OctoClock, but when I record
>> the transmitted signal they are not synchronize.. One signal starts before
>> the other one.. there is a costant offset phase, I think.
>> Any suggestion?
>>
>> Thank you in advance,
>>
>> Alice
>>
>>
>> ___
>> USRP-users mailing list
>> USRP-users@lists.ettus.com
>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>>
>
>
>
___
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com


Re: [USRP-users] USRP X300 and phase alignment

2018-06-15 Thread Alice Lo Valvo via USRP-users

Hi Derek,

thank you for your answer. My answers are below.


Il 15/06/18 13:08, Derek Kozel ha scritto:

Hello Alice,

I think you have two different issues. You should not be encountering 
Late errors. How do you schedule your timed commands? What connection 
to the host computer are you using? 10 GigE should be able to handle 
100 MS/s, are you using 1 GigE?


I attached the python file that I created. I use 10GigE, but the channel 
bandwidth for each channel is 100MHz.. should't it be a problem?
Separately, there will always be a phase offset between channels, even 
when using timed commands. Which daughterboards are you using? The 
requirements to achieve a repeatable phase offsets are different 
between boards.

I'm using SBX 120...

Regards,
Alice


Regards,
Derek

On Fri, Jun 15, 2018 at 11:13 AM, Alice Lo Valvo via USRP-users 
mailto:usrp-users@lists.ettus.com>> wrote:


Hi all,
I have to transmit two flows with the same "start trigger".
I used one USRP X300 with two channels, but because of the large
bandwidth (100MHz), there is the L error.
So, I tried to use two USRPs X300 with the OctoClock, but when I
record the transmitted signal they are not synchronize.. One
signal starts before the other one.. there is a costant offset
phase, I think.
Any suggestion?

Thank you in advance,

Alice


___
USRP-users mailing list
USRP-users@lists.ettus.com 
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com





#!/usr/bin/env python2
# -*- coding: utf-8 -*-
##
# GNU Radio Python Flow Graph
# Title: Top Block
# Generated: Wed May 16 10:07:59 2018
##

from gnuradio import blocks
from gnuradio import eng_notation
from gnuradio import gr
from gnuradio import uhd
from gnuradio.eng_option import eng_option
from gnuradio.filter import firdes
from optparse import OptionParser
import optparse
import time
import sys


class top_block(gr.top_block):

def __init__(self,set_gain,input_file):
gr.top_block.__init__(self, "Top Block")

##
# Variables
##
	self.samp_rate = samp_rate = 1
self.addr = addr = "addr=192.168.40.2"
	self.gain = gain = set_gain


##
# Blocks
##
self.uhd_usrp_sink_0_0 = uhd.usrp_sink(
	",".join((addr, '')),
	uhd.stream_args(
		cpu_format="fc32",
		channels=range(2),
	),
)
self.uhd_usrp_sink_0_0.set_samp_rate(samp_rate)
self.uhd_usrp_sink_0_0.set_center_freq(500e6, 0)
self.uhd_usrp_sink_0_0.set_gain(gain, 0)
self.uhd_usrp_sink_0_0.set_antenna('TX/RX', 0)
	self.uhd_usrp_sink_0_0.set_bandwidth(samp_rate, 0)
self.uhd_usrp_sink_0_0.set_center_freq(500e6, 1)
self.uhd_usrp_sink_0_0.set_gain(gain, 1)
self.uhd_usrp_sink_0_0.set_antenna('TX/RX', 1)
	self.uhd_usrp_sink_0_0.set_bandwidth(samp_rate, 1)
#self.blocks_file_source_0 = blocks.file_source(gr.sizeof_gr_complex*1, '/home/lab/jammer/signal_08', True)
	self.blocks_file_source_0 = blocks.file_source(gr.sizeof_gr_complex*1, input_file, True)
	self.blocks_file_source_0_0 = blocks.file_source(gr.sizeof_gr_complex*1, input_file, True)

##
# Connections
##
self.connect((self.blocks_file_source_0, 0), (self.uhd_usrp_sink_0_0, 0))
	self.connect((self.blocks_file_source_0_0, 0), (self.uhd_usrp_sink_0_0, 1))

def get_samp_rate(self):
return self.samp_rate

def set_samp_rate(self, samp_rate):
self.samp_rate = samp_rate
self.uhd_usrp_sink_0_0.set_samp_rate(self.samp_rate)
self.uhd_usrp_sink_0_0.set_bandwidth(self.samp_rate, 0)
self.uhd_usrp_sink_0_0.set_bandwidth(self.samp_rate, 1)

def get_addr(self):
return self.addr

def set_addr(self, addr):
self.addr = addr


def main(top_block_cls=top_block, options=None):

parser = optparse.OptionParser()

parser.add_option('-g',dest="gain",type="int")
parser.add_option('-i',dest="input")
option,remainder=parser.parse_args()

if option.gain is None:
	sys.stderr.write('You must specify the gain with -g GAIN\n')
	exit(1)

if option.input is None:
	sys.stderr.write('You must specify the path with -i /\n')
	exit(1)

tb = top_block_cls(option.gain,option.input)
tb.start()
 #   try:
  #  raw_input('Press Enter to quit: ')
   # except EOFError:
#pass
time.sleep(20)
tb.stop()

Re: [USRP-users] USRP X300 and phase alignment

2018-06-15 Thread Derek Kozel via USRP-users
Hello Alice,

I think you have two different issues. You should not be encountering Late
errors. How do you schedule your timed commands? What connection to the
host computer are you using? 10 GigE should be able to handle 100 MS/s, are
you using 1 GigE?

Separately, there will always be a phase offset between channels, even when
using timed commands. Which daughterboards are you using? The requirements
to achieve a repeatable phase offsets are different between boards.

Regards,
Derek

On Fri, Jun 15, 2018 at 11:13 AM, Alice Lo Valvo via USRP-users <
usrp-users@lists.ettus.com> wrote:

> Hi all,
> I have to transmit two flows with the same "start trigger".
> I used one USRP X300 with two channels, but because of the large bandwidth
> (100MHz), there is the L error.
> So, I tried to use two USRPs X300 with the OctoClock, but when I record
> the transmitted signal they are not synchronize.. One signal starts before
> the other one.. there is a costant offset phase, I think.
> Any suggestion?
>
> Thank you in advance,
>
> Alice
>
>
> ___
> USRP-users mailing list
> USRP-users@lists.ettus.com
> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>
___
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com