Project

General

Profile

SignalScopePage » History » Version 10

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 10 max
== Program Options ==
62
63
Here is a full list of program options:
64
{{{
65
Usage: scope.py [options]
66
67
Options:
68
  -h, --help            show this help message and exit
69
  -a, --audio           use direct audio input
70
  -A, --audio-if        soundcard IF mode (use --calibration to set IF freq)
71
  -I AUDIO_INPUT, --audio-input=AUDIO_INPUT
72
                        pcm input device name.  E.g., hw:0,0 or /dev/dsp
73
  -i INPUT, --input=INPUT
74
                        input file name
75
  -b Hz, --excess-bw=Hz
76
                        for RRC filter
77
  -c Hz, --calibration=Hz
78
                        USRP offset or audio IF frequency
79
  -C Hz, --costas-alpha=Hz
80
                        value of alpha for Costas loop
81
  -f Hz, --frequency=Hz
82
                        USRP center frequency
83
  -d DECIM, --decim=DECIM
84
                        source decimation factor
85
  -v VERBOSITY, --verbosity=VERBOSITY
86
                        message debug level
87
  -p, --pause           block on startup
88
  -w, --wireshark       output data to Wireshark
89
  -W WIRESHARK_HOST, --wireshark-host=WIRESHARK_HOST
90
                        Wireshark host
91
  -R RX_SUBDEV_SPEC, --rx-subdev-spec=RX_SUBDEV_SPEC
92
                        select USRP Rx side A or B (default=A)
93
  -g GAIN, --gain=GAIN  set USRP gain in dB (default is midpoint) or set audio
94
                        gain
95
  -G GAIN_MU, --gain-mu=GAIN_MU
96
                        gardner gain
97
}}}
98
99 4 max
== Spectrum Display ==
100
101
[[Image(a.png)]]
102
103
The controls arranged along the bottom of the page are:
104
 * Frequency: to retune, type the new frequency here and press ENTER
105
 * Signal Gain: adjusts the baseband (demodulated) signal level
106
 * Fine Tune: adjusts tuning frequency over +/- 3000 Hz range
107
 * Demod: Selects demodulator (currently used in Demodulated Symbols only)
108
Except for the signal gain control, these controls are only available in USRP RX mode.
109
110
== Eye Pattern Diagrams ==
111
112
The scope input source can be connected either before or after the symbol filter using the Viewpoint toggle.
113
114
Also the proper speed must be selected from the available options.
115
116
[[Image(b.png)]]
117
118
== Constellation Diagram ==
119
120 7 max
[[Image(f.png)]]
121
122
The signal scope also features an angular population graph (shown above) in addition to the traditional constellation display.
123
In this mode the symbol magnitude (distance from center) is discarded.  Instead the circle is sliced into segments and a count
124
of symbols found in each segment is plotted.  This is similar to a histogram except that a straight line is drawn between each
125
result, and that the results are arranged in polar form instead of rectangular form.
126
127 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
128
between the symbol decision points.  The plots below illustrate the difference, with poorer convergence showing on the left image:
129 1 max
130 8 max
[[Image(mhp7a.png)]][[Image(c.png)]]
131
132
The two-color mode is used in these images, providing natural relief to highlight the distinctive feature of π/4 DQPSK in which 
133
successive symbols are chosen from two distinct constellations (each containing four possible symbol values) separated by 45°
134
135 4 max
== Demodulated Symbols ==
136
137
[[Image(d.png)]]
138
139 1 max
== Correlation ==
140
141
[[Image(e.png)]]
142
143 9 max
Cross correlation allows rapid identification of signals with known characteristics.  Frame Sync (FS) signatures of several commonly
144
used radio systems are included.
145
146
By convention correlation results are usually displayed using positive correlation peaks only.  In this system
147
however it is possible (and legal) for negative correlation products to be produced.  This can occur for two wholly separate reasons:
148
 * If the hardware polarity is inverted 
149
 * When the FS symbols are purposely inverted as an integral part of protocol processing (commonly used in certain protocols but not used in P25)
150
151
The first case commonly happens when using the disc-tap method of hardware connection, because the actual polarity of the signal seems to vary 
152
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.
153
154
The P25 software framer automatically detects the proper polarity and issues a message if negative polarity data is received:
155
{{{
156
Reversed FS polarity detected - autocorrecting
157
}}}
158
159
The automatic correction applies only to software framing and doesn't help with correlation.  For correct results for both software framing and
160
correlation, you should correct the polarity reversal problem at its source; this is done using negative values for the {{{--gain}}} parameter at 
161
program start time:
162
163
{{{
164
./scope.py -a -v 10 -g -50
165
}}}
166
167
The second cause of negative correlation peaks is that some protocols (although not P25) make use of both normal- and inverted-polarity FS 
168
sequences as a standard part of their processing.   Instead of clogging the GUI menu with several choices that are merely inverses of others,
169
just for the sake of always having positive-peaked correlations, we allow the correlation graph to reflect the natural polarity of the data.
170
Thus both + and - peaks are shown, allowing quick diagnosis of incorrect hardware polarity (see above), and allowing identification of the
171
particular sub-protocol in use.
172
173
== Auto Correlation ==
174
175 1 max
Also included is Frank's Fast Auto Correlation (fac):
176
177 8 max
[[Image(g.png)]]
178 9 max
179
For further details about Fast Auto Correlation refer to Frank's page at http://sites.google.com/site/radiorausch/
180 8 max
181
== BUGS ==
182
183
Possibly bugs exist, here are a few of the known ones as of this writing
184
 * Symbol filters totally brain damaged (need separate filters for each speed)
185
 * When switching modes using the notebook tabs, leftover data from before may appear momentarily
186
 * 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)