I am transmitting OFDM 16-QAM x 6 carriers packets using the python library amodem and a HackRF. My setup is very simple for the transmission side, it takes the .wav generated by amodem from data and transmits on 470.00mhz (for testing purposes)

Transmit Setup

However, when I transmit using the HackRF there is a offset between the actual frequency vs the frequency the HackRF is transmitting the signal on. Usually by 20 - 30 khz.

I can decode this signal manually by tuning to the frequency using a SDR program like gqrx, but I want to automate this process in GNU Radio and automatically determine the offset and "center" to where the data signal is coming from.

According to the GNU Radio wiki, there is a block that can do this called the Schmidl & Cox OFDM synch. which outputs "Fine frequency offset, scaled by the OFDM symbol duration". When I connect this block to an RTL-SDR source and connect the first output to a QT GUI Number Sink, the number for freq_offset seems to be random ranging from -0.95 to 3 and has no consistent pattern. How do I use this number in calculating the frequency offset in Hertz? Is this the right block for doing an OFDM sync? enter image description here


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.