[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] patch to extended oscope to enable dualchan and c
From: |
Martin Dvh |
Subject: |
Re: [Discuss-gnuradio] patch to extended oscope to enable dualchan and complex mode on basicRX and basicTX |
Date: |
Mon, 29 Oct 2007 00:34:12 +0100 |
User-agent: |
Icedove 1.5.0.12 (X11/20070607) |
Eric Blossom wrote:
> On Fri, Oct 26, 2007 at 07:14:48PM +0200, Martin Dvh wrote:
>> Hi all,
>> inspired by the question of George Nychis I extended the usrp_oscope.py
>> script to enable dualchannel and complex mode for basicRX and LFRX.
>>
>> You can find a patch and the complete modified script at:
>> http://www.olifantasia.com/projects/gnuradio/mdvh/oscope_basicrx_dualchan/
>>
>> You can copy the new script or apply the patch to your current
>> gr-utils/src/usrp_oscope.py.
>> The patch should apply cleanly if you have version 3.1 of gnuradio.
>>
>>
>> There are two new commandline options:
>> -C, --basic-complex Use both inputs of a basicRX or LFRX as a single
>> Complex input channel
>> -D, --basic-dualchan Use both inputs of a basicRX or LFRX as seperate Real
>> input channels
>>
>> With --basic-complex both inputs of a basicRX or LFRX are enabled to form a
>> single complex channel (I=input A, Q=input B)
>> With --basic-dualchan both inputs are treated seperately and so you get two
>> input real channels. (I1=input A, Q1=0, I2=input B, Q2=0)
>>
>> The difference between the two options becomes clear when you set a nonzero
>> frequency.
>> With the dualchannel option you can set the frequence for each channel
>> seperately.
>> With the complex option you can set only one frequency. If you set this to
>> nonzero, this is only usefull if you actually have an I and Q signal
>> connected to both inputs.
>>
>>
>> Greetings,
>> Martin
>
> Thanks Martin!
>
> Can you please go ahead and commit your patch?
Done,
I think this is an improvement but maybe it can still be improved further.
The disadvantage of my current patch is that knowledge about daughterboards and
muxvalues is in the oscope script.
It is always better to have this info/knowledge in one place, and one place
only.
This would mean we would have to extend the code in gr-usrp.
What do you think about the following possble setup:
for basicRX and LFRX the subdev code could be extended the following way.
subdevspec A:0
use input A of daughteboard A as a real input iscomplex() should return False
subdevspec A:1
use input B of daughteboard A as a real input iscomplex() should return False
subdevspec A
use input A and B of daughteboard A as a complex input iscomplex() should
return True
(Note however this would change the API. At the moment you actually get A:0
when you specify A.
We could also do something like A:real (which would be an alias for A:0) and
A:complex which would give a complex input using both inputs.
It gets more complicated when you want to use multiple inputs as multiple
channels.
You would want to be able to call usrp.determine_rx_mux_value() with multiple
subdev specs
for example:
usrp.determine_rx_mux_value(self.u,
(options.rx_subdev_spec0,options.rx_subdev_spec1))
What do you think?
Martin
>
> Eric
>