PSK Demodulator performance

Does anyone have any information on the performance - specifically the
implementation loss of the Gnuradio PSK demodulator block? I am trying
to
work out a link budget. Typically this would be 1dB or so from ideal.

Mike

On 05/03/2014 09:35 AM, Mike W. wrote:

Does anyone have any information on the performance specifically the
implementation loss of the Gnuradio PSK demodulator block? I am trying
to work out a link budget. Typically this would be 1dB or so from ideal.

By ideal, you mean the theoretical BER values for a given Eb/N0? If so,
that would be easy to determine – have a look at berawgn.py, replace
the slicer with the PSK demod and allow for some initialization time.

Cheers,
Martin

Hi Mike!

Well, from a purely algorithmic point of view, there is no approximate
magic happening inside the PSK demapper
(from constellation.cc):
unsigned int
constellation_psk::get_sector(const gr_complex *sample)
{
float phase = arg(*sample);
float width = M_TWOPI / n_sectors;
int sector = floor(phase/width + 0.5);
if(sector < 0)
sector += n_sectors;
return sector;
}

This is “perfect” up to the degree that arg() works well enough, which
is
mainly a matter of float accuracy, I guess, and should therefore be well
below any significance.

The other thing is the finite-length root-raised cosine matched
filtering;
I think you can derive losses for that, but I think Martin’s approach of
measuring things might be faster and more accurate in the end.

Greetings,
Marcus

On 03.05.2014 13:16, Marcus M. wrote:

Hi Mike!

Well, from a purely algorithmic point of view, there is no approximate
magic happening inside the PSK demapper

Oh, I assumed Mike was talking about the entire demod chain
(sync/eq/demap), which would have its own inherent loss. Maybe Mike can
clarify.

If I’m correct, there’s the question of the correct metric, since Eb/N0
alone might not be the only factor affecting BER.

M