I am trying to demodulate individually two GMSK channels separated by 50kHz (one channel = 25kHz). I am working on a limited resources hardware so I decided to make some optimization on the signal processing chain.

Here is the architecture: after sampling, my two channels are aliased at 4.6MHz and at 4.65MHz.

The architecture for one channel is as follow: a DDS (Direct Digital Synthesis) and a mixer bring my signal in baseband. I then have a down-conversion, filtering, the decoding algorithm and an error controller to compute a BER.

The basic architecture for demodulating two disctinct signals would be to duplicate this processing. Unfortunately, my hardware cannot contain so much computing.

One of the idea I had was to put in common some DSP operations. The down-conversion uses a lot of resources so I decided to mutualize the process for both channels. The down-conversion uses a CIC filter, it filters and decimates the signal.

The new signal path would be: DDS+MIXER (channel 1 brought to baseband, channel 2 centered around 50kHz), CIC + compensation filter (CIC response is not flat in passband), second DDS + mixer to bring channel 2 to baseband.

here is a scheme of the processing:

Processing Block Diagram

The "tricky" thing is that on my second DDS I multiply both I and Q by cosine instead of cosine / sine (in that case, it does not work).
When doing this, I guessed that maybe I would lose something.

When measuring the BER, I can easily see that I have a 3dB loss between my two channels. My question: how can I "mathematically" explain this?

Is it because I am mixing two cosine instead of one cos and one sine; is half of the information lost? Am I losing 3 dB on the SNR?

Edit: Here are the BER curves

BER Curves

  • $\begingroup$ the second channel should be pretty completely broken; you're not only deleting half of the info, you're effectively deleting all of it, unless you're oversampling and a phase trajectory can be tracked. What do your BER curves look like? $\endgroup$ Feb 26, 2020 at 16:33
  • $\begingroup$ I am indeed oversampling the signal, BER curves added on original post. $\endgroup$
    – phaseer
    Feb 27, 2020 at 8:15

1 Answer 1


Yes that is correct, you are only getting half the signal: with cosine on both inputs half the signal moves to baseband and the other half moves to twice the frequency offset. I suspect the reason it is not working in the sine cosine case is the sign of that is such that you translated the entire signal upward to twice the frequency offset instead of to baseband. If that is the case you could invert the sine input and it should work without the 3 dB loss.

  • 1
    $\begingroup$ Ok! I am going to do some Matlab to experiment this. $\endgroup$
    – phaseer
    Feb 27, 2020 at 8:19
  • $\begingroup$ Please let us know once you confirm that was indeed the case. $\endgroup$ Feb 27, 2020 at 13:40

Your Answer

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

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