Some Of My Artwork


All images on this page were captured using an old 1980's era receiver (PRO-2006; depreciated monetary value: $75) with an integrated IF downconverter ($25 in parts or junkbox) feeding into a standard laptop PC's sound input jack. All software used including GNU Radio is free software.

First we look at the basic receive process by comparing a remote location outside the system's coverage area against a different, "good" location. The images on the left (A) side were captured from a location a few miles outside the county covered by the system using a directional antenna aimed for optimum reception. The images (B) on the right were taken using an omnidirectional mobile antenna from a stationary location, randomly selected prior to the test, with no further adjustments to the location or orientation of the antenna.

 Receiver Outside
Designed Coverage Area
Antenna: Yagi
(A)
Receiver Within
Coverage Area
Antenna: Plain old 800 MHz
collinear (omnidirectional)
(B)
Fig. 1. After input signal normalization (complex signal scaled so as to just fit within the unit circle). Ten samples are shown for each symbol. (An actual value for SPS, [Ω] might be something like 9.998560 or whatever depending on soundcard oscillator drift).
Fig. 2. Gardner symbol recovery block applied to normalized signal. This includes a decimation-by-Ω function (result: output SPS is 1).
Fig. 3. After Costas loop. Alternate symbols are coded red and green, clearly revealing the two π/4-interleaved constellations even though no demodulation or decoding has been performed yet.
Fig. 4. We might try doing coherent decoding of the constellations in Fig. 3, but differential decoding is simpler - this is the result.
Fig. 5. Demodulation in PM* [and FM] receivers discards the magnitude component and retains only the phase angle [frequency in FM] of received complex constellation points (see Fig. 4), rescaled from radians to the standard -3/-1/+1/+3 levels.
* Phase Modulation
Fig. 6. Symbol population density by phase angle. As in Fig. 5, the symbol magnitude components are excluded. Note at (A) the overlap and failure to converge at the center point. Input for this function was taken prior to differential decoding (Fig. 3).
Fig. 7. Same as Fig. 6, except the differentially decoded constellation (Fig. 4) is used as input.
Fig. 8. Eye diagrams showing the usual simulcast distortion. Unlike Figures 1-7, the eye diagrams require an input signal that has been FM-demodulated. Except for Fig. 5 and Fig. 8, which are functions on real numbers, all others (above) are complex.


Fig. 9 (A - C). Varying degrees of ambiguity near the origin (0, 0) point. The distortion is most severe in the left Figure. This is reminiscent of the "eye opening" measurement in conventional telegraphy (see Fig. 8). I speculate that this effect is controlled as a system design parameter, probably using statistical techniques and with stratified or tiered coverage contour zones. The images on the left and right are the same as in Fig. 4. The middle image was taken at the same time/place as the right one. Further checking is needed to see if the middle image is one of the "city" talkgroups which seem to use somewhat different subsets of transmit towers (the receiver was located inside the county but outside the city). Users "outside the zone" [left] seem to have limited options beyond aiming the receive antenna.


Fig. 10. Delay before phase lock achieved: Standard Costas loop (red); Modified Costas loop (green). The modification (hack) is to apply 45° of rotation to the second of every two symbols to make the "8-psk" look like 4-psk as far as the Costas loop's phase error detector is concerned, making it much happier. The signal tuning error here is around 125 Hz. The acquisition time drops from roughly 1.5 sec. to 0.25 sec. in this case; in other cases (e.g., DBSRX) lock cannot be achieved or maintained at all unless the hack is activated.

The need for the hack could summarized by saying that the standard Costas loop QPSK phase error detector handles QPSK and DQPSK, but apparently not π/4 (D)QPSK. The generic detector could have been used (configured for 8-psk) but would be less robust error-wise and would introduce other complexities.

The image covers a time span of 2.5 seconds (12000 symbols @ 4800).


Fig. 11 (A - C). Effect of tuning error (frequency/phase locking disabled for test). If the Costas loop fails or is bypassed or defeated, differental decoding still functions. However, the decoded constellation will now have an "angular offset" (phase error) directly proportional to the frequency tuning error. The tuning error shown is approx. 600 Hz (600 / 4800 = 0.125 = 45 / 360 -- 45 degrees). There is now significant symbol activity near the 180° point (-4.0 [-180°] and +4.0 [+180°] are exactly the same point on the phase circle). The density information [Fig. 11 (C)] could probably be used to steer a frequency-correction loop, but this hasn't been attempted.

A related problem (not depicted) has affected the Costas loop. It seems to lock at a frequency offset error of ±1200 Hz (90°) on either side as well as the proper frequency.


Secrets of LSM


The low-level complex signalling waveforms reveal some very interesting things. There are four possible symbol transition waveforms which correspond to the symbol values as follows:
DibitsSymbolCQPSK Phase ChangeWaveform
01+3+135°See Fig. 13 (B).
00+1+45°See Fig. 12 (B)
10-1-45°See Fig. 12 (A)
11-3-135°See Fig. 13 (A).

We take a set of around 100 waveforms categorized into the four groups, derotate each arc, and then superimpose them:
Fig. 12 (A) -45°Fig. 12 (B) +45°

Fig. 13 (A) -135°Fig. 13 (B) +135°

The ±45° and the +135° waveforms all run along the circumference of the circle; however, the -135° [symbol "-3", see Fig. 13 (A)] seems almost to go out of its way to traverse the origin (0, 0) point (no doubt they use Linear amps;). The following image has one of the -3's in more detail, showing the constituent samples (+) too:


The next three are just random images each showing a series of transitions.




The final image shows a Frame Sync (FS) sequence:

0.502596	-0.463439
0.003992	0.777944
-0.559242	-0.585181
0.799180	0.096800
-0.651793	0.449018
-0.025315	-0.758719
-0.438181	0.484277
0.039774	-0.758367
0.572912	0.501793
-0.191679	-0.576948
-0.346958	0.496451
-0.041117	-0.723804
0.563131	0.484649
-0.248983	-0.559592
-0.210848	0.510672
0.567967	-0.129373
-0.522586	-0.376675
0.699166	0.015014
-0.502737	-0.457343
0.688883	0.062561
-0.514350	-0.410682
0.119573	0.612265
0.364705	-0.419835
-0.586067	-0.068158
0.374538	0.595147


© Copyright 2010 KA1RBI