I have BPSK flowgraphs that work fine in simulation as well as between two USRP boards at 1200 bps and sample rate of 48000 baud. In the transmitter flowgraph, the transmitter reads HDLC bits from a file, NRZI-encode them and sends them via the USRP. The vice-versa is repeated by the receiver flowgraph which is connected to another USRP. The task at hand is to modify the receiver to work with the ICOM 910H transceiver instead of the USRP. Below is the new setup. Transmission frequency on both the USRP and the ICOM transceiver is 436Mhz. Experiment setup

The modified transmitter is shown below. Since the ICOM radio has been set to USB, I have translated the signal by multiplying it with a complex sine wave with frequency 1500Hz. Transmitter flowgraph The receiver is modified as shown below. The signal is now received from the audio jack at 48000 baud. The FIR xlating filter shifts the signal down by 1500 and low-pass filter it (firdes.low_pass(1, samp_rate, 1300, 500) Receiver flowgraph Unfortunately, this time, the receiver won't decode any HDLC packets. Actually, it seems like the Costas loop is not locking as shown by the constellation diagram below. Constellation diagrams Any ideas, suggestions or links to resolve this issue will be highly appreciated.

  • $\begingroup$ How are the USRP and Icom connected? And what are the spikes in the frequency plot? $\endgroup$ Commented Jul 18, 2017 at 15:28
  • $\begingroup$ The usrp sends the modulated bpsk signal via standard rf cable on uhf. $\endgroup$ Commented Jul 18, 2017 at 15:34

1 Answer 1


A good approach to troubleshooting problems is to simplify them until there's a minimal broken case. The program you have here is complex and there are many things that could be wrong.

If the radios are connected just by a cable, the constellation in your screenshot is far too noisy. That suggests there's a problem prior to the equalizer. The periodic spikes in the frequency plot are also suspect. Compare them to the spectrum of the USRP output. Is there an attenuator between the USRP and Icom?

Keep in mind, the CMA equalizer can force a lot of things to look like a circle. Just because the output looks like it could be a constellation doesn't mean the input to the equalizer isn't total garbage. There will be no multipath distortion on a cable if the cable is short relative to the symbol length, so you don't need the equalizer. Try removing it to simplify the program until it's working.

Likewise you can bypass the FLL and replace it with manual tuning, and the AGC with manual gain control.

The conversion from real to complex values with the Frequency Xlating FIR Filter block may not be what you expect. It converts to complex values by setting the imaginary part to zero, which has the effect of mirroring the spectrum. In other words, if the real input is a sine wave at 100 Hz, the complex output will have components at +100 and -100 Hz. Try replacing the audio source with a signal source with a frequency controlled by a GUI Range block to observe how real input frequencies map to complex output frequencies.

To get from real to complex without that aliasing, you can either use a band-pass filter to remove all the negative frequencies, or use the Hilbert block to generate the imaginary component with a 90 degree phase shift from the real, eliminating the negative frequencies.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .