# OFDM over FHSS Constellation detection

I am working on identifying the constellation used by an OFDM based protocol.

After extracting the Symbol and Cyclic Prefix from the recorded signal, interested to identify the used constellation/modulation scheme(QAM4/16/…).

Applying a high resolution FFT(size=$2^{19}$), reveals the ~64 bins(Red picks) of the first symbol payload(without the CP).

However, examining the samples on a complex axis, yields(right)

Wondered what may be the cause for such a structure.

Here is my MATLAB data Structure of a several burst (I+Q), and can be loaded using:

strct=load('E:\....\fhss_1.mat');
FHSS_1=strct.fhss_1;


The beginning of the first symbol for fhss_1.mat is located at: 14653, the size is 3650(samples).

• Do you have any information on the SNR of the signal and the channel, this signal was transmitted over? – Maximilian Matthé Jan 22 '17 at 11:25
• The recorded signal has a very low noise level, as it was recorded in a lab setup using USRP and the tested Radio(TX+RX). – SenSen Jan 22 '17 at 13:50
• hm... so you have no information about the channel coefficients. Then, it can be quite tough. Do you have information about how far the antennas have been, the bandwith and the carrier frequency. Do have any other information about it? From the single plot, it at least looks like a flat channel employing phase-shift-keying modulation (i.e. QPSK, BPSK or ever 8-PSK or similar). The exact constellation is tougher to find without any additional information. – Maximilian Matthé Jan 22 '17 at 13:58
• There is more info: BW - 1Mhz. Sampled @40Mhz. Symb_size = 3650(samples) CP_Size = 0.125*Symb_size – SenSen Jan 22 '17 at 14:11
• do the sender and receiver share the same reference clock? – Marcus Müller Jan 22 '17 at 14:20

Not a definite answer, but here's some analysis on the data:

strct=load('/tmp/mozilla_mmatthe0/fhss_1.mat');
FHSS_1=strct.fhss_1;

start = 14653;
Ns = 3650;
Ncp = Ns/8;
N_total = round(Ns + Ncp);

symind = 10;

X1 = FHSS_1(start+symind*N_total+(1:Ns));
subplot(211);
plot(mag2db(abs(fft(X1))))

fstart = 2593;
fend = 2701;
xlim([fstart-50, fend+50]);

QAM = X1(fstart:fend);

subplot(223);
plot(QAM, 'x-')
axis equal;

subplot(224);
delta = QAM(1:end-1) ./ QAM(2:end);
hold off;
plot(abs(delta)); hold on;
plot(angle(delta), 'k-');
plot(abs(QAM), 'r-');
legend({'abs(delta)', 'angle(delta)', 'abs(QAM)'});


My observations:

• the SNR seems to be fairly high (the noise floor in the spectrum is much below the signal part)
• There seems to be a strong correlation between adjacent symbols along the subcarriers. I mean, when drawing the constellation symbols along the subcarriers, and connecting the adjacent subcarriers with a line (i.e. a normal "plot", I get a somehow spiral (bottom left figure).

My conclusion: The QAM symbols are highly structured. This does not seem like a data transmission. Instead, it appears to be something like a preamble/synchronization sequence, and these dont need to follow a given constellation. So, the answer might be, that there is no constellation behind.

This answer is to start some discussion on the data. It's not definite.

• Hello Maximilian, Thank you very much for the highly detailed and informative answer. This is OFDM over FHSS transmission. As a result, the initial bursts analyzed are probably responsible for synchronization purposes and used as preamble/sync_words. This may explain the fact that constellation is not being followed. Further research is required and would be done soon. P.S. dspillustrations.com - great initiative and implementation. – SenSen Jan 22 '17 at 16:05
• Well, then you'd need to look at the symbols that actually contain the data. They might look better then. My estimate is that the channel is relatively flat and stable, so it should be easily possible to see the constellation. Actually, what is the final goal? Do you want to demoudlate the data? then, there's much more two know than the constellation itself... – Maximilian Matthé Jan 22 '17 at 16:25
• Thanks. Will analyse the data containing the symbols and update. I am aware regarding the post-fft expected complexity though... – SenSen Jan 22 '17 at 18:39
• Hello Maximilian, Thank you again for the informative answer. Further analysis was performed, however, constellation still not found. Would love to hear your opinion. Description can be found under: dropbox.com/s/na8vhfwcj191ir2/Constellation2.pdf?dl=0 Code can be found at: dropbox.com/s/s2okzesjayqa02n/Constellation_Code.m?dl=0 – SenSen Jan 29 '17 at 13:26