Here is a basic diagram of how the device 'should' work:The band pass filters (BPF) only allow the desired frequency ranges to go into the amps and so makes them much more efficient, otherwise they would be trying to amplify all the local radio stations etc. The amps may or may not need to be cascaded and there may or may not need to be other building blocks in the set up.
Fortunately, at the moment at least, there is no complicated coding as the main variable gain amp can be controlled by using 6 digital pins on an Arduino in conjunction with a simple truth table. This will be explained a bit later on when I have actually got it to work (hopefully).
There are 2 'received signal strength indicator' blocks (RSSIs) which send analogue signals to the Arduino telling it how good or bad the signals on the two aerials are. If the external signal is good for some reason, for example if it's just started to rain, then the amp is turned down so as not to send very strong signals to the cell base station or to the phone. Simply turning up the gain to full can have serious side effects such as locking up the phone or, yes, locking up the cell base station, in which case you're in serious trouble!
There is a certain amount of risk in the project in that for one, it may just not work at all or two, that it may be too simplistic. Personally, I prefer option two and I'm fully prepared to go down a completely different route if necessary. If the project fails then as long as I know why it failed then I have learnt something!
In parallel with this 'build my own hardware' option, I am working on using a pre-built system, namely the LimeSDR transceiver. The main problem with this option is that, coming from a place of almost no previous experience of RF, this gadget currently seems incredibly complicated and it could well take several months just to learn how to use it. Undaunted by the challenge, I am inspired by the guys at Lime Microsystems in Guildford, UK ( http://www.limemicro.com/ ) who have been incredibly helpful. The key to success here seems to be to create software models in a system called 'Pothos' which is an excellent learning tool as it explains a lot of stuff really well and outputs a really useful log of what parameters are being changed in real time in the device. Limemicro has also helped me link an Arduino to their LimeSDR via SPI which enables, in theory, an Arduino Due to control the transceiver or at the very least, upload a predetermined set of register values.
Current chances of project success = 75%