2017-08-03 11:46:31 +00:00
|
|
|
<html>
|
|
|
|
<head>
|
|
|
|
<link href="style.css" rel="stylesheet" type="text/css" />
|
|
|
|
<title>osmocom-analog</title>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<center><table><tr><td>
|
|
|
|
|
|
|
|
<h2><center>SDR setup</center></h2>
|
|
|
|
|
|
|
|
<center><img src="sdr.jpg"/></center>
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
<li><a href="#intro">Introduction</a>
|
|
|
|
<li><a href="#limesdr">LimeSDR</a>
|
|
|
|
<li><a href="#uhd">UHD</a>
|
|
|
|
<li><a href="#mchan">Multiple channels</a>
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
<p class="toppic">
|
|
|
|
<a name="intro"></a>
|
|
|
|
Introduction
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
A far more convenient way is to use an SDR.
|
|
|
|
Why would you (not) want to do that?
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
<li>Not a bunch of cables and radios, just one device.
|
|
|
|
<li>Simulate multiple channels with a single SDR channel.
|
|
|
|
<br>Keep control channel while using voice channel(s).
|
|
|
|
<li>No audio level (deviation) calibration is required.
|
|
|
|
<li>The polarity of the frequency deviation (FFSK) is always correct.
|
|
|
|
<li>No radio mod for discriminator output required.
|
|
|
|
<li>No radio mod for modulator input required.
|
|
|
|
<li>Don't care about correct emphasis.
|
|
|
|
<li>Carrier FSK never returns to zero, no AC coupling.
|
|
|
|
<li>Switching to channel 19 (B-Netz) works without transmitter hack.
|
|
|
|
<li>More experience is required to run an SDR.
|
|
|
|
<li>The device must be full-duplex.
|
|
|
|
<li>In 2017, they are still more expensive than analog radios.
|
|
|
|
</ul>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
It may sound weird, but you are able to simulate multiple channels with only one SDR.
|
|
|
|
The I/Q data of an SDR allows to shift the frequency.
|
|
|
|
By adding multiple frequencies, shifted by different offset, allows to transmit multiple down-link channels at a time.
|
|
|
|
By using a filter, the mix of received up-link channels can be separated.
|
|
|
|
Multiple channels require multiple CPU usage or even more.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
How to use an SDR and install the driver software and drivers is beyond the scope of this document.
|
|
|
|
I assume that you successfully used your SDR with Gnu Radio,
|
|
|
|
know how to select antenna connectors,
|
|
|
|
know about DC calibration,
|
|
|
|
know about clock settings,
|
|
|
|
know about transmit and receive gains,
|
|
|
|
and so on...
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p class="toppic">
|
|
|
|
<a name="limesdr"></a>
|
|
|
|
LimeSDR
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
If you have this device, you need to install the SoapySDR, then the LimeSuit and finally run configure with Osmocom Analog, compile and install.
|
|
|
|
Run Osmocom Analog with --help again, and you should see a bunch of option for SDR.
|
|
|
|
In case of B-Netz, I use the following parameters:
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
|
|
|
# bnetz --sdr-soapy \
|
|
|
|
--sdr-tx-gain 50 \
|
|
|
|
--sdr-rx-gain 30 \
|
|
|
|
--sdr-samplerate 5000000 \
|
|
|
|
-s 100000 \
|
|
|
|
-k 17
|
|
|
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
In order to change from analog sound card to SDR, you need <b>--sdr-soapy</b> option.
|
|
|
|
In my setup I use antennas directly connected to the SDR.
|
|
|
|
Being about 1-10 meters away, I use the <b>gain</b> as defined above.
|
|
|
|
The <b>sample rate</b> must be 5 MHz minimum.
|
2017-12-04 13:12:11 +00:00
|
|
|
The default <b>bandwidth</b> follows the sample rate, if not specified using <b>--sdr-bandwidth</b>.
|
2017-08-03 11:46:31 +00:00
|
|
|
Higher sample rate causes more CPU, RAM and USB load.
|
2017-12-04 13:12:11 +00:00
|
|
|
The local oscillator frequency causes the transmitted signal to be noisy, so I shift it 1 MHz away, using the default <b>--sdr-lo-offset</b>.
|
2017-08-03 11:46:31 +00:00
|
|
|
The audio processing rate of 100 KHz (<b>-s 100000</b>) is used to generate two channels: <b>17</b> and 19.
|
|
|
|
Note that channel 19 is not given here, but will be used automatically.
|
|
|
|
With B-Netz, the transmitter switches from any voice channel to the paging channel (19) whenever the phone gets paged.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<center><img src="display-iq.png"/></center>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
The RX gain is quite important.
|
|
|
|
You can monitor it by pressing 'q' key.
|
|
|
|
You will get an ASCII art plot of received IQ data.
|
|
|
|
Press 'q' again and you will get a logarithmic view of IQ vectors.
|
|
|
|
Press 'q' again to turn off this view.
|
|
|
|
Please monitor this view when the phone tries to call or register.
|
2017-10-03 08:48:50 +00:00
|
|
|
If the dots are yellow, or red, the received signal may overdrive the ADC.
|
|
|
|
Especially when the linear view shows a deformed circle (or even rectangle), reduce RX level.
|
2017-08-03 11:46:31 +00:00
|
|
|
</p>
|
|
|
|
|
|
|
|
<center><img src="display-spectrum.png"/></center>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
Press 's' to get an ASCII art graph of received frequency spectrum.
|
|
|
|
The spectrum's bandwidth is defined by the sample rate (-s) and not by the SDR sample rate!
|
2017-10-03 08:48:50 +00:00
|
|
|
If you don't get nice peaks, but maybe several peaks, you might over-driven the input.
|
2017-08-03 11:46:31 +00:00
|
|
|
Note that the peak will spread by the frequency deviation, so the peak might look noisy on the top.
|
|
|
|
If the peak is quite low, check the input gain.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p class="toppic">
|
|
|
|
<a name="uhd"></a>
|
|
|
|
UHD
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
Most things apply to the things stated at the LimeSDR section.
|
|
|
|
I have good experience, even without using IF offset or special resampling (--sdr-samplerate) or special bandwidth settings.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
You can run any UHD device using SoapySDR or UHD API.
|
|
|
|
Use "--sdr-uhd" to use the UHD API.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p class="toppic">
|
|
|
|
<a name="mchan"></a>
|
|
|
|
Multiple Channels
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
2017-09-03 17:13:36 +00:00
|
|
|
Multiple channels can be useful, to keep the control channel, while establishing one or even multiple voice channels.
|
2017-12-05 19:36:11 +00:00
|
|
|
One nice feature of SDR is that a spectrum is transmitted and not just one modulated carrier.
|
|
|
|
Because the carrier is actually generated in software, we can generate multiple carriers that fit in our spectrum.
|
2017-08-03 11:46:31 +00:00
|
|
|
I suggest to have at least one channel space between channels you want to generate.
|
|
|
|
I suggest to use channel 1 and 3 or even channel 1 and 4 for NMT system.
|
2017-12-05 19:36:11 +00:00
|
|
|
The software will notice you, if the channels wont fit into the spectrum.
|
2017-08-03 11:46:31 +00:00
|
|
|
In this case increase the sample rate (-s) to generate a wider spectrum. (--sdr-samplerate must not need to be changed)
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
Note that the CPU usage increases for the main thread.
|
|
|
|
I suggest to monitor the usage using "top -H".
|
|
|
|
You will see each thread. Be sure not to get too close to 100 percent.
|
2017-09-03 17:13:36 +00:00
|
|
|
I suggest to stay below 60% for each threads.
|
2017-08-03 11:46:31 +00:00
|
|
|
</p>
|
|
|
|
|
2017-09-03 17:13:36 +00:00
|
|
|
<p>
|
2017-12-05 19:36:11 +00:00
|
|
|
<b>Example: C-Netz</b><br>
|
2017-09-03 17:13:36 +00:00
|
|
|
Two channes are created, one the OgK (control channel) and one SpK (speech channel).
|
|
|
|
The distance between channels is 20 KHz (two channels).
|
|
|
|
Because C-Netz uses only odd channel numbers for 10 KHz spacing, we use channel 131 (OgK) and 135 (SpK).
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
|
|
|
# cnetz --sdr-soapy \
|
|
|
|
--sdr-rx-gain 50 \
|
|
|
|
--sdr-tx-gain 30 \
|
|
|
|
--sdr-samplerate 5000000 \
|
|
|
|
-s 100000 \
|
|
|
|
-k 131 -k 135 \
|
|
|
|
-C 0,0
|
|
|
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
<p>
|
2017-12-05 19:36:11 +00:00
|
|
|
<b>Example: Test TV signal</b><br>
|
|
|
|
Transmit PAL 'FUBK' test image on TV channel 21.
|
2017-09-03 17:13:36 +00:00
|
|
|
</p>
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
|
|
|
# osmotv --sdr-soapy \
|
|
|
|
--sdr-tx-gain 60 \
|
2017-12-04 13:12:11 +00:00
|
|
|
--sdr-bandwidth 60000000 \
|
2017-09-03 17:13:36 +00:00
|
|
|
-r 13750000 \
|
|
|
|
-c 21 \
|
|
|
|
tx-fubk
|
|
|
|
|
|
|
|
</pre>
|
|
|
|
|
2017-08-03 11:46:31 +00:00
|
|
|
<hr><center>[<a href="index.html">Back to main page</a>]</center><hr>
|
|
|
|
</td></tr></table></center>
|
|
|
|
</body>
|
|
|
|
</html>
|
|
|
|
|