Sunday 17 August 2014

HackRF

My HackRF SDR arrived on Friday and I had a little time to play with it yesterday. Here's a picture of what the commercial product looks like:
To see what the performance is like I attached my 4-element yagi to a small preamp (to overcome the 15m of cable loss) and fed the output to a MiniCircuits ZFSC-2-1splitter which fed both a HackRF and a RTLSDR dongle. The antenna was pointed in roughly a SW direction (and vertical polarisation). This allows me to pick up both the GB3VHF beacon and the GRAVES signal (via scattering off meteors etc as I've discussed previously) in the same 2MHz passband.

Setting up was easy enough - I'm using my own GNUradio scripts and the gr-osmocom driver (which I compiled from git). I just had to install the udev scripts (to make it accessible to non-root users) and I needed a frequency correction of -11ppm due to the offset of about 1600Hz I found when looking at GB3VHF.

Looking at the stability of the system by looking at the received frequency for GB3VHF shows:
HackRF

RTLSDR
As can be seen from the above plots the HackRF is much more stable than the RTLSDR (which could also double in function as a thermometer!). The SNR for both devices is about the same.

For these tests I'm using gains of RF=0, IF=24 & BB=24. If I used less then I start to see a reduction in the SNR. One thing I have noticed is if I use more gain than 0,24,24 I start to see more spurious signals appearing - i.e. signals which appear strongly in the HackRF spectrum, but not in the RTLSDR spectrum. Even when I turned the gain down to 0,24,24 I still saw the odd signal, for example:
HackRF

RTLSDR
You can see that there is signal breakthrough occurring at about position 2000Hz, 1900 (time 'pixels') - along with a number of meteor detecions later on. I'm not sure what frequency is causing this but presumably it can be reduced by an external filter (I'm assuming its not an 'in-band' signal but a result of the complex RF chain before the ADC). I shall be investigating this further, but at least it does not occur too often - less than once every few hours or so.

Over the next few weeks I'll be looking at other aspects of the HackRF, especially its ability to receive up to 6GHz.

My multichannel RTLSDR has stalled a little of late - I'm having difficulties with the PCB version of the frequency tripler - the veroboard version was causing wideband noise however the PCB version doesn't make enough drive to power 2 RTLSDR dongles. One thing I'll hopefully be trying later this year is using 2 HackRF's with their built in external clock input/output to see how well they perform as a coherent multichannel receiver.


Sunday 16 March 2014

Bistatic Radar Results

Below is an example of what I can now get out of my radar. The video show a bunch of frames, each about 1s in real time, of range (vertical, about 0 - 70km path length difference) against Doppler (which goes from around -350m/s to +350m/s). Visible are a bunch of aircraft which all go from positive Doppler to negative as expected.


There's lots more experimentation to do with regards to frame rates and pulse length (how long to do the autocorrelation over). Hopefully the data I recorded also had a pass of ISS in it, so it would be good to search for that.


Update:
It looks like the video gets compressed to nothing when its uploaded, I'll sort out a better way to show it....

Update 2:  Lets see if this works better....
Hmmm.....not really....

Coherent Receiver

For the last couple of months I've been trying to put together a 2 channel coherent receiver. For this I'm using a 9.6MHz TXCO oscillator followed by a simple tripler (from the bottom of this page). This gives me the 28.8MHz clock signal that's required by the RTLSDR dongle. I've then taken 2 RTLSDR dongles, desoldered their crystals and replace with a coax feed from the tripler. I should then have 2 receive channels which should be always in phase with each other, and due to the use of a TXCO should not drift (too much!) with temperature.

It all seems to work well - by which I mean if I cross-correlate the signals from both receivers I get something which looks like:
which shows that the 2 channels are very correlated (the peak isn't at zero as the dongles aren't started at exactly the same time).

However, when I look in detail I see that I'm actually dropping samples - every so often the peak will shift by around 100-1000 samples. To figure out what is happening I now have each dongle in a different machine which has certainly reduced the occurrence of the drop-outs, but they still occur (the drop-out rate went from around once every minute or two, to once an hour). I need to see what I can do about this (better disk drive, update to bios, tweak USB settings somewhere) - but I'm not sure at the moment where to start (with spending lots of money!).

I'm doing this to make a simple passive bistatic radar using DAB radio as the illuminator - mainly to look at meteors and perhaps satellites (but it should also pick up planes). This is currently the sort of output I get - range is up and down and Doppler shift is left to right.


A lot of the things which are visible in this are just artefacts from structure that the format of the DAB signal. I'm in the process of verify some of the signals I think I can see!

At the moment the engineering  is a bit poor, so the whole system works as a bit of a local jammer! Fortunately this isn't a problem at the DAB frequencies, but is at ~144MHz which makes it tricky to receive either GRAVES or the GB3VHF beacon. So the next step is to properly engineer the whole tripler/oscilator/dongle system into a well shielded box. I also want to increase the number of receive channels to 4 to allow me some amount of interferometric or beam forming capability. I've also started to look into using a SI5351C as the frequency driver which could make up to 8 frequency outputs from a TXCO or a rubidium clock. 

Sunday 15 December 2013

Observations of the Geminid Meteor Shower Using GRAVES

The Geminid meteor shower peaked on Friday night. Unfortunately I'm not yet in a position to be able to monitor GRAVES 24/7. So I was only able to start recording data from around 07:13 GMT the next morning (it was a Saturday and really hard to drag myself out of bed!). I used my usual setup of a 4 element yagi (vertical pol) orientated about SW in direction and 10 degrees above horizontal (on my wheelie bin!) with a preamp feeding my RTLSDR receiver. For the first couple of hours there was near constant meteor activity, but by lunchtime it had trailed off into normal levels. This can be seen from the following images:


Below are some (a very small fraction) of the events in much greater detail (in the following images the y-axis (time) is relative to the start of the block I reprocessed, not to the start of observation):






Its interesting to see that a number of the events have very complex Doppler profiles. I'll be starting to think about how to investigate this behaviour further over Xmas (multiple coherent antennas?....). I also think there must be a better way to present the data. The other thing I'm working on is an automatic detection & classification system - but that may take a little time.

I've not yet finished making the oscillator improvement to my RTLSDR dongles, so they still drift like crazy with temperature changes. I know there are other ways to improve the thermometer like behaviour - like stuffing them in a drainpipe filled with foam - but as this isn't (yet) a permanent set up its not practical solution. Using a new (external) oscillator with the dongles also may allow them to be phase locked to each other allowing phased arrays to be used.

Really looking forward to the next big meteor shower - especially if I've got my 24/7 monitoring working!

Saturday 30 November 2013

X-ray Telescope on a HAB

Readers of this blog are probably aware that I'm interested in launching an X-ray (or gamma-ray) telescope (XRT) on a high altitude balloon (HAB) in order to detect astronomical sources.The brightest source at gamma-ray (and certainly is one of the brightest at X-ray - perhaps about 50% as bright as GX5-1 in soft (2-30keV)  X-rays) is the Crab nebula/pulsar. Below is the combined 'best fit' spectra to a number of XRT missions:

This plot shows the Crab's characteristic 'power-law' spectrum and shows the typical photon flux observed for the 4 XRT missions which were used. From the graph it is clear that the place to be to get the most photons is in the soft x-ray region. (Note: I've only calculated the spectrum down to around 2keV to avoid absorption by interstellar Hydrogen which will start to significantly absorb lower energy photons). The graph is plotted on a log-log plot but perhaps I should have taken this advice - but I'd need a much bigger screen!
 
The flux calculated in the above plot is for the top of atmosphere, and a balloon will typically only get to around 30-40km in altitude - so how much will that change the flux levels? If I combine the above spectrum with the X-ray absorption data I've mentioned previously, I get the following plot:
I've highlighted the altitudes to which you could hope to get a balloon. As you can see there is a very strong absorption of soft x-rays in the atmosphere. So what does this all mean? If we could get a balloon up to, say, 30km, with a 4cm^2 detector and could detect between 2keV and 1Mev photons with a 100%  efficient detector, we would get a count rate of  0.06 counts/s. This is pretty low - we'd either have to stare for a very long time (which would be challenging for a number of reasons) or we need a much bigger detector (again, challenging). There is also the fact that we would be effectively looking through an optically think medium to observe the astronomical object which makes me uncomfortable. Another issue to consider is what noise level (background counts) should be expected.
 
So in summary some further work to determine background count levels, detector efficiency, detector weight, etc in order to roughly model the mass and performance of the XRT. For example, shielding can be used to reduce the background noise level, but what is the optimum amount or material. However, realistically it isn't looking too hopeful due to the low flux rate from the source and the (relatively!) low altitude of a balloon.

Sunday 13 October 2013

ISS/GRAVES, X-ray telescopes & things......

One quick observation I've noticed over the last week or so of measuring the returns from GRAVES via the ISS is that to get a strong signal I need ISS to be at 20 degree elevation angle. The pass yestersay at around 19:20 (local) I only got the following short detection:

In order to investigate why ISS was only detectable in a small amount of the pass I made the following graph:
The areas in blue are outside of the nominal azimuth & elevation pattern of the transmitter at GRAVES. Hence it is quite obvious why only a small part of the pass I managed to detect ISS. There was an earlier pass which had an elevation of 5 degrees to me here, which I didn't detect at all. If I make a plot for that pass then I get the following:

From the graph it is clear that ISS would have only been illuminated briefly and when combined with the extreme range (and local trees/houses/etc) would make it difficult to detect it.

The things I intend to investigate further are:
  1. If H-polarisation improves the signal-to-noise (ideally I'd do this using 2 identical sets of antennas and receivers but that would have to wait a while).
  2. Create a program which analyses the data collected and detects all the meteors/planes/etc and saves the 'interesting' data to be further analysed.
  3. Use the program I've developed to make the graphs above, be able to search for suitable times for me to attempt to detect the moon.
As an aside I've ordered the parts to make the frequency doubler which is necessary to improve the frequency stability of the RTLSDR dongles and hopefully allow me build a 2 (or maybe more) channel coherent receiver.

One of the other projects I'm currently looking at is building an X-ray telescope to be launched on a high altitude balloon. To be honest calling it an X-ray telescope is a bit grandiose, it'll be a 1 pixel detector! Anyway the first stage of the design process is to see what the atmospheric attenuation of X-rays is like. The graph below shows the altitude at which 0.5, 0.1 and 0.01 of the incident radiation is left.
The X-ray absorption data (for O2, N2, Ar) is from "AD-A278 139, NBS Circular 583" and the atmospheric model is from the C implementation of NRLMSISE-00 which returns the number density for O2, N2 & Ar. In order to check that I've not made any blunders, I compared with the only other X-ray atmospheric graph I could find here in fig 2.4, page 46. Although the line for 0.5 agrees well, the other lines do not. In order to double check my answers I tried using the classic 1976 atmospheric model (which just returns the density of air) and the X-ray absorption data for air. Using these new set of data I get a very similar graph to that above (and get very good agreement at sea level which I also check with NIST). I'm unsure how to proceed at the moment with this, but will start to look at some of the other issues, such as energy resolution, collimation, weight, power, etc.


Saturday 12 October 2013

Doppler corrections to the ISS/GRAVES data

In order to see if there is any additional ISAR signatures in the ISS reflections, I thought it would be a good idea to Doppler correct the data. This was easily done using the Doppler correction GnuRadio block I've already written for my GroundStation software I've described previously (and which is available here). I applied 2 corrections - one for the transmit path from Dijon and one for the receive path to my home. After applying these corrections I get the following waterfall plot:

It can be seen that compared to the 'raw' data (shown in here) there is a very significant reduction in the frequency shift of the signal. There is still some residual frequency fluctuations which I suspect are due to
  1. The poor stability of the receiver - its quite temperature sensitve
  2. Orbital modelling inaccuracies - I'm using a TLE from today and predicting where it was a week ago
  3. Timing - I don't have a time index into the raw data I record
  4. Atmospheric propagation
I don't think item 4 will have much of an effect. I roughly optimised the timing to minimise any drift - I should improve the capture flowgraph to improve its metadata capture (although I'm unsure how to determine latencies or if I even need to).

I think the bottom line is that I can do a reasonable job of performing the Doppler corrections, but there are no other signatures to observe. I should now do the calculations to see if its even possible to observe them!

For interest, below is a picture of my antenna set up - as you can see its hardly sophisticated!