The Linrad network. Loopback on a single computer.
(Dec 22 2008)


Linrad uses the network to make raw or processed data available to other programs that may run on the same computer or on any other computer in a local network. For details look here THE LINRAD NETWORK"


With modern hardware the sampling rates may become high and the network bandwidth may become a problem. Linrad uses the sendto function to send data over the network. Linrad versions older than 02.53 used the network sockets in blocking mode and that caused loss of input whenever the network was too slow. The effect could be seen as an incorrect, too slow, A/D sampling rate. The associated phase jumps on strong signals might degrade decoding of the received data.

Linrad-02.53 and later use non-blocking calls with sendto. In case the network is too slow there will be error messages on the screen of the transmitting program. (The missing packages will create error messages on the screen of receiving programs, but a receiving Linrad will fill zeroes for missing data so occasional package losses should normally not be a problem.)

Network error messages on the transmit side may be caused not only by inadequate network speed. If the cause of the problem is unclear, read the file z_NETWORK.txt which is distributed with the linrad package.

The error could be that there is no network. Under Linux it may be necessary to have an Ethernet adapter present, but there is no need to actually have any Ethernet cable connected. Under Windows, just having an Ethernet adapter does not help, it is necessary to have a cable connected to make the Ethernet interface enable a network. Other adapters, e.g. WLAN seem to have to be in a connected state both under Windows and Linux to enable the network.

If there is no hardware to make a network available on a stand-alone computer one can install a loopback device. This is the way to do it under Windows:

1) Start the normal installation procedure for new hardware.
2) Click Yes, I have already connected the hardware, and then click Next.
3) At the bottom of the list, click Add a new hardware device, and then click Next.
4) Click Install the hardware that I manually select from a list, and then click Next.
5) Click Network adapters, and then click Next.
6) In the Manufacturer box, click Microsoft.
7) In the Network Adapter box, click Microsoft Loopback Adapter, and then click Next.
8) Click Finish.

If you know the corresponding procedure under Linux, please send an E-mail.

In case a connection to some other hardware is used to make a network available for connecting multiple instances of Linrad to each other within a single computer it may be necessary to select what hardware to connect with some care. The sendto function will block until the slowest of all available connections has enough buffer space available. If your network is slow, maybe you have a slow switch at the other end of your Ethernet cable - or one with inadequate buffer capabilities. Try to search the Internet for ideas in case your network is slow.

Multiple soundcard output.

Depending on the sound system it may or may not be possible to open the same device for loudspeaker output simultaneously from different programs running in the same computer.

In Linrad-02.56 and later it is possible to disable the loudspeaker output.

This way it is easy to avoid that more than one instance of Linrad tries to open the soundcard device.

Saving multiple .wav files.

Figure 1 shows desktop #1 of a Compaq 6510b (Centrino Duo) running X11 under Debian. In total nine instances of linrad are running simultaneously. All of them processing the same data that is the input to the instance shown in figure 1 (with PID=3890.) The data is the file 530-930khz.wav available here Medium wave AM with Linrad. It is a recording with a sampling speed of 0.5 MHz. Linrad is set to repeat the same recording over and over again. Each time the file reaches its end an A/D speed error is generated. With live data from a radio multiple instances should run without errors at higher sampling rates.

All nine instances of Linras save a .wav file of the demodulated AM from nine different stations. The slaves are on desktop #2 and 3.They look like figure 2. The master instance of Linrad computes fft1 transforms and sends them to the slaves. The fft1 window is set to sin to power 1 to not overload the network. It is obvious that there is enough CPU capacity to manage more instances of Linrad at the same time.

Recording .wav files for a couple of selected stations continuously for days or weeks might be interesting for propagation studies. Recording the full 0.5 MHz spectrum over long times would not be realistic today. The 0.5 MHz spectrum generates 8 bytes for each fft bin and the transforms arrive at .75 MHz with the window used. The network thus transfers data at 50 megabit per second.

Fig 1. The master sending data over the network.

Fig 2. Four of the slaves receiving the high speed data and writing low speed .wav files to the hard disk.

Figure 3 shows the same situation on the same computer under Windows. The Microsoft Loopback Adapter specifies its bandwidth to 10 megabit/s but it actually runs much faster. Well above 100 megabit/s.

Fig 3. Master and three slaves under Microsoft Windows.

To SM 5 BSZ Main Page