discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Interest in beamforming and GNSS receivers


From: Martin Dvh
Subject: Re: [Discuss-gnuradio] Interest in beamforming and GNSS receivers
Date: Thu, 31 Jan 2008 02:32:48 +0100
User-agent: Icedove 1.5.0.14pre (X11/20071018)

Carles Fernandez wrote:
> Hi everybody,
> 
> I discovered GNU Radio few months ago, in a before-go-to-bed surfing. I
> found it very interesting, but complicated because of my poor skills in
> programming Python or C++. I'm doing research on Global Navigation Satellite
> Systems (GNSS) receivers, and I'm used to code everything in Matlab. Night
> after night, I've been browsing the documentation and making humble steps: I
> installed Ubuntu on my laptop, followed the -excellent, also for dummies
> like me- guide for installing all the software, read diagonally the
> documentation and played with sample codes. Some Hello Worlds, some problems
> with the audio module, getting used to read the mailing list, feeling
> astonished by the intense activity of this community... nothing new, I
> guess.
> 
> Now I want to take it more seriously. I've seen that both python and c++
> have very well done matrix algebra libraries, and that's exactly what I need
> for my research (you can call me naive). I would like to implement a GNSS
> receiver (in the wide sense) based on an antenna array and play with
> beamforming algorithms and weird RF front-end architectures (direct RF, IF
> sampling, etc). My main concern is synchronization, concretely I want to
> implement some signal processing algorithms in a real receiver in order to
> assess their impact in the whole system, testing them with real data. I've
> been working in the development of some algorithms that -theoretically-
> performs better in multipath environments, but I want to see if this is true
> beyond classical academic benchmarks.
> 
> What is the state of GNSS receivers development in GNU Radio? I have found
> some expressions of interest in the Internet, but nothing concrete. I'm
> willing to start it from the scratch, but it is nonsense to reinvent the
> wheel. I would like to put in contact with other people interested on these
> topics. Taking advantage of your patience, I have some other questions (and
> you will see my newbie approach):
> 
> - I've seen some statements about "beamforming is possible". To what extend?
> I'm trying to understand the multi-antenna code example, but it is possible
> to use the four ADC at the same time?
Yes.
> How well are they synchronized?
They run off the same 64 MHz clock, so are synchronised.
I have even used two connected USRPs running of the same clock (one is master 
and exports its clock to the slave USRP)
(You use an additional flatcable between the USRPS and an align software block 
in gnuradio which aligns the samples)
This gives you 8 ADCs. This means 8 real channels or 4 complex channels.

I used this setup for a phase array with 4 DBSRX daughterboards.
(DBSX daughterboards use complex sampling so they need two ADCs)
DBSRX boards also support the GPS frequencies and are a lot cheaper, so you 
might want to consider them.
But they are receive only.

You can even go higher and connect 4, 8 or 16 USRPS.

> it is
> possible to compute the weight values in software and perform the
> multiplication in the FPGA at real time?
You could do that, but that means extra multipliers in the FPGA, which take up 
resources.
You could also do the multiplication in software, but then you have several 
datastreams from the USRP (which could saturate the USB connection
when using a high datarate).
(You can do maximal 4 receive streams from the USRP)
> There is any other major bottleneck
> than algebraic weight computation time?
You have to make sure the LO's from the frontends are synchronised. This is the 
case with the RFX1200. It uses the USRP clock as reference.
You also might need a more stable and/or precise (external) clock. the current 
clock is 15 ppm (from the top of my head). I don't know the exact
phase-noise figures.
You also might need to put good low-noise LNAs in front of the RFX1200 or the 
DBSRX.

> - My first target is a "traditional" L1 C/A code GPS receiver. I guess that
> I can choose between RFX1200 and a BasicRx with an external front-end. Have
> someone worked in the connection of GNU Radio with gpstk?
> 
> - It is 32 MHz the maximum bandwidth available?
In theory you could have 64 Mhz bandwidth when using complex sampling (the 
RFX1200 does this).
This uses two ADCs for one frontend (one for the I and one for the Q channel)
Your frontend must support this analog bandwidth of course. The RFX1200 has 
filtering which limits the bandwidth to about 25 MHz. You could
change the filtering to widen it.
This is a bit dangerous however because any remaining signals outside the 64 
MHz band will fold around the niquist freq.

This 64 MHz bandwidth is not transportable to the host PC with the current 
supported resolutions (8 bit and 16 bit)
You have a maximum USB throughput of 32 MByte/sec. Which means 8 Mhz bandwidth 
with 16 bit resolution and 16 MHz bandwidth with 8 bit resolution.
When you implement verilog code to reduce the resolution to 4 or 2 bit you 
would have 32 or 64 MHz bandwidth, but only for a single channel.
When you implement the despreading in the FPGA you would not have this problem. 
(datarate goes way down after despreading)

> Will the USRP 2.0 increase
> this bandwidth?
Yes, its ADCs run at a higher freq, I don't remember if it was 80 or 100 
Msamples/sec.

Its connection to the host PC is Gbit ethernet. This will increase the maximum 
bandwidth which you can transfer to the host-PC.

> It is possible to decrease the resolution of the ADCs
You cannot decrease the resolution of the ADCs itsself, but you can implement 
verilog code for the FPGA which reduces the resolution before it
is send to the host-PC.

> and/or
> increase their sampling frequency?
No.
> 
> - I also would like to work on the Galileo signal structure and the new L2CS
> GPS signal, mostly on the correlators. I have a background on signal
> processing, but I'm strongly matlab-shaped in what about programming is
> concerned. I'm willing to learn, but am I pointing to the right direction?
> 
> 
> If someone could enlighten me in some of this questions, it would be greatly
> appreciated. Sorry for the long text.

I hope this helped,

Martin Dudok van Heel

> 
> Best regards,
> Carles Fernandez
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio





reply via email to

[Prev in Thread] Current Thread [Next in Thread]