Project

General

Profile

Actions

SignalScopePage » History » Revision 10

« Previous | Revision 10/30 (diff) | Next »
max, 04/22/2017 04:04 PM


= Signal Scope =

Installation

Before running the scope app, check that the following standard pre-requisite packages are also installed: * GNU Radio * The op25 blocks * Frank's gr-fsk4 block * The op25 repeater block

The Python Numeric package is now also required. If you're running Debian or Ubuntu: {{{
apt-get install python-numeric
}}}

Other than these pre-reqs, no special setup or installation is needed.

There are three overall options or modes depending on your hardware; these are * USRP * External receiver with discriminator tap connected to sound card * External receiver with IF in the audio sound card range (e.g., 24 KHz), referred to as "audio IF"

Running with the disc-tap option

The signal scope does not require the USRP. If you have a discriminator-tapped receiver, use the "-a" option: {{{
./scope.py -a -v 10 -g 50
}}}

Running with the USRP

It's helpful to find out the current calibration error beforehand (I use kalibrate), for example, +1234 hertz: {{{
./scope.py -f 412.34e6 -RA -g 65 -c 1234 -v 10
}}}

Running in the Audio IF mode

Receivers equipped with an IF output in the sound card range can be used. This is known as "audio IF" mode.
A soundcard sampling rate of 96K is used and the IF frequency (typically 24 KHz) is given using the {{{--calibration}}} parameter:

{{{
./scope.py -A -c 24e3 -g 50 -v 10
}}}

Feature overview * Spectrum plot * Baseband oscilloscope * Eye Pattern Diagram (Datascope) display supporting several standard symbol rates * Constellation Diagrams * Demodulated Symbol Output * Correlation (including Fast Auto-Correlation) * Direct-frequency entry, signal gain and fine-tuning controls * User-selectable demodulator (FSK4 or QPSK)

In the USRP and audio-IF modes, several additional program functions are enabled (spectrum FFT, constellation diagram, PSK demod, and iDEN correlation).

In all modes, the {{{--wireshark}}} option is used to write received P25 packet data to Wireshark.

Program Options

Here is a full list of program options: {{{
Usage: scope.py [options]

Options:
-h, --help show this help message and exit
-a, --audio use direct audio input
-A, --audio-if soundcard IF mode (use --calibration to set IF freq)
-I AUDIO_INPUT, --audio-input=AUDIO_INPUT
pcm input device name. E.g., hw:0,0 or /dev/dsp
-i INPUT, --input=INPUT
input file name
-b Hz, --excess-bw=Hz
for RRC filter
-c Hz, --calibration=Hz
USRP offset or audio IF frequency
-C Hz, --costas-alpha=Hz
value of alpha for Costas loop
-f Hz, --frequency=Hz
USRP center frequency
-d DECIM, --decim=DECIM
source decimation factor
-v VERBOSITY, --verbosity=VERBOSITY
message debug level
-p, --pause block on startup
-w, --wireshark output data to Wireshark
-W WIRESHARK_HOST, --wireshark-host=WIRESHARK_HOST
Wireshark host
-R RX_SUBDEV_SPEC, --rx-subdev-spec=RX_SUBDEV_SPEC
select USRP Rx side A or B (default=A)
-g GAIN, --gain=GAIN set USRP gain in dB (default is midpoint) or set audio
gain
-G GAIN_MU, --gain-mu=GAIN_MU
gardner gain
}}}

Spectrum Display

Image(a.png)

The controls arranged along the bottom of the page are: * Frequency: to retune, type the new frequency here and press ENTER * Signal Gain: adjusts the baseband (demodulated) signal level * Fine Tune: adjusts tuning frequency over +/- 3000 Hz range * Demod: Selects demodulator (currently used in Demodulated Symbols only)
Except for the signal gain control, these controls are only available in USRP RX mode.

Eye Pattern Diagrams

The scope input source can be connected either before or after the symbol filter using the Viewpoint toggle.

Also the proper speed must be selected from the available options.

Image(b.png)

Constellation Diagram

Image(f.png)

The signal scope also features an angular population graph (shown above) in addition to the traditional constellation display.
In this mode the symbol magnitude (distance from center) is discarded. Instead the circle is sliced into segments and a count
of symbols found in each segment is plotted. This is similar to a histogram except that a straight line is drawn between each
result, and that the results are arranged in polar form instead of rectangular form.

With this display, the zone at the exact center of the plot can be used precisely to measure the degree of separation or margin
between the symbol decision points. The plots below illustrate the difference, with poorer convergence showing on the left image:

Image(mhp7a.png)Image(c.png)

The two-color mode is used in these images, providing natural relief to highlight the distinctive feature of π/4 DQPSK in which
successive symbols are chosen from two distinct constellations (each containing four possible symbol values) separated by 45°

Demodulated Symbols

Image(d.png)

Correlation

Image(e.png)

Cross correlation allows rapid identification of signals with known characteristics. Frame Sync (FS) signatures of several commonly
used radio systems are included.

By convention correlation results are usually displayed using positive correlation peaks only. In this system
however it is possible (and legal) for negative correlation products to be produced. This can occur for two wholly separate reasons: * If the hardware polarity is inverted * When the FS symbols are purposely inverted as an integral part of protocol processing (commonly used in certain protocols but not used in P25)

The first case commonly happens when using the disc-tap method of hardware connection, because the actual polarity of the signal seems to vary
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.

The P25 software framer automatically detects the proper polarity and issues a message if negative polarity data is received: {{{
Reversed FS polarity detected - autocorrecting
}}}

The automatic correction applies only to software framing and doesn't help with correlation. For correct results for both software framing and
correlation, you should correct the polarity reversal problem at its source; this is done using negative values for the {{{--gain}}} parameter at
program start time:

{{{
./scope.py -a -v 10 -g -50
}}}

The second cause of negative correlation peaks is that some protocols (although not P25) make use of both normal- and inverted-polarity FS
sequences as a standard part of their processing. Instead of clogging the GUI menu with several choices that are merely inverses of others,
just for the sake of always having positive-peaked correlations, we allow the correlation graph to reflect the natural polarity of the data.
Thus both + and - peaks are shown, allowing quick diagnosis of incorrect hardware polarity (see above), and allowing identification of the
particular sub-protocol in use.

Auto Correlation

Also included is Frank's Fast Auto Correlation (fac):

Image(g.png)

For further details about Fast Auto Correlation refer to Frank's page at http://sites.google.com/site/radiorausch/

BUGS

Possibly bugs exist, here are a few of the known ones as of this writing * Symbol filters totally brain damaged (need separate filters for each speed) * When switching modes using the notebook tabs, leftover data from before may appear momentarily * Highest and lowest speeds are not well tuned resulting either in sluggish updates or CPU exhaustion

Files (0)

Updated by max about 7 years ago · 10 revisions

Add picture from clipboard (Maximum size: 48.8 MB)