I am trying to implement a frequency-modulated communication channel on MatLab. However, there is something I don't understand about the sensitivity of the frequency modulator (or the frequency deviation as my signal has an amplitude equal to 1). My message has a 500Hz frequency and is sampled at 20kHz. I added white gaussian noise to my bandpass signal (carrier of 6kHz).

Why does the BER of the demodulated message have a positive slope after 250Hz ?

NB : it is written [dB] for the BER on the graph but it is not, I forgot to remove it

enter image description here

  • $\begingroup$ what is the demodulator you use? $\endgroup$ Dec 19 '19 at 12:19
  • $\begingroup$ I implemented a frequency discriminator composed of a pair of slope circuits followed by envelope detectors. $\endgroup$
    – Théo
    Dec 19 '19 at 12:29
  • $\begingroup$ ah, interesting! Care to share formula or code? $\endgroup$ Dec 19 '19 at 12:30
  • $\begingroup$ (by the way, I'm assuming you're doing a discrete-frequency FSK so that it's easy to calculate BERs, is that right?) $\endgroup$ Dec 19 '19 at 12:44
  • $\begingroup$ @MarcusMüller Here are the formulas I used link $\endgroup$
    – Théo
    Dec 19 '19 at 12:45

This could happen as discriminator gain is increased with a filter discriminator approach since in many of those approaches the gain would be maximum and linear for small signals only and then the slope of the discriminator slowly goes down coinciding with the results in your plot (such that you no longer get a perfect sine wave out for a sine wave in—- so you can also look at it as converting some of your signal components to other harmonics at the discriminator output due to that non-linearity). Ultimately as you increase the gain further your signal will start to saturate and then even invert depending on the wider bandwidth shape of your discriminator.

Plot the derivative of your frequency discriminator to see this more clearly as to its usable range for a given frequency deviation- the ideal for no distortion is to have a constant slope.

I see from the link you provided that the slope is indeed constant over a limited usable range. So specifically in your case I assume as $k_f$ was increased, it would cause a proportionate amount of the signal to go beyond the discriminator range (where your response is 0).

  • $\begingroup$ Thank you ! I divided the result by the gain $$ \frac{1}{A_m4\pi k_f}$$ and it now works $\endgroup$
    – Théo
    Dec 19 '19 at 13:09
  • 2
    $\begingroup$ Good news- curious did you use high pass- low pass structures or offset bandpass, with opposite polarity detectors, or something else? $\endgroup$ Dec 19 '19 at 13:21
  • $\begingroup$ I used a low pass filter on the real and imaginary parts of the baseband signal $\endgroup$
    – Théo
    Dec 19 '19 at 14:14

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.