I have the setup where I send data via USRP Sink over an SDR and receive the response. However, this needs to be performed at different carrier frequencies, sequentially in time but continuously (the switching should be performed as fast as the SDR can settle reasonably well). The aggregated received data for all frequencies should be combined and used for further processing and eventually update a graph.
In a procedual language:
f = [ 300e6 400e6 500e6 800e6 ]; while(1) aggregate_data = ; for k=1:length(f) txdata = get_tx_datastream(); send_via_usrp(f(k), txdata); aggregate(:,k) = receive_via_usrp(f(k)); end processed_data = process_data(aggregate); update_graph(processed_data); end
Clearly in gnuradio companion, these would not be variables/vectors but data flows.
Is this something that can be implemented in gnuradio companion?
Also, I would need a similar architecture for calibration: At start (or better, when the user pushes a button), the system should acquire training data from which calibration values are obtained (e.g. obtain the phase rotation of the I/Q samples). These values should be stored (in a variable, temporary files etc). In non-calibration mode, the calibration data should be used in the signal flow (e.g. the phase rotation obtained during calibration should be divided out).