Im transmitting by cc1350 launchpad microprocessor digital RF Packets, transmitted modulation FSK. bit rate of transmitting is 50Kbouad, frequency of transmitting is 868MHZ . Im sampling the signal(RF PACKETS) that Im transmitting by a dongle SDR-RTL and it samples on frequency 2048000Hz , I want to decode the RF packets that Im transmitting, so I build demodulator and I see the data of my RF packet which it's: (I plot it in matlab plot)

enter image description here

So if you see here on the plot it shows data of my sampled RF packet, and in order to decode it to 0/1 (binary), I want to do LPF in order to smooth/smear much more my received Rf packet "to look like smoothly sinusoidal"

any help how can I do that?

I mean by demodulator is that I've done two matched filters (Mf1, MF2) as I shown in the photo below: enter image description here

  • $\begingroup$ what does that plot show, exactly? What is the y and the x axis? (because: if this is the time domain signal, this very much isn't FSK.) $\endgroup$ Jul 13, 2020 at 15:49
  • $\begingroup$ shows the entire packet data , y is amplitude and x is time! it's GFSK modulation. my demodulator is demodulation of FSK signal this means that the received signal is FSK signal $\endgroup$
    – LiamLony
    Jul 13, 2020 at 15:55
  • $\begingroup$ Well, the signal you've plotted is clearly not FSK, sorry. $\endgroup$ Jul 13, 2020 at 15:59
  • $\begingroup$ I will try to plot another plot to be more clear, I will attach on the same thread $\endgroup$
    – LiamLony
    Jul 13, 2020 at 16:00
  • $\begingroup$ what I attached above is the output of my demodulator yeah? not the IQ raw data that I received $\endgroup$
    – LiamLony
    Jul 13, 2020 at 16:01

1 Answer 1


Well, you know that the output of your filters shouldn't change faster than a symbol period. You could low-pass filter these to a bandwidth only a bit bigger than the symbol rate.

Since a filter is a linear operation, you can commute it and have it before the matched filters, so you only need one low-pass filter.

smoothly and to do zero crossings in order to choose when I have 0 and 1 in binary

Don't. You should be using a threshold instead of going by zero crossings: the zero is your maximum likelihood decision boundary.

You'll need symbol timing recovery, anyways. Since this is a bursty system, not an "endless" stream of symbols, I'd guess the packet preamble is probably meant to give you that information – use it!

If you can correctly estimate symbol timing from the preamble, your Matched Filters can be coherently decimating down to the symbol rate.

  • $\begingroup$ but I really understand you, I used zero as threshold which if my packet data above zero then 1 in binary, otherwise 0 in binary but Im not seeing the bits that I've transmitted .. so! Im clarifying that the output of my demodulator I made the condition that if bigger than zero then 1 otherwise then 0 but I didn't succeed to see my syncword or preamble bits $\endgroup$
    – LiamLony
    Jul 13, 2020 at 16:17
  • $\begingroup$ I didn't try to use Low pass filter before two matching filter once I use threshold 0 (maybe that's the problem).... how can I do my LPF in matlab and at which frequency cut off? bitrate? $\endgroup$
    – LiamLony
    Jul 13, 2020 at 16:18
  • $\begingroup$ Matlab has a filter design tool. $\endgroup$ Jul 13, 2020 at 16:20
  • $\begingroup$ yes Im using it, but I need for instance several things, once is cut off frequency of my LPF , passbandRipple, Sample Rate, the order of my LPF . $\endgroup$
    – LiamLony
    Jul 13, 2020 at 16:22
  • $\begingroup$ Since Im using smartRFstudio 7 that I can configure the parametrs of transmitting. at which more preferable to put my bit rate frequency, deviation frequency? as shown in my photo above I put my bit rate 300Kboud , deviation 150Khz. Im ofcourse sampling at 2048kHz. thanks for your help $\endgroup$
    – LiamLony
    Jul 13, 2020 at 16:27

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.