1
$\begingroup$

I am trying to design a 2-GFSK receiver for acquiring IQ symbols. The aim is to implement the entire receiver chain but the decision stage.

The 2-GFSK waveform is being generated by a standard IoT device. The application is RF Finger Print Identification. There are constraints to intended goal and i am not able to converge to a direction to exhaust my efforts. To the best of my understanding, following challenges are to be addressed:

  1. There is no information on the Transmiter Pulse Shaping filter available.
  2. There are no training symbols in the preamble.
  3. GFSK modulation has non-continuous phase unlike GMSK, the I/Q unit circle keeps rotating.

Based on the constraints, I am limited in my approach.

I am finding it very difficult to estimate the signal start time/sampling point t=KT since I dont know how to realize an equivalent matched filter. Knowing, it is a gaussian shaped filter, i could not devise the Rx filter in GNU Radio companion. I tried the Polyphase clock sync using an arbitrary gaussian filter but to no avail.

My SNR is strong enough and i can visualize the IQ symbols. Since the IQ symbols are rotating clockwise or anticlockwise depending upon the data symbol being 0 or 1, I want to know if i can ever be able to estimate the correct sampling point.

Besides, i want to compensate for CFO followed by channel equalization. The eventual goal is to cleanse the transmitted IQ as close to its original form at the receiver as possible, except demodulating the IQ symbols as 0 or 1. We just want the signature of transmitted IQ. Please guide me how to approach this problem.

$\endgroup$
15
  • $\begingroup$ Your opening sentence is a bit confusing: Do you care about GFSK reception, or just about the raw IQ samples? $\endgroup$ Commented Oct 2, 2023 at 12:10
  • 1
    $\begingroup$ I don't know how to realize an equivalent matched filter. Nobody does, because that doesn't exist: GFSK (and FSK in general) is not a linear modulation, and pulse shaping isn't done on the time-domain signal, so no matched filter exists. $\endgroup$ Commented Oct 2, 2023 at 12:23
  • 1
    $\begingroup$ 2. No, the G in GFSK is for "Gaussian", and it's Gaussian pulse filtering that's applied to the data pulses before going into an integrator and a phase modulator (i.e., into a frequency modulator with continuous phase!) $\endgroup$ Commented Oct 2, 2023 at 12:41
  • 1
    $\begingroup$ 3. A CMA equalizer has the problem that the signal has constant modulus all the time, so it's hard to identify which delay led to a specific receive amplitude. $\endgroup$ Commented Oct 2, 2023 at 12:45
  • 1
    $\begingroup$ the unit circle is inherent for any FSK, and says nothing about phase change of consecutive symbols; so that's not an indication at all. The question here is how we need to talk about phase, seeing that this is not a single carrier, but two. $\endgroup$ Commented Oct 2, 2023 at 13:04

3 Answers 3

1
$\begingroup$

Yes, understood. This non-linearity is not an issue in GMSK as i understand but a problem in GFSK, how does one equalize a GFSK signal then anyway?

Not at all, usually. GFSK use cases are systems that are complexity-bounded with relatively flat channels.

However, that won't help you for your device identification. So, you get to do the full chain from ground up:

  • Build a proper GFSK CFO recovery (automatic filtering to relevant bandwidth, PLL-based tracking of the carrier, averaging the frequency), then
  • a timing recovery (error signal of the PLL is a bimodal pulse-shaped signal, so apply your timing recovery to that, to extract absolute timing and symbol rate),
  • a decision-aided equalizer, quite possibly by estimating the properties of the Gaussian data pulse filter and the frequency modulator, then use that to re-create a noise-free version of your received signal, and do a channel estimate based on the comparison of that with your raw received signal.

You'd be left with some information about your original transmitter.

$\endgroup$
16
  • $\begingroup$ Thank you so much for such a detailed response. Although i did not understand some aspects. 1.How to do automatic filtering?...I have MATLAB and GNU Radio available 2. The only timing recovery I know is the one using matched filtering, for zero ISI matched filter, the point where we get maximum SNR at point T, essentially t=kT. I dont know how to do timing recovery in non-linear modulation techniques. 3. Can I use a transmission line after attenuation and observe the waveform once I have the CFO and timing done. With knowNn signal attenuation and no channel impairements, only AWGN $\endgroup$
    – Maaz Awan
    Commented Oct 2, 2023 at 13:24
  • 1
    $\begingroup$ 1. do a spectral analysis of your receive signal, find the occupied bandwidth. This can be as simple as estimating the PSD with an FFT, or through Yule-Walker equations, or through neural networks running on spectrograms, or… this depends on how well you can pre-segment your spectrum to "only" see your signal of interest. $\endgroup$ Commented Oct 2, 2023 at 13:30
  • 1
    $\begingroup$ 2. then resesarch other timing recovery methods! You might end up doing something like a modified Gardner or such. $\endgroup$ Commented Oct 2, 2023 at 13:31
  • $\begingroup$ 3. I don't understand the question. A transmission line is a physical thing? $\endgroup$ Commented Oct 2, 2023 at 13:32
  • 1
    $\begingroup$ … demodulation on the received signal (for example, using a PLL, or using filter banks, or using tan⁻¹ or…), but what you'd get is a real-valued signal (frequency over time), and real signals always have phase 0, so coherent detection isn't helpful there, either. $\endgroup$ Commented Oct 5, 2023 at 10:19
0
$\begingroup$

enter image description here This picture is a GMSK simulation in Matlab.

$\endgroup$
0
$\begingroup$

enter image description here

I component of GFSK modulated signal. The byte value is 0x0F. Only a single byte sent per frame.

$\endgroup$
1
  • $\begingroup$ Sir Muller, I was able to get this sample using GNU Radio companion. As you can see the early part of the signal is preamble and serves the most usefulness for us. Your feedback in this regard is highly appreciated please. $\endgroup$
    – Maaz Awan
    Commented Oct 25, 2023 at 19:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.