BPSK31 Adventures

Hi Folks,

Inspired by Javier and Martin’s recent posts on DPSK, I thought I would
resurrect my (Amateur Radio )(B) PSK31 transceiver implemented in GRC.

I can use the MPSK receiver block in GRC to successfully decode anything
up to BPSK500 - I’m sure I could go higher, but fldigi only transmits up
to 500, and I was using that as a known good transmitter.

Knowing that in the future I would want DBPSK (for some satellite work),
and transmit capability (I could not find a MPSK Transmitter block), I
started to think about using the PSK Demod block in GRC instead.

I set the number of constellation points to 2 (for BPSK), set the
differential encoding to “No”, and set the samples/symbol to the
equivalent value in the MPSK Receiver block.

There I come across a problem. What to set Excess BW, Frequency BW,
Timing BW, and Grey code to. I have looked at Tom’s page on the
Frequency BW, but am afraid I don’t grok that side of things at all
well.

Is there a way to work out what those value should be from the working
values of the MPSK Receiver block ?

Attached is a flowgraph (both .png and .grc) Both the MPSK Receiver
chain, and the PSK Demod chain eventually output to a file sink for
doing the varicode decoding.

Two quick further questions on the PSK Demod block (which actually
uses the Gerneric Demod block to do most of the dirty work):

  1. Can someone confirm if I need to use the packed to unpacked block
    that I’m using ? I’ve seen notes that the output is indeed packed (hence
    the unpacker being in the flowgraph), but also other places saying it’s
    already unpacked ? Or is it just the DxPSK block that has the unpacked
    output ?

  2. Do I need to use AGC before it ? Again I came across some places
    that say it’s already in there, but couldn’t see any evidence. Is it
    just the DxPSK block that incorporates the AGC block ?

All the Best

Iain

Hi Iain,

On Sun, Jul 15, 2012 at 08:13:13PM +0100, Iain Young, G7III wrote:

Inspired by Javier and Martin’s recent posts on DPSK, I thought I would
resurrect my (Amateur Radio )(B) PSK31 transceiver implemented in GRC.

Nice!

I set the number of constellation points to 2 (for BPSK), set the
differential encoding to “No”, and set the samples/symbol to the
equivalent value in the MPSK Receiver block.

There I come across a problem. What to set Excess BW, Frequency BW,
Timing BW, and Grey code to. I have looked at Tom’s page on the
Frequency BW, but am afraid I don’t grok that side of things at all
well.

Grey code doesn’t matter for BPSK, so ignore that. The frequency and
timing loop BW’s depend on how quickly you want to acquire freq/timing
synch, but don’t worry about these, either–if you don’t know what they
exactly do, just use the defaults (I think something around 2\pi/100?)
and play around with these values.

The ‘excess BW’ is the rolloff factor of the root-raised cosine filter.

Is there a way to work out what those value should be from the working
values of the MPSK Receiver block ?

It depends on your app.

the unpacker being in the flowgraph), but also other places saying it’s
already unpacked ? Or is it just the DxPSK block that has the unpacked
output ?

PSK Demod packs all bits of 1 sym per byte. As you’re using BPSK, you
don’t need to unpack. You’ll have 1 bit per byte.

  1. Do I need to use AGC before it ? Again I came across some places
    that say it’s already in there, but couldn’t see any evidence. Is it
    just the DxPSK block that incorporates the AGC block ?

It’s not in there, but for PSK31, you might not need it, as all the info
is in the phase anyway.

MB


Karlsruhe Institute of Technology (KIT)
Communications Engineering Lab (CEL)

Dipl.-Ing. Martin B.
Research Associate

Kaiserstraße 12
Building 05.01
76131 Karlsruhe

Phone: +49 721 608-43790
Fax: +49 721 608-46071
www.cel.kit.edu

KIT – University of the State of Baden-Württemberg and
National Laboratory of the Helmholtz Association