FSK performance as a function of Fd?

Hello,

I’ve been trying to understand today how does frequency deviation (Fd)
affect the performance of FSK modulation. More specifically how can one
express required receiver sensitivity (for a given bitrate and BER) as a
function of Fd?

I used to think, apparently naively, that the larger the Fd the better
(leaving aside spectral efficiency considerations). However, I’ve found
this paper from Atemel:

[email protected]

… which shows that, for a given receiver (and other modulation params)
there is a value for Fd that maximizes the performance of the receiver
(see Figure 9-2).

Unfortunately I was unable to find any more generic discussion on how to
choose optimal Fd for a given receiver.

I would also appreciate any suggestions as how to use USRP+gnuradio for
evaluation of a 3rd party FSK link? I.e. I have a TX and RX units
talking to each other, and might want to use USRP to introduce
“controllable noise” so that I could observe how my link performs (in
terms of BER)?

Thanks,
joanna.

Hi! - response interleaved. (after some sucking at list management)
-nw

On Sat, Dec 15, 2012 at 5:48 PM, Joanna Rutkowska <
[email protected]> wrote:

Hello,

I’ve been trying to understand today how does frequency deviation (Fd)
affect the performance of FSK modulation. More specifically how can one
express required receiver sensitivity (for a given bitrate and BER) as a
function of Fd?

I used to think, apparently naively, that the larger the Fd the better
(leaving aside spectral efficiency considerations).

My understanding of FSK is that the most important factor is that the
frequencies are orthogonal. It helps me to go through the math of
creating
the constellation points.

The basis functions in FSK are cosines at whatever frequencies your
choose,
let’s go with binary FSK.

b1 = cos(2pif1 * t);
b2 = cos(2pif2 * t);

s1 = b1;
s2 = b2;

The constellation can be plotted by the zero-lag correlation of the
symbols
with the basis functions.

symbol1 = [integral(0, bit time, s1.*b1 ), integral(0, bit time, s1.*b2
) ]
symbol0 = [integral(0, bit time, s2.*b2 ), integral(0, bit time, s2.*b2
) ]

Orthogonal frequencies will be at right angles (obviously), anything
else
will have an angular distance less than 90 degrees, which means they are
“closer”, so probability of bit error is worse.

Orthogonal is basically equivalent to having an integer number of cycles
in
the bit time.

So Fd is not so important, but orthogonality is. Somewhat
counter-intuitive, but try giving the math a shot and playing with it in
whatever software you use for this kind of stuff (octave, matlab,
python,
whatever).

Here’s something that I threw together in Octave pretty quickly.

Changing f2 to a decimal will cause non-integer number of cycles for the
2nd symbol, and you can see the angle change. It might help to make the
time array something more useful, but hopefully it’s good enough to see
the
concept.

However, I’ve found
this paper from Atemel:

[email protected]

Copy/paste error, so I’ll comment on what I thought of when I read this.
Granted I’ve only read a couple of textbooks with discussions on FSK
I’ve
only seen P(BE) plots and the like focusing on E_b/N_0. The equations
they
give will assume that the symbols are orthogonal.

… which shows that, for a given receiver (and other modulation params)
there is a value for Fd that maximizes the performance of the receiver
(see Figure 9-2).

Unfortunately I was unable to find any more generic discussion on how to
choose optimal Fd for a given receiver.

I think as long as Fd will cause an integer number of cycles in the bit
time, you’re in business.

I would also appreciate any suggestions as how to use USRP+gnuradio for
evaluation of a 3rd party FSK link? I.e. I have a TX and RX units
talking to each other, and might want to use USRP to introduce
“controllable noise” so that I could observe how my link performs (in
terms of BER)?

Hopefully someone else can help you with this, because I can’t :slight_smile:

On 12/16/12 04:32, Nathan W. wrote:

express required receiver sensitivity (for a given bitrate and BER) as a
The basis functions in FSK are cosines at whatever frequencies your choose,

So Fd is not so important, but orthogonality is. Somewhat
concept.
Granted I’ve only read a couple of textbooks with discussions on FSK I’ve

I think as long as Fd will cause an integer number of cycles in the bit
time, you’re in business.

Hi Nathan,

Thanks for the detailed answer! I did some more study and my
understating is that what you wrote above applies to (theoretical)
coherent demodulation. AFAIU nearly all practical receivers use
non-coherent demodulation (because it’s cheaper, and apparently, has
about 1dB penalty only on sensitivity?). This non-coherent detection is
apparently realized using two bandpass filters centered around the two
frequencies. So, my understanding goes, in any practical realization, it
should be better (not worse at least) to use as large Fd as one can,
because it makes the job of the two filters easier…

But, it’s apparently not like this. Here’s the link to the Atmel paper I
mentioned before (again, please take a look at Figure 9-2):

www.atmel.com/Images/doc9174.pdf

Also, please take a look at the datesheet for the IC that is referred in
the paper above:

http://www.atmel.com/Images/doc4596.pdf

This is an FSK receiver from Atmel. Even though it apparently supports
only data rates between 1-20 kbps, its supported Fd is within a range of
18kHz-50kHz. This seems to contradict “your” theory above – why would
Atmel use such a wide bandwith if they could just use no more than 20kHz
for 20kbps?

Thanks,
joanna.

On Sun, Dec 16, 2012 at 11:27:47PM +0100, Joanna Rutkowska wrote:

Thanks for the detailed answer! I did some more study and my
understating is that what you wrote above applies to (theoretical)
coherent demodulation. AFAIU nearly all practical receivers use
non-coherent demodulation (because it’s cheaper, and apparently, has
about 1dB penalty only on sensitivity?). This non-coherent detection
is apparently realized using two bandpass filters centered around the
two frequencies.

I believe you are correct that sensitivity vs. deviation is strongly
dependent on the receiver implementation. You may not be correct
assuming anything about the particular receiver implementation in the
Atmel part.

So, my understanding goes, in any practical realization, it should be
better (not worse at least) to use as large Fd as one can, because it
makes the job of the two filters easier…

But, it’s apparently not like this. Here’s the link to the Atmel paper
I mentioned before (again, please take a look at Figure 9-2):

www.atmel.com/Images/doc9174.pdf

Making a guess about the receiver implementation, I’d say you correctly
describe why the sensitivity improves as Fd increases toward 50 kHz.
I’d further guess that the reason sensitivity gets worse above 50 kHz
deviation is that the bandwidth of the signal exceeds the fixed IF
filter in the receiver.

On Sun, Dec 16, 2012 at 9:39 PM, Michael O. [email protected]
wrote:

I believe you are correct that sensitivity vs. deviation is strongly

www.atmel.com/Images/doc9174.pdf

Making a guess about the receiver implementation, I’d say you correctly
describe why the sensitivity improves as Fd increases toward 50 kHz.
I’d further guess that the reason sensitivity gets worse above 50 kHz
deviation is that the bandwidth of the signal exceeds the fixed IF
filter in the receiver.

The IF filter says it’s around 400kHz wide at the 3dB points, so I doubt
a
50kHz deviation is hitting those limits. They also have frequency
offset
numbers which suggest they can handle significant frequency offset and
still get their data through.

Looking at the graph and reading through the datasheet it seems there is
a
noise figure of around 10dB and 8.5dB SNR required to work well. At the
120kHz deviation, we can get the input level at room temperature as
such:

-174 dBm/Hz + 10log10(120e32) + 10dB + 8.5dB = -101.7dBm

Very close to the -102dBm they show in their graph. Even at 30kHz
deviation which is shown as -107dBm on the graph comes up with a very
close
-107.7dBm from the calculation.

What’s actually interesting is for a value of 100kHz deviation shows on
the
graph a sensitivity of -105dBm whereas the calculation comes up with
-102.5dBm.

If the receiver were actually implemented as a pair of bandpass filters
as
in Figure 9-1, then the above calculation wouldn’t hold since the noise
between the filters would be filtered out and not contribute to the SNR
calculation. If the two bandpass filters actually covered -f_dev to
just
below carrier and just above carrier to +f_dev they would effectively
cover
the entire -f_dev to f_dev bandwidth. If the lower cutoff of each
bandpass
filter was actually pushed out (like in Figure 9-1), filtering out the
noise and limiting the bandwidth of the system to be less than the
occupied
bandwidth of the transmission, that might explain what is happening.

It’s really just an SNR in a given bandwidth problem. Your two
frequencies
could be hundreds of MHz apart. If the two bandpass filters are the
same
width, the effective bandwidth of the system is the same - is it not?

After writing all this, I am not sure I’ve convinced myself I am right
or
wrong but it’s fun to think about. Thanks!

Brian

On Sun, Dec 16, 2012 at 2:27 PM, Joanna Rutkowska <
[email protected]> wrote:

This is an FSK receiver from Atmel. Even though it apparently supports
only data rates between 1-20 kbps, its supported Fd is within a range of
18kHz-50kHz. This seems to contradict “your” theory above – why would
Atmel use such a wide bandwith if they could just use no more than 20kHz
for 20kbps?

Joanna,

Increasing deviation beyond the deviation of MSK (i.e. the minimum) does
not help performance, but it can help ease receiver design.

The reason to use a very high deviation at a low data rate is to make it
easier to deal with frequency error with low cost crystals. If you have
low cost 50ppm crystals on both ends, you could have 100 ppm total
error.
100 ppm at 450 MHz is 45kHz. Spreading the 2 tones further apart
allows
you to guarantee that one will always have positive deviation and the
other
will have negative deviation.

The FSK demodulation method with 2 filters is almost never used. This
chip
likely uses either direct frequency measurement (derivative of phase) or
a
PLL.

Matt

On 12/17/12 06:13, Matt E. wrote:

100 ppm at 450 MHz is 45kHz. Spreading the 2 tones further apart allows
you to guarantee that one will always have positive deviation and the other
will have negative deviation.

The FSK demodulation method with 2 filters is almost never used. This chip
likely uses either direct frequency measurement (derivative of phase) or a
PLL.

Matt

Thanks Matt. This makes sense.

joanna.

On Sun, Dec 16, 2012 at 11:36:56PM -0500, Brian P. wrote:

It’s really just an SNR in a given bandwidth problem.

That makes sense. Looking back through the datasheet, I suspect that FM
demodulation is implemented by the PLL phase detector rather than by
bandpass filters.