Project

General

Profile

SignalScopePage » History » Version 9

max, 04/22/2017 04:04 PM

1 1 max
= Signal Scope =
2
3
== Installation ==
4
5 6 max
Before running the scope app, check that the following standard pre-requisite packages are also installed:
6 1 max
 * GNU Radio
7
 * The op25 blocks
8
 * Frank's gr-fsk4 block
9
 * The op25 repeater block
10
11 6 max
The Python Numeric package is now also required.  If you're running Debian or Ubuntu:
12
{{{
13
apt-get install python-numeric
14
}}}
15 1 max
16 6 max
Other than these pre-reqs, no special setup or installation is needed.
17
18 5 max
There are three overall options or modes depending on your hardware; these are
19
 * USRP
20
 * External receiver with discriminator tap connected to sound card
21
 * External receiver with IF in the audio sound card range (e.g., 24 KHz), referred to as "audio IF"
22 3 max
23 1 max
== Running with the disc-tap option ==
24
25
The signal scope does not require the USRP.  If you have a discriminator-tapped receiver, use the "-a" option:
26 3 max
{{{
27 9 max
./scope.py -a -v 10 -g 50
28 3 max
}}}
29
30
== Running with the USRP ==
31
32
It's helpful to find out the current calibration error beforehand (I use kalibrate), for example, +1234 hertz:
33
{{{
34 9 max
./scope.py -f 412.34e6 -RA -g 65 -c 1234 -v 10
35 3 max
}}}
36 1 max
37 5 max
== Running in the Audio IF mode ==
38 1 max
39 5 max
Receivers equipped with an IF output in the sound card range can be used.  This is known as "audio IF" mode.
40
A soundcard sampling rate of 96K is used and the IF frequency (typically 24 KHz) is given using the {{{--calibration}}} parameter:
41
42
{{{
43 9 max
./scope.py -A -c 24e3 -g 50 -v 10
44 5 max
}}}
45
46 4 max
== Feature overview ==
47
48
 * Spectrum plot
49
 * Baseband oscilloscope
50 1 max
 * Eye Pattern Diagram (Datascope) display supporting several standard symbol rates
51 4 max
 * Constellation Diagrams
52
 * Demodulated Symbol Output
53 6 max
 * Correlation (including Fast Auto-Correlation)
54 1 max
 * Direct-frequency entry, signal gain and fine-tuning controls
55
 * User-selectable demodulator (FSK4 or QPSK)
56 5 max
57
In the USRP and audio-IF modes, several additional program functions are enabled (spectrum FFT, constellation diagram, PSK demod, and iDEN correlation).
58
59
In all modes, the {{{--wireshark}}} option is used to write received P25 packet data to Wireshark.
60 4 max
61
== Spectrum Display ==
62
63
[[Image(a.png)]]
64
65
The controls arranged along the bottom of the page are:
66
 * Frequency: to retune, type the new frequency here and press ENTER
67
 * Signal Gain: adjusts the baseband (demodulated) signal level
68
 * Fine Tune: adjusts tuning frequency over +/- 3000 Hz range
69
 * Demod: Selects demodulator (currently used in Demodulated Symbols only)
70
Except for the signal gain control, these controls are only available in USRP RX mode.
71
72
== Eye Pattern Diagrams ==
73
74
The scope input source can be connected either before or after the symbol filter using the Viewpoint toggle.
75
76
Also the proper speed must be selected from the available options.
77
78
[[Image(b.png)]]
79
80
== Constellation Diagram ==
81
82 7 max
[[Image(f.png)]]
83
84
The signal scope also features an angular population graph (shown above) in addition to the traditional constellation display.
85
In this mode the symbol magnitude (distance from center) is discarded.  Instead the circle is sliced into segments and a count
86
of symbols found in each segment is plotted.  This is similar to a histogram except that a straight line is drawn between each
87
result, and that the results are arranged in polar form instead of rectangular form.
88
89 8 max
With this display, the zone at the exact center of the plot can be used precisely to measure the degree of separation or margin
90
between the symbol decision points.  The plots below illustrate the difference, with poorer convergence showing on the left image:
91 1 max
92 8 max
[[Image(mhp7a.png)]][[Image(c.png)]]
93
94
The two-color mode is used in these images, providing natural relief to highlight the distinctive feature of π/4 DQPSK in which 
95
successive symbols are chosen from two distinct constellations (each containing four possible symbol values) separated by 45°
96
97 4 max
== Demodulated Symbols ==
98
99
[[Image(d.png)]]
100
101 1 max
== Correlation ==
102
103
[[Image(e.png)]]
104
105 9 max
Cross correlation allows rapid identification of signals with known characteristics.  Frame Sync (FS) signatures of several commonly
106
used radio systems are included.
107
108
By convention correlation results are usually displayed using positive correlation peaks only.  In this system
109
however it is possible (and legal) for negative correlation products to be produced.  This can occur for two wholly separate reasons:
110
 * If the hardware polarity is inverted 
111
 * When the FS symbols are purposely inverted as an integral part of protocol processing (commonly used in certain protocols but not used in P25)
112
113
The first case commonly happens when using the disc-tap method of hardware connection, because the actual polarity of the signal seems to vary 
114
randomly among different sound cards and receivers.  In one actual case, two PC's of the same PC brand bought from the same store had opposite polarity.
115
116
The P25 software framer automatically detects the proper polarity and issues a message if negative polarity data is received:
117
{{{
118
Reversed FS polarity detected - autocorrecting
119
}}}
120
121
The automatic correction applies only to software framing and doesn't help with correlation.  For correct results for both software framing and
122
correlation, you should correct the polarity reversal problem at its source; this is done using negative values for the {{{--gain}}} parameter at 
123
program start time:
124
125
{{{
126
./scope.py -a -v 10 -g -50
127
}}}
128
129
The second cause of negative correlation peaks is that some protocols (although not P25) make use of both normal- and inverted-polarity FS 
130
sequences as a standard part of their processing.   Instead of clogging the GUI menu with several choices that are merely inverses of others,
131
just for the sake of always having positive-peaked correlations, we allow the correlation graph to reflect the natural polarity of the data.
132
Thus both + and - peaks are shown, allowing quick diagnosis of incorrect hardware polarity (see above), and allowing identification of the
133
particular sub-protocol in use.
134
135
== Auto Correlation ==
136
137 1 max
Also included is Frank's Fast Auto Correlation (fac):
138
139 8 max
[[Image(g.png)]]
140 9 max
141
For further details about Fast Auto Correlation refer to Frank's page at http://sites.google.com/site/radiorausch/
142 8 max
143
== BUGS ==
144
145
Possibly bugs exist, here are a few of the known ones as of this writing
146
 * Symbol filters totally brain damaged (need separate filters for each speed)
147
 * When switching modes using the notebook tabs, leftover data from before may appear momentarily
148
 * Highest and lowest speeds are not well tuned resulting either in sluggish updates or CPU exhaustion
Add picture from clipboard (Maximum size: 48.8 MB)