GNU Radio Signal Generator GUI

with auto-duc automatic center frequency tracking, allows you to just set absolute frequency and go.




usrp_siggen_gui.py The code so far.
It needs these green numerals

Screenshot of siggen GUI alongside the hf-explorer - signal generator is creating a signal at 3949Khz, looped back at the usrp with an analog physical external coax between basic-RX and basic-TX daughterboards, and received with hf_explorer_11 tuned to 3950Khz lower-sideband, generating a 1khz audio tone:






Operating notes: Frequency is set with a slider (very coarse), thumbwheels, spin control buttons, typing frequency into spin control or spinning a powermate knob. The GUI is based on gnuradio-examples/python/usrp/usrp_siggen.py but the definition of frequency is different. Here frequency is absolute, not relative to the digital-upconverter (DUC) center. usrp_siggen_gui.py takes the same command line arguments as usrp_siggen.py. Once the gui is running you can press the auto-duc button to automatically set the center frequency appropriate for the given interpolation and requested output frequency, then press run to start the signal generator. DUC center, frequency and amplitude can be changed with the generator running. Waveform (sine, random gaussian or uniform) or interpolation will stop the generator to effect changes and you have to press 'run' again. With auto-DUC on, you can change frequency and the DUC center frequency will automatically track with appropriate values. If output becomes corrupted, which can happen if another gnuradio application is started with the generator running, just press 'run' twice to stop and then rebuild/restart the flow graph.


Wow, playing around with the siggen and the usrp_scope.py you can get some really artistic dsp effects, like playing with two signal generators making Lissajous figures on a crt in the old analog days.





The one just above slowly rotates the 4 point sine waves in a smooth undulating pattern when the frequency is set just right, at 199,973hz on the siggen and 5uSec/div on the scope.