Error-control algorithm of voice messages transmission

High-speed and high-quality communications are required to ensure a smooth process of timely receipt and processing of information. The speed of obtaining information depends on the speed of response and timely management decisions. The development of information and telecommunication technologies has led to an increasing integration of communication and voice messaging systems implementing information processes in the control system. In communication systems where it is important to ensure the integrity, availability and confidentiality of transmitted information when low-bandwidth communication channels are used, voice information is encoded by special compression algorithms. Prefix codes are common in various fields of information technology. Many information compression algorithms are based on them, and they are used by different protocols. The use of run-length coding will reduce the speed of a transmitted signal and increase the throughput.


Introduction
The capabilities of modern computers allow deep audio processing devices to be implemented on portable computing devices. Thus, for example, [1] suggests the implementation of an audio processing device on a Raspberry Pi single board computer. Although the use of such a class of devices imposes limitations on the performance of algorithms, it significantly expands the possibilities of using voice recognition systems [2].
The most common method of speech compression, such as pulse code modulation (PCM), has now been adopted, which at a sufficiently high transmission rate has rather low noise immunity.
Various statistical methods can be used to analyze speech characteristics. The probability density distribution of instantaneous values of a speech signal is normal. Since the instantaneous values of the speech signal do not appear uniformly with different probabilities, the speech signal can be encoded with a non-uniform code. This can reduce the speed to 54 kbps using the Huffman's algorithm.

Methods and materials
The signal is converted using the convolutional code. The convolutional encoder is shown in Figure 1.

Results
Let us illustrate the operation of the error-control algorithm of voice message transmission. Let us suppose that v=10100000100000000000… This corresponds to the transmission of a zero codeword with three errors. The messages are decoded via the Viterbi array ( Figure 3).

Figure 3. Decoding array
Prior to the third iteration, there is only one path to the first node of the first frame during decoding. The ambiguity occurs only from the third step, so the decoder's work will be considered from this iteration. Figure 4 shows the diagram of decoder states at the third iteration. Here, the decoder finds the shortest path to each node of the third frame. Next, at the fourth iteration, the decoder finds the shortest path to each node of the fourth frame. This is shown in Figure 5. There are three alternative paths here that have the same Hamming distance.  Figure 6. The decoder removes one path with the maximum Hamming distance.

Figure 6. Fifth iteration
Next, at the sixth iteration, the decoder finds the shortest path to each node of the sixth frame. This is shown in Figure 7. As can be seen from the figure, the decoder has several alternative paths that it stores.

Figure 7. Sixth iteration
At the seventh iteration, the decoder finds the shortest path to each node of the seventh frame. This is shown in Figure 8. After each iteration, four alternative paths remain.

Figure 8. Seventh iteration
Next, at the eighth iteration, the decoder finds the shortest path to each node of the eighth frame. This is shown in Figure 9.    Figure 12 shows the paths along the decoding array at step 11 of the decoder operation. As can be seen from the figure, there is one path with the minimum Hamming distance (3), two paths with the same distance (6), and one path with the distance equal 5. Next, at the twelfth iteration, the decoder finds the shortest path to each node of the twelfth frame. This is shown in Figure 13.  Next, at the fourteenth iteration, the decoder finds the shortest path to each node of the fourteenth frame. This is shown in Figure 15. At the fifteenth step of operation, the decoder finds the shortest path to each node of the fifteenth frame, as shown in Figure 16. In this case the minimum Hamming distance is equal 3 and the decoder chooses the upper path 000000000000000. Thus, the decoder corrected three errors in the code sequence received from the communication channel. Each time while moving forward and entering a previously investigated node, the decoder has a smaller threshold. The decoder will never enter the same node twice with the same threshold values.
Therefore, it can only enter any node a finite number of times. This behavior guarantees the decoder circularity. The decoder continues data processing by performing correct or incorrect decoding.
Thus, the algorithm shown in Figure 18 was developed to improve the error immunity of voice transmission. The Huffman algorithm converts an 8-bit pulse-code pattern into a non-uniform code pattern.
• item 5. Convolutional coding. Check symbols of a noise-free convolutional code are added to code combinations of the nonuniform code to free time positions so that the digital signal rate is 64 kbps (for matching with the main digital channel). For this purpose convolutional encoder with the speed of 1/3 and code limitation 5 is used.
• item 6. Transmission over the communication channel. The code combinations arrive at a communication channel thus causing errors due to distortion and interference.
• item 7. Decoding of the convolutional code. The code symbols get through the communication channel to the input of the decoder where Viterbi decoding takes place, which is based on the principle of sequential decoding. The decoder only looks at the first frame, makes a decision, and goes to the array node at the first layer. At each level it is in the same node, it looks at the next frame, selecting the edge closest to the received frame, and moves to the node at the next level.
• item 8. Are there errors? Checking for errors. If there are no errors, then the algorithm moves to the next item. In case of errors, it return to item 7 until all errors are fully corrected.
• item 9. Conversion of non-uniform code to PCM. The corrected code pattern of the non-uniform code is converted to PCM count.
The last PCM count from the non-uniform decoder is checked.

Conclusion
Thus, the developed error-control algorithm of voice message transmission allows reducing the transmitted signal speed to 54 kbps due to non-uniform coding and increasing the reliability of voice message transmission by 2 dB due to convolutional coding.
Besides, it is necessary to study the system by means of the system analysis, mathematical modeling and programming [3].