OP25 OP25 Constellation Plot

Status
Not open for further replies.

WB4EOT

Member
Joined
Dec 19, 2002
Messages
20
Location
Roanoke, VA
I have OP25 running and decoding VA STARS successfully with control frequency 152.5475 Mhz. Notice the 'Constellation' pattern does not have the two patterns in upper and lower left centered in the quadrants as one might expect.
Command line is ./rx.py --args 'rtl' --gains 'LNA:47' -S 2500000 -f 152.5475e6 -g 100 -q 0

Any thoughts why the patters are not centered in their respective quadrants?

Joe
WB4EOT


Constellation Pattern.PNG
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,512
Location
Talbot Co, MD
The four clusters arise as a result of the phase shifts for the four symbols that can be transmitted. Phase shifts that are not equally pi/2 spaced seems like the most likely explanation.
 

WB4EOT

Member
Joined
Dec 19, 2002
Messages
20
Location
Roanoke, VA
Thanks. Constellation patterns on local 800 Mhz systems center the clusters in each quadrant hence my curiosity.
 

WB4EOT

Member
Joined
Dec 19, 2002
Messages
20
Location
Roanoke, VA
Max,

Datascope capture as requested. Let me know if you need additional information. OP25 is running on RPi 3 B+.

73's,

Joe

1545495134326.png
 

KA1RBI

Member
Joined
Aug 15, 2008
Messages
799
Location
Portage Escarpment
Datascope capture as requested. Let me know if you need additional information. OP25 is running on RPi 3 B+.

OK thanks. That's definitely a "C4FM" (FSK4) pattern, not a "CQPSK" one.

Assuming that the voice channels are also all C4FM (i.e., that the system is not a mixed C4FM/CQPSK one; such systems do exist), you'd be somewhat better off receiving it as FSK4. The CQPSK demod is capable of receiving C4FM signals (but the reverse isn't true). However the best results are obtained when the modulation matches the selected demod. I'd also be interested in seeing a "symbol" plot (but only after the demod has been set to FSK4)...

73

Max
 

WB4EOT

Member
Joined
Dec 19, 2002
Messages
20
Location
Roanoke, VA
Max,

As requested attached is the 'symbol' plot with demod set to -D fsk4 option.

Symbol_fsk4.PNG

Datascope capture is included here.

Datascope_fsk4.PNG

Reading the documentation I've realized there is no Constellation plot in fsk4 mode.

As a side note I should have realized Virginia's STARS system is strictly P25 Phase 1 in VHF band. Reviewing a FCC license for STARS shows emission designation is 8K10F1D P25 Phase I C4FM data.

Command line syntax is
./rx.py --args 'rtl' --gains 'LNA:45' -S 2500000 -f 152.5475e6 -g 100 -q 0 -D fsk4

73's,

Joe
 

KA1RBI

Member
Joined
Aug 15, 2008
Messages
799
Location
Portage Escarpment
OK in the event that you use a trunking TSV file ("-T file") you should also change the demod type in that file as well as the cmd line...

Max
 

CanesFan95

Was Homeboys-Scanna
Banned
Joined
Feb 14, 2008
Messages
3,377
Location
FL
I've never understood what these graphs or "plots" are for. Are there any guides that explain what they mean and how to read them? And how come it's called a "gnu" plot?
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,512
Location
Talbot Co, MD
OK in the event that you use a trunking TSV file ("-T file") you should also change the demod type in that file as well as the cmd line...

Max

The modulation parameter in trunk.tsv only seems to be of any relevance when there are multiple demodulators (corresponding to the -L LOGFILE_WORKERS command line parameter). For all practical purposes it appears to do nothing in a typical P25 trunking scenario where there is a single instance of p25_demodulator instantiated by rx.py with modulation determined by command line parameter -D. I've always assumed it was some historical code fragment left over from scope.py or earlier?
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,512
Location
Talbot Co, MD
I've never understood what these graphs or "plots" are for. Are there any guides that explain what they mean and how to read them? And how come it's called a "gnu" plot?

They are called "gnu" plots because a utility called 'gnuplot' is responsible for displaying them :) Their purpose is to display different aspects of the digital signal processing to aid in setup, debugging and performance analysis. Max knows way more about this stuff than I do, but from my perspective I use the plots as follows:

#1 [fft] - shows the frequency domain across the full section of spectrum being sampled. i.e. Whatever slice of RF spectrum you have told your SDR device to receive will be shown in the plot window. Ideally you expect to see the desired signal peak at the middle of the tuning line, but you may see other nearby signals as well. You can use the FFT plot to broadly set up the PPM error correction (-q parameter) by adjusting correction value until your signal peak is centered.

#2 [constellation] - shows an X-Y plot of the complex IQ signal. In practice this plot is used to examine PSK signals, which in the case of P25 usually means CQPSK (quadrature phase shift keying) with 4 possible positions (the four "corners") along with whatever noise and distortion may also be present. An ideal signal has just 4 corners tightly clustered together. When the signal quality degrades, the clusters become broader and you start seeing an 'X' pattern or even just a randomly distributed noise.

#3 [symbol] - shows the 4 levels of decoded symbol data. Should be nice straight lines at +3, +1, -1, -3. May be displaced vertically by tuning errors and will show out of position plot points when the decode isn't clean (i.e. noisy signal).

#4 [datascope] - can be used to differentiate between c4fm (4 level frequency shift keying) and cqpsk (quadrature phase shift keying) by observing the size/number of "eyes" (openings) in the plot. This is one of those topics that Max knows inside-out whereas my head starts hurting... best left for him to explain!

#5 [mixer] - this plot is in the boatbod fork only and is a visual representation (fft plot) of the mixer output prior to c4fm/cqpsk decoding. It's purpose is to allow simplified adjustment of ppm (-q) and fine tuning (-d) by centering of the plot either side of the tuning line. The numeric "balance" value is an instantaneous summation (integral) of the two sides of the plot and should ideally be as close to 0 as possible.
 
Status
Not open for further replies.
Top