GMSK Demodulation using RTL-SDR Toolbox

22 views (last 30 days)
Dear community,
I am having problems in find a correct Simulink structure to demodulate correctly a GMSK signal.
I am using an external transceiver (AX8052F143 micro from ONSemi) which is configured with the following:
  • Carrier frequency (fc): 868 MHz
  • Data rate: 9600 bits/s
  • GMSK modulation with BT = 0.3
  • modulation index (h) = 0.5
  • Sending 1 packet per second compound by a PREAMBLE + SYNC WORD + DATA PACKET, a total of 71 bytes (568 bit) length.
The receiver is an RTL-SDR USB dongle, which I have connected to the tranceiver using a wire and a 30 dB attenuator. Then I have implemented a Simulink Diagram with the RTL-SDR Receiver block connected directly to the GMSK Demodulator block. Their set up is the following:
  • RTL-SDR Receiver:
  • fc = 868 MHz
  • Sampling Rate (fs) = 240 kHz
  • Tuner Gain = 0.9 dB
  • Frequency correction = 0
  • Samples per frame = 14200 ( total of 71 bytes = 568 bits per message. Transmitting with 9600 bit/sec it gives a time per message of 59'16 ms. If the fs = 240000 Hz ---> 0,05916*240000 = 14200 samples per frame) At least this is what I understand that means Samples per frame in the Block.
  • GMSK Demodulator:
  • BT product: 0.3
  • Pulse length = 4
  • Symbol Prehistory = 1
  • Phase offset = 0
  • Samples per symbol = 25 (240000/14200 = 25) Also, I am not sure if I have missundertood this parameter.
  • Traceback depth = 16
Also, between the RTL-SDR Receiver and the GMSK Demodulator I have added a Phase/Frequency Offset Block (30 kHz of frequency offset) in order to center the spectrum in baseband.
The Constellation diagram and the spectrum at the RTL-Receiver output are in concordance with the GMSK modulation. (a perfect cercle and the expected shape of the GMSk spectrum).
If everything is OK, in for example a 100 seconds run, I should expect that the binary output of the GMSK demodulator, transformed to hexadecimal, should have between all the characters the packets sent by th TX. However, I have found that randomly, the block demodulates some correct packets (with some bits of error... but ok), and sometimes not. Almost all the executions do not have any correct packet, but sometimes I can get them.
I don't know if any could help to understand what is happening. I think that may be what I understand for Samples per frame/ symbol is not correct, or other parameter... Because I think that may be the RTL-SDR is too slow to be able to process the amount of samples, then if it is not perfect synchronized with the TX, is missing the packets. Also what I have tryied is to put a FIR filter before de demodulator, without success.
I will appreciate any idea! If I am missing any information, please ask! And many thanks in advance.
Irene Guitart

Answers (0)

Categories

Find more on Communications Toolbox in Help Center and File Exchange

Products


Release

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!