Re: FSK demodulation

Hi Marcus!

Thanks for your detailed reply. To what I have studied yet polar
discriminator will be affected more by the amplitude variations during
transmission. Currently I do not know how to cater these variations, I
am
reading literature on it.
Currently, I am trying to implement correlation receiver using FIR
filters. I am looking into polyphase filterbank channelizer to
implement
correlation, but currently unable to do so because I currently do not
know
how to assign taps for channelizer.

practical system, if your FSK shift is sufficiently larger than your
frequency offset.

Oversampling at baseband ? I am currently sampling at 1Msps (usrp sink
sampling rate) for a tone spacing of 125KHz. You mean after the USRP
sink
block I should upsample again and then do the correlation? Or you mean
something else ? Please forgive me for asking too many question, I am
still
learning.

All in all, the question which demodulator architecture to use is an
academic/research one and not related to the implementation in GNU Radio
modulation. This is a highly interesting field and I can but encourage
you to read a lot of books [1] and papers on this.

Thanks for the link, nice stuff.

modulation:

Assuming you don’t want phase jumps between symbols, why not just use
the VCO block to generate frequencies out of your input values?

Wow! modulation is easy using VCO. A question, why would someone want
phase
jump between symbols?

Marc

Hi Marc,

Currently, I am trying to implement correlation receiver using FIR
filters. I am looking into polyphase filterbank channelizer to implement
correlation, but currently unable to do so because I currently do not
know how to assign taps for channelizer.

I should have pointed you at Tom’s article on PFB channelizers and
synthesizers [1].

Oversampling at baseband ? I am currently sampling at 1Msps (usrp sink
sampling rate) for a tone spacing of 125KHz. You mean after the USRP sink
block I should upsample again and then do the correlation? Or you mean
something else ? Please forgive me for asking too many question, I am still
learning.
don’t worry; this list is meant for GNU Radio discussion, I think things
like exploring possibilities to do certain tasks in GNU Radio fit
nicely, especially because you are considering using something “cool and
new” like the PFBs in your approach. GNU Radio can always use more
people actually trying to implement stuff!

So: Oversampling is what you do when getting more samples out of your
ADC than nyquist forces you to do. If you do 125k spacing 4FSK, then you
have a total bandwidth of 750kHz + X, so 1MS/s is “just enough”; anyway,
if you sample with let’s say 3.125MS/s, than you’ll have more samples.
Within that received bandwidth, you will have the same signal as before,
but now correlating against your known tone will give you a higher value
than with only 1MS/s, and because noise stays uncorrelated, this will
increase SNR. This is processing gain!

… encourage you to read a lot of books [1] and papers on this.

Thanks for the link, nice stuff.
If you find something interesting, don’t hesitate to add a new heading
like “FSK demodulator technology” and add the references there; I think
this list is something that could use broader usage :slight_smile:

Assuming you don’t want phase jumps between symbols, why not just use
the VCO block to generate frequencies out of your input values?
Wow! modulation is easy using VCO. A question, why would someone want phase
jump between symbols?
In FSK systems, you’d usually want to avoid that, because phase jumps
lead to spectral components that are not at the frequency you shifted
to.
With PSK, phase jumps is your only way to encode data, and with QAM
“half” of the information is encoded in phase. However, you usually see
a pulse shaper after these, because transmitting a real phase
discontinuity is somewhat physically impossible[2]. So these modulations
get the spectrum of a phase-jumping system, smoothed by the spectral
shape of the pulse shaping.

Greetings,
Marcus

[1]

[2] Basically, imagine the baseband signal as a sequence of rectangles
in time; now, the fourier transform of a rectangle is a sin(x)/x, and
that has a support that doesn’t fit into a limited bandwidth.