In general, a software-defined radio and one implemented in hardware will have much the same signal paths, but how they are broken down into individual “blocks” will vary. In your case, following the main signal path from left to right:
It looks like everything on the main path to the left of “Log Detect” is a conventional superheterodyne receiver. These are mostly parts that your USRP SDR hardware will replace. Everything after it would be be implemented in software. The I²C bus is presumably used for tuning and instead you will just use the methods of the USRP source block to change frequency. (Internally, this corresponds to communicating with the USRP over USB, but that is not something your code interacts with directly.)
The next step will be to apply the appropriate frequency shift and low-pass filter (corresponding to the BPF in the diagram) to extract the actual desired signal. The USRP has its own filtering but it will not be optimized for your particular signal. You can read about these steps in any tutorial for building receivers in GNU Radio.
At this point you will also want to downsample (a.k.a. decimate) the signal down to the lowest sample rate that still preserves the signal features you care about without consuming too much CPU power. Again, this should be covered in any good SDR tutorial. You should look at how the existing microcontroller code referenced in that diagram operates — in particular, how often the ADC is sampled.
Now we get to things specific to your application. The GNU Radio software analogue of a log detector is the Complex to Mag^2 (gnuradio.blocks.complex_to_mag_squared
) block followed by the Log10 (gnuradio.blocks.nlog10_ff
) block.
The next block in your diagram is an ADC (which function has already been handled by the USRP, of course) inside a microcontroller. The diagram doesn't tell us what the program does, so you'll have to look into that yourself. If it's standard straightforward DSP operations, then you can likely use existing GNU Radio blocks, but you may have to write a custom block. Or, you can have the signal exit GNU Radio (via some sink block) to another program or non-GR code that implements the same algorithm the microcontroller does to produce the output to the "Focal Plane Unit".
Everything else on the diagram — the “Clock Buffer”, the low pass filters, and voltage regulators — is just supporting hardware that is entirely irrelevant to the actual signal processing task.
So, that's everything that we can conclude just from the diagram you provided.
I strongly recommend that you find a couple tutorials on building basic software-defined receivers with GNU Radio. Even though they won't be dealing with your particular radio protocol, they will introduce the fundamental concepts of A/D conversion, quadrature, filtering, and downsampling. They're not very complex at all and once you understand those things, your problem and solution will make much more sense to you.