Generating variable communication channel responses using machine learning networks
Patent Information
- Application Number
- JP2023573413
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-05-28
- Filing Date
- 2022-05-27
- Publication Date
- 2026-07-09
- Estimated Expiration
- 2042-05-27
AI Technical Summary
Conventional communication systems rely on static models that do not accurately account for natural variations in the environment, leading to sub-optimal performance and the need for additional fine-tuning.
Integratively or iteratively train neural networks to process communication signals using encoder and decoder networks that learn from real-world channel responses, optimizing channel approximation and encoding/decoding processes through machine learning techniques.
Enables communication systems to adapt to real-world variations, achieving near-optimal performance by approximating complex channel responses without compromising accuracy.
Smart Images

Figure 0007887439000007 
Figure 0007887439000008 
Figure 0007887439000009
Abstract
Description
Cross - reference to related applications
[0001] This application claims the benefit of priority of U.S. Provisional Application No. 63 / 194,744, filed on May 28, 2021, the content of which is hereby incorporated herein by reference in its entirety.
Technical Field
[0002] This specification generally relates to communication systems using machine learning and includes the processing of communication signals using a machine learning network.
Background Art
[0003] Communication systems involve transmitting and receiving various types of communication media, for example, via air, optical fiber cables or metal cables, underwater, or in outer space. In some cases, the communication channel uses radio frequency (RF) waveforms to transmit information, and that information is modulated onto one or more carrier waveforms operating at RF frequencies. Also, the RF waveform itself may be information such as the output of a sensor or a probe. The information carried by the RF waveform is typically processed, stored, and / or transported via a communication channel or other forms of communication, such as via an internal system bus within a computer or via a local or wide - area network.
Summary of the Invention
[0004] In some implementations, the subject matter described herein can be embodied in methods, apparatus, and systems for integratively or iteratively training neural networks to process communication signals. The neural networks may include one or more neural networks configured to encode communication signals transmitted over a communication channel, one or more neural networks configured to decode encoded signals transmitted and received over the channel, and one or more neural networks configured to simulate or approximate the effects of real-world communication channels on communication signals propagating over the channel (e.g., effects such as fading or interference resulting from a dense urban multipath environment, an overcrowded or congested indoor environment, a dynamic or high-speed environment, a high-latency spread or high-dopra environment, or other forms of interference and / or a distorted packed channel environment). One or more neural networks simulating or approximating the effects of real-world communication channels may be trained using variational autoencoders to generate a variable channel response. The channel response may include complex or real values of power received at different delays for one or more antennas. The power received with different delays may be due to the transmitted signal being reflected, refracted, scattered, or absorbed by various characteristics of the communication channel environment. Changes in the environment, such as vehicles moving across the signal propagation path or changes in weather, can cause the power received by the receiver to change with different delays.
[0005] Conventional models for simulating or approximating communication channels are static models. Some include tuning parameters that take into account the type of environment, e.g., rural, urban, sub-urban. However, such static models do not account for natural variations in the environment and do not reflect the actual conditions of a particular environment; instead, they typically reflect average conditions in similar environments. As a result, communications tuned and analyzed using such models are not always accurate and may require additional fine-tuning by the user. In contrast, the subject matter described herein provides for generating channel responses based on information about actual signals transmitted in a specific environment (e.g., a specific environment, or an environment that shares a threshold number of features with a specific environment or other memory environment). Furthermore, channel responses can be varied over time to approximate real-world variations in signal propagation due to variations in the communication environment (e.g., among other things, movement of objects, vehicles, time of day, weather changes).
[0006] Communication systems have traditionally been constructed by manually defining and implementing modulation and coding algorithms based on analytical models derived with convenient algebraic formulas (e.g., for channel effects, for the structure of the modulation and / or coding processes, and / or for other transceiver effects). In contrast to such manual engineering artifacts, the techniques disclosed herein use encoder and decoder networks that rely on large-scale learning processes and data (e.g., from measurements) to convert or encode a message of first information into a near-optimal transmit waveform and decode the received waveform into a second information message, which are increasingly efficient and near-optimal. For example, in some embodiments, the gradient of a loss or distance function between the first and second information is used for parameter backpropagation in the machine learning network to optimize such an encode and decode network.
[0007] To compute this gradient between the encoder and decoder, a model of the interference occurring in the radio signal based on analog hardware components and / or radio propagation effects (e.g., a communication channel model) may be included, and its gradient may also be computed. This disclosure describes training this channel model and methods and systems for iteratively training the trained encoder and decoder system by treating it as two learning problems that can be optimized as one or more problems, or by substituting the two problems. In some cases, the learning involves optimization using machine learning methods such as stochastic gradient descent. In some implementations, the process of optimizing two competing objective functions or loss functions is performed by an adversarial network.
[0008] By using parametric networks for functional approximation and a wide variety of linear, nonlinear, and difficult-to-model channel fault effects, communication channels can be rapidly approximated and modeled by the disclosed techniques without compromising the validity of the channel model by attempting to simplify it. By optimizing together the target of channel approximation and near-optimal information encoding for the approximate channel, communication systems can be designed for specific hardware devices, communication systems, channel types or faults, or other constraints that are traditionally difficult to model or that are difficult to achieve sub-optimal performance with (e.g., when simplifying assumptions about channel effects).
[0009] Traditionally, communication system design has been treated as a manual analysis problem broken down into several specific tasks, such as arranging the most isolated constellation points on an equally spaced rectangular grid with a simple analytical slicing function, or designing codewords that employ rate-changing polynomials and introduce probabilistically recoverable parity or information mixing through a customized decoding algorithm. However, as described below, the disclosed technology treats communication systems as a large optimization problem in which a network of highly flexible encoders and decoders can arbitrarily mix information and learn a near-optimal encoded representation, primarily driven by high-level loss functions (e.g., symbol error rate or bit error rate). In doing so, the disclosed technology enables a new class of highly efficient communication system design that can surpass conventional solutions to many wireless communication and encoding problems. In this context, near-optimal is intended to represent something roughly equivalent to what is achievable in terms of performance metrics such as capability, throughput, or power, given the physical and information theory limits to a set of wireless systems and operating environment constraints.
[0010] Traditional systems that rely on manually defined processes to encode and decode first information to obtain second information typically use specific assumptions about the channel model they optimized. For example, traditional modulation methods (e.g., QPSK, 64-QAM, OFDM, or similar) or coding methods (e.g., convolutional codes, BCH codes, turbo codes, LDPC codes, or similar) were modeled against known channel models. Often, the channel models used are simplified to facilitate the derivation, proof, and demonstration of the analysis of the model under study (i.e., the modulation or coding method). For example, a common assumption is that the channel has simple additive white Gauss noise (AWGN) rather than more realistic radio frequency (RF) noise. Analytical channel models exist and are used for common channel effects (e.g., multipath fading, carrier offset, and Doppler modeling), but some are poor approximations of real-world effects. Often, channel measurements in a specific deployment environment are used to understand and approximate how parameterized, closed-form channel models are derived. These measurements can be difficult or expensive to perform and are often limited to modeling only a few parameters, thus failing to fully represent the real-world effects of channels. Similarly, existing learning encoding and decoding systems often use differable models of channel effects, expressed in a closed analytical form, to perform optimizations, relying on compact, closed-form equations for each effect present within the channel.
[0011] In contrast to the above, the techniques disclosed herein rely on the direct optimization and observation of channel models against real-world channel measurements, as well as high-degree-of-freedom nonlinear network models to approximate the channels. This approach eliminates the need for closed-form channel models or assumptions about channel effects present within the system. In some cases, channels are approximated iteratively or concurrently using encoding optimization processes to learn near-optimal representations and encoded versions across a wide range of nonlinear and / or difficult-to-model channel fault sources in wireless or analog components such as amplifiers.
[0012] One innovative aspect of the subject matter described herein is a method which comprises obtaining one or more values representing the response of a communication channel, the one or more values representing the channel response being represented by a first data structure represented by N degrees of freedom; providing one or more values to a first machine learning model trained to generate parameters for a second data structure represented by less than N degrees of freedom; obtaining a first output from the first machine learning model, the first output comprising one or more parameters; generating a second data structure using one or more parameters; and providing the second data structure to a second machine learning model trained to generate a synthetic channel response.
[0013] Other implementations of this and other aspects include computer programs encoded on computer storage devices and configured to perform the operations of corresponding systems, apparatus, and methods. One or more computer systems consist of software, firmware, hardware, or a combination thereof installed on the system that can cause the system to perform operations during operation. One or more computer programs can consist of instructions that cause the apparatus to perform operations when executed by a data processing device.
[0014] The aforementioned and other embodiments may each optionally include, individually or in combination, one or more of the following features. For example, in some implementations, generating a second data structure using one or more parameters includes determining a probability distribution using one or more parameters and obtaining values for the second data structure using the probability distribution.
[0015] In some implementations, the operation involves comparing a probability distribution with a training distribution to train a first machine learning model, and updating the first machine learning model based on the comparison of the probability distribution and the training distribution.
[0016] In some implementations, the training distribution is one of the following: a Gaussian distribution, tapped delay lines (TDL), cluster delay lines (CDL), a lysian distribution, a Rayleigh distribution, or the result from a simulated ray tracing model or other spatial simulation model.
[0017] In some implementations, the operation involves comparing the synthetic channel response with one or more obtained channel responses and adjusting the parameters of a second machine learning model based on the comparison of the synthetic channel response with one or more obtained channel responses.
[0018] In some embodiments, the operation includes transmitting first information over a communication channel, obtaining second information as an output of the communication channel, which is a representation of the first information modified by the transmission over the communication channel, and generating one or more values representing the channel response based on a comparison of the first information with the second information.
[0019] In some implementations, the communication channel includes at least one of the following: additional white Gaussian noise (AWGN) or Rayleigh fading channel models, International Telecommunication Union (ITU) or Third Generation Partnership Project (3GPP) fading channel models, emulated radio emissions, emulated geometry models, ray tracing in simulated geometry or environment, channel effects, TDL, CDL, machine learning networks trained to perform approximate measurements on real channels, channel state information estimation routines or other measurement signal processing algorithms, a combination of simulation and hardware transmission components, or an environment that generates channel measurements within a radio system.
[0020] In some implementations, the operation includes generating a received signal using the synthesized channel response and information corresponding to the received signal.
[0021] In some implementations, generating the received signal involves generating an output corresponding to a combination of the synthesized channel response and the information as the received signal.
[0022] In some implementations, the combination includes the result of multiplication between the data represented by the synthetic channel response and the data represented by the information.
[0023] In some implementations, the combination includes the result of convolution between data represented by a synthetic channel response and data represented by information.
[0024] Another innovative aspect of the subject matter described in this specification is embodied in a method that includes obtaining one or more values from a distribution of values, providing the one or more values to a neural network trained to generate a simulated channel response corresponding to one or more radio frequency (RF) communication channels, and obtaining an output of the neural network based on processing of the one or more values by the neural network, the output indicating a simulated channel response corresponding to at least one communication channel of the one or more RF communication channels.
[0025] Other implementations of this and other aspects include corresponding systems, devices, and computer programs configured to perform the operations of the methods encoded on a computer storage device. A system of one or more computers may be configured by software, firmware, hardware, or combinations thereof installed in the system, and can cause the system to perform operations during operation. One or more computer programs can be configured by having instructions that, when executed by a data processing apparatus, cause the apparatus to perform operations.
[0026] The foregoing and other embodiments can each, optionally, include, alone or in combination, one or more of the following features. For example, in some implementations, the distribution of values is generated by an encoder neural network.
[0027] In some implementations, the operations include training an encoder neural network using one or more real-world channel responses.
[0028] In some implementations, the operations include training an encoder neural network using, as one or more transmit and receive data pairs, data transmitted via a communication channel and data received after being transmitted via the communication channel.
[0029] In some implementations, simulated channel responses are used to provide training outputs, which are used to train one or more of a wireless receiver, a channel estimator, a signal encoder network, a signal decoder network, or a multiple input multiple output (MIMO) system.
[0030] In some implementations, the training output includes an approximation of the received signal.
[0031] In some implementations, the distribution of values is generated using data captured from a radio unit (RU) or a distributed unit (DU).
[0032] In the accompanying drawings and the following description, details of one or more embodiments of the present invention are described. Other features and advantages of the present invention will become apparent from the description, the drawings, and the claims.
Brief Description of the Drawings
[0033] [Figure 1] FIG. 1 is a diagram showing an example of a system for training one or more networks based on an acquired channel response.
[0034] [Figure 2] FIG. 2 is a diagram showing an example of a channel approximation system including a channel decoder network for generating a simulated channel response.
[0035] [Figure 3] FIG. 3 is a diagram showing an example of a system including a channel encoder network and a channel decoder network for generating a learned latent space variable for generating a simulated channel response.
[0036] [Figure 4]Figure 4 shows an example of a system that acquires channel responses and trains channel encoder networks and channel decoder networks of channel approximation systems.
[0037] [Figure 5A] Figure 5A shows an example of a system for updating a receiver using a trained channel decoder network.
[0038] [Figure 5B] Figure 5B shows an example of a channel simulator.
[0039] [Figure 6] Figure 6 shows an example of a system for using a trained signal encoder network and a trained signal decoder network to send and receive wireless transmissions.
[0040] [Figure 7] Figure 7 shows an example of a deployment scenario.
[0041] [Figure 8] Figure 8 shows an example of a system for simulating radio propagation.
[0042] [Figure 9] Figure 9 is a flowchart illustrating an example of the process for training a channel approximation system.
[0043] [Figure 10] Figure 10 is a flowchart illustrating an example of a process for training a channel approximation system using both a signal encoder network and a signal decoder network.
[0044] [Figure 11] Figure 11 shows an example of a computing system used for training neural networks and generating variable communication channel responses.
[0045] Similar to reference numbers and references in various drawings, this indicates similar elements. [Modes for carrying out the invention]
[0046] Figure 1 shows an example of a system 100 for training one or more networks based on acquired channel responses. The one or more networks include a signal encoder network 123, a signal decoder network 139, and a channel approximation module 133. The channel approximation module 133 may contain one or more networks. The networks referred to herein may include neural networks such as deep neural networks and convolutional neural networks, and other machine learning-based algorithms. In this context, the channel response may represent the frequency response to a communication channel and may include complex or real values of power received from one or more antennas at different delays.
[0047] System 100 includes device 115 (e.g., user device, smartphone, laptop, etc.) and device 101 (e.g., user device, smartphone, server, laptop, etc.), as well as corresponding modules and processes operated by the devices. One or more networks shown in Figure 1 are available by device 115, or another electronic device communicatively connected to device 115. For example, device 115 may include memory that stores instructions configured to be executed by one or more processors of device 115 to perform the operations of one or more networks. Additionally or alternatively, device 115 may, in some cases, be communicatively connected to another device, such as a server computer. In such a case, the server performs operations corresponding to the functions of one or more networks. For example, device 115 may provide and access data from the server. The server may receive data from device 115 and provide output based on the execution of one or more operations of one or more networks. The server may include memory that stores instructions configured to be executed by one or more processors of the server to perform the operations of one or more networks.
[0048] Figure 1 illustrates the transmission of a wireless communication signal 108 from device 101 to device 115. The signal 108 can be, for example, a cellular signal, a Wi-Fi signal, or some other type of wireless signal. The signal 108 propagates through a wireless communication channel in the environment, which may be, for example, an open outdoor space, an enclosed indoor space, or a combination of indoor and outdoor spaces. The environment can exhibit nonlinear (e.g., power amplifier), linear, or a combination of nonlinear and linear obstruction effects, which include environmental elements that affect the characteristics of the signal as it propagates from the transmitter (e.g., device 101) to the receiver (e.g., device 115) through the wireless communication channel. For example, Figure 1 shows a visual representation of the approximate propagation effect on the signal 108 from environmental elements, including obstacles such as a tree 111 and a vehicle 109. Environmental elements may also include buildings, animals, people, and physical geographical elements (e.g., topography). The signal 108 transmitted from device 101 is received by device 115 and processed as the received signal 117. Furthermore, environmental factors that may affect signal propagation include weather, time of day, and the activity of other nearby wireless devices.
[0049] The environment may include at least one transmitter and receiver in a fixed or moving environment, in which the device may move around with different GPS locations, positions, pointing angles, antenna patterns, elevation angles, or other characteristics or nearby activities or events, and the device in the real-world version of the scenario may capture data measurements, sounding data, and logged parameters which can be used to train a channel model, and the trained model can be used to train a simulated version of the scenario.
[0050] The environment may include one or more radio emitters that transmit data. These radio emitters may include, for example, numerous different cellular towers, cellular antennas or elements, Wi-Fi emitters, or other forms of radio signal or radio frequency emitters, such as radiation from broadcast towers, communication systems, or vehicles. Radio receiving devices, such as device 115 and the corresponding antenna 113, can receive these transmissions and capture and record a number of characteristics about the radio signal radiation. These characteristics may include the exact transmitted value "x" (e.g., if the transmitted value is known in advance, from a correctly received packet, or transmitted by some other means), the actually received value / sample "y", and an estimate of the channel response in the form of an estimated channel response "h".
[0051] Characteristics can be combined with metadata about the transmitter or receiver, which can contain a wide range of information. The receiving device may follow a spatial path through the environment, and the receiver may record one or more values such as altitude, latitude, longitude, or relative position on a more local reference frame, as well as environmental factors such as the azimuth and altitude of the antenna pointing angle, characteristics of the transmitting or receiving antenna, ambient temperature, humidity, ambient area, or geometry. Many of these additional sound variables can affect the resulting channel response "h" or the direct relationship between channel input "x" and channel output "y". Therefore, the process of capturing and recording these values during speech or channel measurement activities here can be important.
[0052] A version of signal 108 is received by device 115 as received signal 117 after it has propagated through the wireless communication channel. Due to imperfections in the antennas used to transmit and receive signal 108, such as the antenna 103 of device 101 or the antenna 113 of device 115, or the influence of environmental elements during propagation such as vehicle 109 and / or tree 111, the received signal 117 may not be identical to the transmitted signal 108. For example, signal 108 may be reflected from vehicle 109, and as vehicle 109 moves, the reflection of signal 108 changes, causing a change in signal propagation and consequently a change in the signal received by device 115.
[0053] In one embodiment, device 101 generates a signal 108 using a reference indicator 105. The reference indicator 105 may include a specific character or symbol. As illustrated, the transmitted signal 108 is used to convey transmitted information 107, which, for example, corresponds to data modulated into a radio frequency (RF) signal waveform as signal 108. Device 101 may include one or more digital-to-analog converters to convert the transmitted information 107 into an analog signal 108. One or more antennas of device 101 transmit the signal 108 over a radio communication channel.
[0054] Device 115 processes the received signal 117. This processing and associated training are described in Stage A of Figure 1. As shown in the figure, in Stage A, device 115 receives signal 117 as a representation of signal 108 using one or more antennas 113. The transmitted signal extraction module 119 of device 115 obtains the received signal 117. In some cases, signal 117 is a digital representation of a received analog signal. Using one or more analog-to-digital converters or preprocessing techniques within device 115, device 115 converts the received analog signal into the received signal 117.
[0055] The transmitted signal extraction module 119 extracts the transmitted information 121 from the received signal 117 as a representation of the transmitted information 107 encoded in the signal 108 by the device 101. The transmitted information 121 and transmitted information 107 can be in the form of symbols, bits, codewords, or other appropriate information.
[0056] In one embodiment, along with the transmitted information 107, device 101 includes a reference indicator 105 in the transmitted signal 108. In such a case, the transmitted signal extraction module 119 also identifies the reference indicator 105 in the received signal 117. In some cases, the reference indicator 105 may be a series of bits in a header or another part of the signal 108. The reference indicator 105 can be used in the receiver to determine what the transmitted information 121 is and / or how to generate the transmitted information 121 from the received signal. For example, the reference indicator 105 may include data that allows device 115 to perform a checksum of the received signal so that device 115 can determine whether the transmitted information 121 is an exact representation of the transmitted signal 107.
[0057] The use of a reference indicator is useful when the timing reference is not shared between device 101 and device 115. In such cases, the reference indicator 105 can be used for reference synchronization so that device 115 can determine the arrival time of a reference signal, which may be a standalone signal or part of signal 108. Device 115 can then reconstruct the transmitted signal 107 through the processing of association of adjustment signals (for example, a time adjustment signal or frequency adjustment signal can be extracted from the received digital signal 117 using reference synchronization information and associated with the transmitted information 107 from the modulation source).
[0058] In some implementations, as an additional or alternative method of using bits, device 101 inserts a reference tone into signal 108 as a reference indicator 105. For example, device 101 may include the information to be transmitted 107 and a reference tone, such as a pseudo-random (PN) chip sequence or other known preamble or reference tone, within signal 108. The reference tone may be inserted at a known time offset to the encoded information (e.g., immediately before, following, or otherwise). Device 115 can use the known time offset to determine the timing (and frequency) of the encoded signal 108 and the signal to be transmitted 107.
[0059] In some implementations, the reference indicator 105 contains a sequence number corresponding to a known protocol. The protocol associates different sequence numbers with different strings of data or other numbers that can be included in the transmitted message. This protocol can be communicated to both device 101 and device 115, and the sequence number associated with the reference indicator 105 for signal 108 can be included in signal 108, or communicated to both device 101 and device 115 before the transmission of signal 108. Devices 101 and 115 can access the protocol details (e.g., stored in the memory of each device or in one or more remote servers communicated to each device) to determine parts of signal 108, such as the control and data portions. Device 115 can use its prior knowledge of the data from signal 108 and the sequence numbers associated with the known protocol to generate transmitted information 121 that matches transmitted information 107.
[0060] In one embodiment, in addition to the received signal 117, the transmitted signal 107 is acquired by device 115 via out-of-band communication. For example, device 115 can obtain the transmitted signal 107 via a wired connection with device 101, or via another mode of wireless communication pre-calibrated between device 101 and device 115.
[0061] In Stage B, the signal encoder network 123 encodes the information to be transmitted 121 to generate encoded information 129, which can be in analog or digital format depending on the configuration of the signal encoder network 123. The digital-to-analog conversion can be included in either the signal encoder network 123 or the channel approximation module 133. In some implementations, the signal encoder network 123 operates as a conventional modulator, or as both a modulator and an encoder, or adds to this role. The signal encoder network 123 includes one or more neural networks, or one or more layers of neural networks, which can convert the information into RF signal format for transmission over a real or simulated channel. In some implementations, the encoded information 129 includes an RF signal waveform representation. For example, the encoder network 123 can generate a waveform representation of the information to be transmitted 121 as the encoded information 129. The waveform representation may include the amplitude of the signal over time.
[0062] In the example in Figure 1, the encoded information signal 129, encoded by the encoder network 123, is transmitted via the channel approximation module 133, rather than through actual transmission. The channel approximation module 133 simulates the effects of signals propagating through the environment, such as a radio transmission channel. For example, the channel approximation module 133 can simulate the effects of trees 111 and vehicles 109 on the communication channel between devices 101 and 115, among other signal effects. The channel approximation module 133 can also emulate the transfer function of one or more analog electronic radio components used to transmit or receive radio signals.
[0063] In stage C, the channel approximation module 133 generates a received signal approximation 135 using the encoded information 129 and the channel response. The generation of the channel response in the channel approximation module 133 will be discussed with respect to later figures, including Figures 2 through 5B. The channel response used to generate the received signal approximation 135 is determined using the stored channel response 131, as will be discussed in later figures. The channel response represents the frequency response to the communication channel and may include complex or real values of power received from one or more antennas with different delays.
[0064] In some implementations, the channel approximation module 133 is configured to emulate the forwarding function of one or more analog electronic radio components or radio transmission channels. In some embodiments, the channel approximation module 133 includes a series of preprocessing or normalization steps. For example, preprocessing may include, among other things, sensing, synchronization, normalization, filtering, or tuning. In some cases, preprocessing may include digital signal processing (DSP) routines (e.g., software, firmware, gateware, digital logic, etc.). In some cases, preprocessing may include one or more additional neural network-based preprocessing tasks.
[0065] In some implementations, the channel approximation module 133 performs one or more operations, including convolutions, on the signal before the simulated transmission. For example, the channel approximation module 133 can convolve a channel response, such as a channel response from a stored channel response 131 or a simulated channel response generated using the stored channel response 131, with encoded information 129. The output of the combined product of the channel response and the encoded information 129 can represent an approximate value of the received signal 135.
[0066] In stage D, the signal decoder network 139 obtains a received signal approximation 135 from the channel approximation module 133. The decoder network 139 attempts to reconstruct the transmitted information 121 using the received signal approximation 135. The received signal approximation 135 can be in analog or digital format depending on the configuration of the channel approximation module 133. The conversion from analog to digital can be included in either the channel approximation module 133 or the decoder network 139. Similar to the signal encoder network 123, the signal decoder network 139 converts data from one form to another. While the signal encoder network 123 converts the transmitted information into a signal of the encoded information that is transmitted, the signal decoder network 139 converts the received signal into an approximation of the transmitted information using the encoded information 129, which is here called the transmitted information approximation 141.
[0067] In some implementations, the signal encoder network 123 and the signal decoder network 139 are trained to learn a physical layer modulation scheme using real radio transmission data, such as signal 108 sent from device 101 to device 115. Using the trained signal encoder network 123 and signal decoder network 139, device 115 can optimize encoding and channel approximation for the radio communication system.
[0068] In some implementations, device 115 or a device communicably connected to device 115 optimizes one or more neural networks included in the signal encoder network 123, the signal decoder network 139, and the channel approximation module 133. Optimization may involve the use of one or more adversarial techniques. The networks may be trained iteratively or together to learn near-optimal representations of radio information encodings, for example, for nonlinear wireless channels and electronic device responses. In some cases, system 100 may provide effective information encodings and channel approximation functions (e.g., encodings that maximize or minimize several objectives, such as throughput, bit error rate, or frame error rate) for situations where it is considered difficult (e.g., it is difficult to model the transfer functions of components or radio effects, or difficult to accurately or compensate for with low computational complexity in conventional systems, resulting in performance degradation). Optimization may refer to processes that update weights within each network in iterative processes, such as stochastic gradient descent. Two or more processes may operate together or iteratively to optimize the signal encoder network 123, the signal decoder network 139, and the channel approximation module 133.
[0069] In one embodiment, the signal decoder network 139 includes one or more preprocessing or normalization operations. For example, preprocessing may include, among other things, sensing, synchronization, normalization, filtering, or tuning. In some cases, preprocessing may include DSP routines (e.g., software, firmware, gateware, digital logic, etc.). In some cases, preprocessing may include one or more additional neural network-based preprocessing tasks.
[0070] Updates to the encoder network 123 or the decoder network 139, or both, are performed by the decoder and encoder update engine 143, while updates to the channel approximation module 133 are performed by the channel update engine 137. The decoder and encoder update engine 143 and the channel update engine 137 perform one or more updates iteratively or together based on the received signal 117 or signal 108, or both. In some implementations, the update engines use the loss functions of the channel approximation module 133, the signal encoder network 123, and the signal decoder network 139 to optimize the communication channel modeling or approximation and optimize the autoencoding performed by the encoder network 123 and the signal decoder network 139. For example, the decoder and encoder update engine 143 can generate a loss function that shows the difference between the approximation 141 of the transmitted information and the transmitted information 121. Over multiple training iterations, the loss value corresponding to the output of the loss function can be reduced, thereby causing the approximation 141 of the transmitted information to more closely match the transmitted information 121 over time.
[0071] Similarly, the channel update engine 137 can generate a loss function that shows the difference between the received signal approximation 135 and the received signal 117. Over multiple training iterations, the loss value corresponding to the output of this loss function can be reduced so that the received signal approximation 135 matches the received signal 117 more closely over time. The loss functions for the channel approximation module 133 and / or autoencoders (e.g., signal encoder network 123 and signal decoder network 139) can be improved using stochastic gradient descent, genetic algorithms, or other relevant algorithms.
[0072] As previously mentioned, in some implementations, the loss calculation and update processes are performed together. For example, the combined update engine 147 can obtain data from the channel update engine 137 and the decoder and encoder update engine 143. The data can include the loss function for each, as described above. The combined update engine 147 can minimize the combined loss function by sending updates to each of the channel update engine 137 and the decoder and encoder update engine 143. The updates can be configured to adjust the weights or other parameters of the neural networks in the channel approximation module 133, the signal encoder network 123, and the signal decoder network 139. The adjusted weights can modify the approximation of the transmitted information 141 and the received signal approximation 135 for one or more iterations of the transmitted information 121 processed by the system 100. Using stochastic gradient descent, a genetic algorithm, or other relevant algorithms, the combined update engine 147 can optimize the neural networks in the channel approximation module 133, the signal encoder network 123, and the signal decoder network 139 to reduce the corresponding loss function as described herein. Tuning one or more networks, such as the signal encoder network 123 and the signal decoder network 139, may include, in particular, tuning one or more layers, weights, parameters, or connections between one or more nodes of a constituent neural network.
[0073] In some implementations, the loss calculation and update process is performed repeatedly. This is achieved, for example, by iterating between the update operation and loss calculation as competing adversarial objectives that influence each other during training. When updating repeatedly, each loss (e.g., the loss from channel approximation module 133 and the losses from encoder and decoder networks 123 and 139) can be used independently. In such cases, the weights of one or more networks in channel approximation module 133 are fixed in place and are not updated during the update process of signal encoder network 123 and signal decoder network 139. Similarly, the weights of one or more networks in signal encoder network 123 and signal decoder network 139 are fixed in place and are not updated during the update process of channel approximation module 133.
[0074] As shown in Figure 1, the signal decoder network 139 provides the decoder update engine 143 with an approximation 141 of the transmitted information. The decoder update engine 143 further obtains the transmitted information 121 from the transmitted signal extraction module 119. The decoder update engine 143 compares the approximation 141 of the transmitted information generated by the decoder network 139 with the transmitted information 121. Based on the difference between the approximation 141 of the transmitted information and the transmitted information 121, called the L2 loss, the decoder update engine 143 generates a decoder update 145. The decoder update unit 145 is configured to adjust one or more parameters or weights of the decoder network 139. The decoder update engine 143 may include one or more algorithms, in particular, including stochastic gradient descent. Generally, the decoder update unit 145 is configured to adjust the decoder network 139 so that subsequent approximations of the transmitted information more closely match known transmitted information.
[0075] In some implementations, Kullback-Leibler divergence (KL-divergence) is used to generate differences for updating one or more networks. For example, one or more update engines, e.g., a decoder and encoder update engine 143, a channel update engine 137, and / or a combined update engine 147, can use KL divergence to determine the difference between two or more values. The decoder and encoder update engine 143 can use KL divergence to determine the difference between an approximation 141 of the transmitted information and the transmitted information 121. The KL divergence can be used to determine a decoder update 145 or an encoder update 127 (for example, a larger KL divergence corresponds to a larger adjustment performed by the decoder update 145 or encoder update 127). Similarly, KL divergence can be used to compute the differences and corresponding updates of the channel update engine 137 and the combined update engine 147.
[0076] In addition to generating decoder update 145, or instead, the decoder and encoder update engine 143 can generate encoder update 127 for the signal encoder network 123. In such a case, the decoder and encoder update engine 143 can update the signal encoder and signal decoder networks 123 and 139 together or iteratively. For example, as described above, the parameters of the signal encoder network 123 can be adjusted while the parameters of the signal decoder network 139 are stable and vice versa. It is also possible to adjust the parameters for each of the signal encoder network 123 and the signal decoder network 139 simultaneously. Various techniques such as stochastic gradient descent and backpropagation can be used to determine changes to weights or parameters in the signal encoder network 123, the signal decoder network 139, or both the signal encoder network 123 and the signal decoder network 139. In general, the encoder update 127 can be configured to adjust the encoder network 123 so that subsequent approximations of the transmitted information more closely match known transmitted information.
[0077] Similarly, the channel approximation module 133 is updatable by the channel update engine 137. The training of the channel approximation module 133 will be discussed in detail with reference to later figures. Figure 1 shows how the training of the channel approximation module 133 can be performed jointly or iteratively with the combined update engine 147. As previously mentioned, both the channel update engine 137 and the decoder and encoder update engine 143 can generate loss values that represent the difference between simulated or approximate values and known values. For example, the channel update engine 137 takes a received signal 117 and a received signal approximation 135 and calculates the difference or loss between them (called the L1 loss). Based on the L1 loss, the channel update engine 137 generates a channel update 138 over one or more training iterations. The channel update 138 is configured to adjust one or more parameters of the channel approximation module 133, including one or more network parameters included in the channel approximation module 133. In doing so, the channel update improves the accuracy of the channel approximation by reducing the difference between the received signal 117 and the received signal approximation 135.
[0078] As described, the decoder and encoder update engine 143 generates the difference between the approximation 141 of the transmitted information and the actual transmitted information 121. In some cases, this difference or loss can be provided to the combined update engine 147 together with the difference calculated by the channel update engine 137. The combined update engine 147 can combine the L2 loss corresponding to encoding and decoding and the L1 loss corresponding to channel approximation to generate a composite loss called LC. Similar to the channel update engine 137 and the decoder and encoder update engine 143, the combined update engine 147 may include one or more algorithms, such as a stochastic gradient algorithm, a general algorithm, or a backpropagation algorithm, to determine parameter changes for the network (e.g., the signal encoder network 123, one or more networks of the channel approximation module 133, and the signal decoder network 139). Generally, the parameter changes can be configured to improve the accuracy of channel approximation while reducing the differences obtained by the combined update engine 147, including L1, L2, and LC, and also improving the encoding and decoding efficiency in networks 123 and 139.
[0079] As mentioned above, in some implementations, each of the signal encoder network 123 and the channel approximation module 133 includes one or more neural networks. In some implementations, the signal decoder network 139 includes one or more neural networks. As previously stated, in some implementations, one or more operations described as being performed by device 115 are implemented by device 115, a device communicably connected to a server or dedicated hardware processor, such as a field-programmable gate array (FPGA).
[0080] In some implementations, one or more of the encoder network 123, decoder network 139, or channel approximation module 133 take the form of a series of weighted dense (or possibly stride or sparse) matrix multiplications, bias additions, sums of combinations of these products, and applications of nonlinear functions on the output, such as a modified linear unit (ReLU) or sigmoid function. In some implementations, system 100 includes encoders, e.g., corresponding encoders used by encoder network 123 or device 101. The encoders generate encoders for one or more antennas, a set of wireless (or wired) channels or analog components with multiple inputs and multiple outputs (MIMO), or a decoder network such as decoder network 139 with multiple receiving antennas, or any preferred combination thereof. Thus, a system including system 100 described herein, along with a training process, is directly applicable to MIMO and large-scale MIMO systems such as candidate cellular fifth generation (5G), 5G+, sixth generation (6G), or 6G+, waveform design, optimization, and deployment.
[0081] In some implementations, encoder networks 123 and decoder networks 139 leverage conventional knowledge of efficient network structures (such as activation, layer or weight connectivity), synchronization, estimation, or attention methods to assist in scaling these networks to efficient and high-performance operation. In this context, attention often refers to a learning method that concentrates resources on a particular subset of data or synchronizes or normalizes a subset of information from the original received information.
[0082] Figure 2 shows an example of a channel approximation system 133, which includes a channel decoder network 203 for generating a simulated channel response. The decoder network 203 includes a channel response network 207. In some implementations, the channel response network 207 includes one or more neural networks. The decoder network 203 uses the channel response network 207 to generate an output channel response 209 based on learned latent space variables 205 of the input. The output channel response 209 is used to determine the influence that an environment (e.g., as described with respect to Figure 1) has on a given signal propagating within that environment. For example, in some cases, the output channel response 209 represents the frequency response of frequencies propagating within the system from a transmitter (e.g., device 101) to a receiver (e.g., device 115). The learned latent space variables 205 represent low-dimensional data variables based on a number of channel responses obtained in the environment. The latent space is a feature space (e.g., a learned vector space such as a 32-dimensional numerical encoding the transformed codes of the channels—for example, it can be constructed from channels or used to reconstruct channels) from which the values of variable 205 are extracted. The process of generating variable 205 from channel response data can be represented as a dimensionality reduction problem. For example, a channel response can contain many dimensions representing a wide range of power levels for each frequency over a wide range of frequencies. The low-dimensional latent space variable 205 represents the characteristics of the high-dimensional channel response data with fewer variables (e.g., 32 integers in a vector). In one embodiment, a device such as device 115 can train a channel approximation module 133 to determine the learned latent space variable 205.
[0083] The decoder network 203 provides an output channel response 209 to the receiving signal module 213. The receiving signal module 213 obtains a copy of the signal to be transmitted or a signal that has already been transmitted from the transmitted signal module 211. For example, in the context of Figure 1, the transmitted signal module 211 can obtain encoded information 129. The receiving signal module 213 can use the output channel response 209 and the encoded information 129 to generate an approximation 141 of the transmitted information. In some cases, the operation of the channel decoder network 203, the transmitted signal module 211, and the receiving signal module 213 can be performed by one or more computers executing instructions that perform the operation of the channel approximation module 133 in Figure 1.
[0084] The receiving signal module 213 can perform one or more operations to determine a received signal approximation, such as the received signal approximation 135 in Figure 1, using the output channel response 209 and the signal to be transmitted from the transmitted signal module 211, for example, encoded information 129. In some implementations, the receiving signal module 213 performs convolution of the signal to be transmitted with the output channel response 209 to generate a received signal approximation, for example, the received signal approximation 135 in Figure 1. The received signal approximation approximates the signal that will be transmitted by the transmitter and received by the receiver after being affected by one or more environmental effects.
[0085] Figure 3 shows an example of a system 300 that includes a channel encoder network 301 and a channel decoder network 203 for generating learned latent space variables 205 used to generate a simulated channel response such as an output channel response 209. The channel encoder network 301 includes a latent space network 305, which is one or more neural networks, to determine the latent space variables 205 from the latent space. In some implementations, the channel encoder network 301 is implemented by one or more computers configured to perform the operation of a channel approximation module 133, for example, by executing software instructions corresponding to the operation of the channel encoder network 301, including the operation of the latent space network 305.
[0086] The channel encoder network 301 can generate latent space variables 205 that are trained and learned by the channel decoder network 203, as shown in Figure 4. The learned latent space variables 205 can contain one or more vectors. In some implementations, the learned latent space variables 205 are adjusted over time to mirror the evolution of propagation effects over time. For example, the learned latent space variables 205 can correspond to a set of values. A set of values can contain one or more vectors. For each operation of the channel decoder network 203, a variable in the set of values, or a vector in a set of one or more vectors, can be used as the learned latent space variables 205 as input to the channel response network 207. In this way, environmental variability can be accurately captured in the simulated channel response to improve the channel approximation.
[0087] The input channel response 303 is illustrated with image 307a, which is referred to as "h" and shows the sampled input channel impulse response, which is described in more detail below, where the power level over the frequency range is shown as a piecewise line graph. The latent space network 305 is illustrated in image 309, which shows a neural network structure with multiple nodes in the connected layer. Similarly, the channel response network 207 of the channel decoder network 203 is illustrated by image 311, which shows a neural network structure with multiple nodes in the connected layer. Image 313a is an approximation of the input channel impulse response 303,
number
[0088] The exemplary system 300 in Figure 3 can be used for a variational autoencoder (VAE)-based training approach to model and train a channel approximation module 133. System 300 provides an alternative method for channel emulation that utilizes a variational autoencoder in addition to, or as an alternative to, a generative adversarial network (GAN) approach to generate a simulated channel response. In this case, the channel impulse response "h," which represents a complex or real value of power received with different delays for one or more antennas, is encoded into a latent variable 205, which can be called "z" (usually lower dimensional), through an encoder network or variational encoder network shown in Figure 3 as a latent spatial network 305. In this context, variational refers to the "reparameterization trick" or sampling layer in a neural network that plots random values. Here, the random distribution or certain properties that define the characteristics of a random distribution, such as the mean and variance, are defined by the activation or median values in the neural network.
[0089] In Figure 3, the channel impulse response "h" is shown, and for example, image 307a is a single power delay profile, but in many cases an NxM MIMO channel delay response may be represented (where N and M are positive integers), or a complex-valued (e.g., orthogonal baseband sampled) delay response may also be represented. The decoder network or variational decoder network shown as channel response network 207 in Figure 3 takes the output channel impulse response from the latent variable 205 or "z" as an estimate of the input channel impulse response 303(h).
number
number
number
[0090] To train the channel response network 207, h and
number
[0091] By training such a system having a set of measured or simulated channel responses "h", such as input channel response 303, a generator can be generated in the formation of a decoder network, for example, a channel response network 207, which estimates the channel response "h" from a random latent distribution represented by the variable "z".
number
[0092] In some implementations, a variational autoencoder (VAE) can be trained using transmit (Tx) / receive (Rx) data pairs or from estimates of channel responses obtained from a channel acoustic device. In this case, the input channel response 303 is replaced with the transmit value illustrated in image 307b, and the output channel response 209 is replaced with the receive value graphically shown in image 313b. For example, the raw input and output data of the channel illustrated as "x" in image 307b and "y" in image 313b, respectively, are considered directly rather than the channel impulse (or delayed) response value "h". In some cases, training with transmit values instead of channel response data can provide a more accurate approximation of a communication channel with a nonlinear relationship between transmit and receive values.
[0093] In some of these cases, acoustic data with a transmitted value "x" and a received value "y" after passing through one or more communication channels is used to model a complete stochastic relationship function between x and y. While the channel impulse response "h" is used in many systems to reflect a linear relationship between x and y, a nonlinear relationship exists between the channel input and output. This nonlinear relationship can be learned by directly training a VAE between the channel input and output. While the VAE can treat the input and output as the same value, in some cases, it may involve a regression task that regresses the channel output from the channel input.
[0094] In some cases, the term "auto" in VAE generally refers to automatic regression of the same "transformed" values through the channel function. This alternative method for channel simulation can learn the relationship between channel input x and channel output y, which are not typically captured in response values "h", but can be trained using the VAE approach as well. In some cases, a discriminative network is used in conjunction with this VAE training process, and multiple losses such as reconstruction, VAE loss, and generator / discriminator loss are traded off from each other at different magnitudes to best generate a channel emulation approximation function.
[0095] As shown in the figure, the channel encoder network 301 encodes the input channel response 303, graphically shown in image 307a, into a variable 205 using the latent space network 305. For example, in some implementations, the latent space network 305 may include a variational autoencoder (VAE). In this context, variation refers to a reparameterization operation or sampling layer within the neural network that plots random values. The random values are determined by activations or intermediate values within the neural network, which define a random distribution or specific properties of the random distribution, such as the mean and variance. The latent space network 305 can learn a latent spatial distribution based on one or more acquired channel responses, including the input channel response 303, based on the properties of the acquired channel responses. In some implementations, the latent space is random. In some implementations, the latent space is determined based on the properties of the latent space network and the input channel response 303. Activations within the latent space network 305 can represent numerical distributions, such as parameters of the mean and variance, from which values are sampled to generate the learned latent space variable 205.
[0096] In some implementations, the channel decoder network 203 is trained to reconstruct the input channel response 303 using learned latent space variables 205. For example, the channel decoder network 203 generates an output channel response 209 that shows complex or real values of power received at different delays for one or more antennas similar to, but not identical to, the input channel response 303. The output channel response 209 can represent another possible channel response obtained in the environment in which the input channel response 303 was obtained. In this way, the channel decoder network 203 can simulate the channel response for a particular environment or serve as a model for testing or analysis. The output channel response generated by the channel decoder network 203 is generally more accurate than static models that assume linear fault effects within the communication channel.
[0097] In some embodiments, the input channel response 303 used in the channel encoder network 301 is obtained from a real-world receiver receiving a transmission from a real-world transmitter. In some cases, instead of a real-world channel response, the channel encoder network 301 can use a simulated response. If the input channel response 303 represents the frequency response of a real-world communication channel, the input channel response 303 can be generated using a transmit signal and a receive signal. The response 303 can exhibit channel effects that describe changes between the transmit signal and the receive signal, for example, signal 108 and received signal 117. Figure 4 shows an example of collecting real-world channel effects by obtaining the received and transmit signals and training the channel encoder and decoder networks 301 and 203 using the obtained real-world channel response.
[0098] Figure 4 shows an example of system 400 for acquiring channel responses and training channel encoder networks and channel decoder networks of channel approximation systems, for example, training channel encoder network 301 and channel decoder network 203 of channel approximation module 133. Similar to system 100 described with respect to Figure 1, in system 400, signal 108 is sent from device 101 to device 115. As shown in the figure, in some cases device 115 is mounted on a moving vehicle 109. Device 115 can move within an environment to capture the transmitted signal and generate channel responses, which may vary depending on the relative positions of device 115 and device 101. The received signal 117 may include signal 108 as well as other signals from other transmitters in the environment.
[0099] As illustrated in Figure 1, the transmitted signal extraction module 119 of device 115 extracts transmitted information 121 from the received signal 117 that matches the transmitted signal 107. The channel response engine 403 can be implemented as a software routine implemented by device 115 or a device (e.g., a server) communicably connected to device 115, for example by executing one or more program instructions using one or more computers, to acquire the transmitted information 121 and the received signal 117, determine or generate a channel response for the wireless communication channel through which the signal 108 propagates from transmitter 101 to receiving device 115, and store the channel response in the stored channel response 131. The channel response engine 403 can generate a channel response corresponding to the signal 108 based on the received signal 117. For example, the channel response engine 403 can generate a channel response by determining the power level and / or impulse response or frequency domain fading profile for the frequency range corresponding to the received signal 117.
[0100] As described with respect to system 100 in Figure 1, device 101 may include a reference indicator 105 within the signal 108 to assist the transmitted signal extraction module 119 in extracting the transmitted information 121. In some implementations, device 110 generates the signal 108 using a timing source 401, and the same or a similar timing source 401 is accessible to device 115. In some cases, the timing source 401 may be a signal from a test signal generator with known pulses per second. In some cases, the timing source 401 may be an external timing source available to both device 101 and device 115. For example, the timing source 401 may be timed from a Global Positioning System (GPS) signal. The timing source 401 can provide timing common to both device 101 and device 115.
[0101] Due to a common timing source, the sampling times of the converters (e.g., analog-to-digital converters or digital-to-analog converters) are known to be approximately the same (e.g., the sampling times of the converters may be within a certain error tolerance, such as less than 1 nanosecond of timing jitter). Therefore, the transmit signal extraction module 119 can perform adjustments on the received signal in both time and frequency. The transmitted signal extraction module 119 can reconstruct the encoded transmitted signal through the process of aligned signal association. For example, using the timing knowledge which is identical from the digital-to-analog converter of device 101 and the analog-to-digital converter of device 115, a time-adjusted and possibly frequency-adjusted signal is extracted from the received signal 117 as a representation of the transmitted signal 107. The extracted signal is associated with the transmitted signal 107 and the received signal 117 so as to form a tuple, for example, (s, r), where s is the transmitted signal 107 and r is the received signal 117.
[0102] In some implementations, the channel response engine 403 generates a channel response using the analog version of the transmitted and received information. In some implementations, the channel response engine 403 generates a channel response using the digital version of the transmitted and received information (e.g., the received signal 117). In some implementations, the channel response engine 403 generates a channel response using either the analog or digital version of the transmitted information and either the analog or digital version of the received information.
[0103] In some implementations, in addition to wireless transmission, device 101 transmits the transmitted signal 108 to device 115 as part of another communication. For example, device 101 may also transmit the transmitted signal 108 to device 115 using a wired communication medium. In such a case, device 115 may have a copy of the transmitted signal 108 without performing an operation to determine the transmitted information 121, or may generate the transmitted signal 108 based on the transmitted information 121.
[0104] Device 115 uses stored channel responses 131 to train the channel encoder network 301 and the channel decoder network 203. Stored channel responses 131 may include one or more channel responses generated by the channel response engine 403. Device 115 selects a channel response from the stored channel responses 131 and provides the selected channel response to the encoder 301 as the input channel response 303. In some implementations, all stored responses are selected and repeated during training. In some implementations, the channel responses in the stored channel responses 131 are sorted, and Device 115 (or another computer configured to train the encoder and decoder networks, e.g., a server) selects responses and performs sequential or parallel training iterations in the ranked order. Ranking can be based on the quality of the response data, for example, whether the antenna was not malfunctioning or whether the response was within the range of typical responses for the area. The channel encoder network 301 provides the input channel response 303 to the latent space network 305.
[0105] In the example in Figure 4, the latent space network 305 generates distribution parameters 407 (e.g., mean, standard deviation, variance, etc.) and provides these distribution parameters 407 to the sampling module 409. The sampling module 409 can be implemented, for example, as a software routine implemented by device 115, or as a device (e.g., a server) communicably connected to device 115 by executing one or more program instructions using one or more computers, and selects values from the distribution specified by the distribution parameters 407. For example, the distribution parameters 407 may specify a normal distribution. Values selected from the distribution include integers, real numbers, complex numbers, etc. The sampling module 409 can then sample values to generate latent space variables 205 learned from the normal distribution indicated by the parameters 407. In some implementations, the sampling module 409 randomly selects values from the distribution defined by the parameters 407. For example, the sampling module 409 includes one or more randomization algorithms. One or more randomization algorithms can select one or more values from within the distribution of values defined by the parameters 407.
[0106] The learned latent space variables 205, generated by the sampling module 409, are provided to the channel decoder network 203. The channel response network 207 generates an output channel response 209 using the learned latent space variables 205, based on one or more neural networks implemented within the channel response network 207.
[0107] The channel decoder network 203 provides the learned latent space variables 205 and the output channel response 209 to various update engines that train the channel encoder network 301 and the channel decoder network 203. For example, the channel decoder network 203 provides the learned latent space variables 205 to the latent space update engine 413. The latent space update engine 413 accesses the training distribution 411. The latent space update engine 413 can be implemented, for example, as a software routine implemented by device 115, or as a device (e.g., a server) communicably connected to device 115 by executing one or more program instructions using one or more computers, and compares the learned latent space variables 205 with the training distribution 411.
[0108] In some implementations, the latent spatial update engine 413 compares the distribution specified by the distribution parameter 407 to the training distribution 411. For example, the latent spatial update engine 413 can randomly sample from the distribution specified by the distribution parameter 407 and compare the random sample to the training distribution 411. The latent spatial update engine 413 can compare a random sample to the training distribution 411 by determining whether one or more values of the random sample fall within the training distribution 411. Random sampling to compare distributions is useful when the distribution is not confirmed by a mathematical model of the distribution. In some cases, the latent spatial update engine 413 compares the distribution parameter 407 to the parameter that defines the training distribution 411. Based on the difference between the data corresponding to the training distribution 411 and the data corresponding to the latent spatial variable 205, the latent spatial update engine 413 can update the latent spatial network 305.
[0109] In some implementations, the training distribution 411 is a normal distribution. The latent space update engine 413 can generate a loss metric that indicates the amount of difference between the learned latent space variables 205 and the training distribution 411. Using the loss metric, the latent space update engine 413 can update the latent space network 305, for example, by tuning one or more parameters, layers, or weights of one or more neural networks of the latent space network 305. By limiting the flexibility of the latent space variables 205 learned according to the training distribution 411, the system 400 prevents the latent space network 305 from overspecifying the distribution in the latent space provided by the distribution parameter 407, leading to latent space variables that are not sufficiently general for an efficient and accurate channel response. In general, the latent space engine 413 can tune the latent space network 305 to generate distribution parameters that closely resemble the training distribution 411, and thus generate sample values of variables that are likely to be included in the training distribution 411, such as variable 205.
[0110] The channel decoder network 203 provides the channel network update engine 415 with an output channel response 209, which also obtains the input channel response 303 from the encoder network 301. Another constraint for training the channel approximation module is to prevent the simulated output channel response 209 from exceeding a threshold difference from the input channel response 303. The simulated channel response can be called a synthetic channel response. The threshold can be set manually by the user or variably using variations in responses within the environment (e.g., a higher threshold in a highly variable environment, a lower threshold in a less variable environment). A simple percentage of the variation in all responses detected within the environment can set the threshold, or a grouping algorithm can determine a dynamic threshold based on the existence of closely related groups of responses (e.g., k-means clustering). In this way, the channel decoder network 203 can generate a set of simulated channel responses that generally correspond to the environment (e.g., showing power delay values for frequencies similar to real working channel responses) without requiring a large number of real-world channel responses.
[0111] In some implementations, the channel network update engine 415 compares the input channel response 303 with the output channel response 209. Based on the difference between the two determined by the comparison, the channel network update engine 415 can tune the channel response network 207. In this context, tuning a network such as the channel response network 207 may include tuning one or more layers, weights, parameters, or, in particular, the connections of one or more nodes in the neural network. Generally, the channel network update engine 415 can tune the channel response network 207 to produce an output channel response that is more similar to the input channel response 303.
[0112] In some implementations, the learned latent space variable 205 contains fewer degrees of freedom compared to either the input channel response 303 or the output channel response 209. For example, the input channel response 303 may include power values for several different frequencies, e.g., 250 frequencies. However, the learned latent space variable 205 may be a vector containing 32 values representing, for example, 250 frequencies in a dimensionality-reducing form. By training the latent space network 305 to generate a distribution for sampling that characterizes the input channel response 303 with fewer degrees of freedom, the latent variable 205 can reveal fundamental features of a given communication channel that may not be readily apparent based on a set of captured real-world channel responses. The number of values in the learned latent space variable 205 can be set statically or variably during training to indicate the lowest number of values that achieve a decoded channel response that is variable but similar to the input channel response.
[0113] In one embodiment, the encoder network 301 can acquire specific characteristics of the communication channel and use them to adjust latent variables 205 for specific conditions of the communication instance. For example, the propagation effect of the communication channel on the signal may depend on factors such as climate, time of day, weather, objects near the transmitter or receiver, or both, other signal transmission, and the positions of the transmitter and receiver. Device 115 or device 101 can acquire location information, such as the location of the transmitter, receiver, and environmental purpose, as well as environmental information to determine these factors. The information acquired by device 101 can be sent to device 115 in signal 108 or another communication. The information acquired by device 115 can be used directly in training. By recording these factors, device 115 can determine the characteristics of the communication channel, such as the fading characteristics the signal experiences, and train a system including the decoder network 203 to generate a simulated channel response that resembles a real-world channel response under these conditions. The channel characteristics may also include, for example, location, altitude, vehicle driving, room size, material properties, and different frequency bands.
[0114] For example, for a given set of channel properties, the decoder network 203 can generate corresponding variables and output channel responses. For example, the decoder network 203 may include a module that samples data according to a specific channel property, either from a distribution defined by the encoder network 301 for all channel properties, or to obtain a specific distribution defined by the encoder network 301 for specific channel properties and sample data from that distribution in order to generate learned latent space variables 205. In either case, the decoder network 203 can generate learned latent space variables 205 that produce an output channel response matching the specific channel properties. The output channel response will be similar to the real-world channel response corresponding to the same set of channel properties. If precipitation affects a particular frequency transmission, and this is recorded in the set of channel characteristics, then, as described above, a corresponding latent variable can be generated according to one or more real-world channel responses captured by these channel characteristics.
[0115] In some embodiments, additional sensors on devices 115 and 101, such as a camera and humidity sensor, can detect channel characteristics and provide these characteristics for the generation of distribution and distribution-based variables 205. For example, the camera on device 115 can recognize the presence of vehicles passing through the sensor area or propagation environment, the presence of large or unusual objects or reflectors within the channel area, or other events, such as other events that may affect the conditions. In some cases, the sensing device can collect one or more acoustic, sound, visual, infrared, ultrasonic, temperature, or other radio activity data near the transmitter, channel, or receiver that may affect the communication channel or the received values in some way. For example, a receiver may measure a number of received channel estimates for a particular emitter, while a sensor may recognize one or more instances of vehicles, reflectors, or other spatial anomalies present in the environment, which may have significantly affected the channel response and the resulting channel distribution that the radio system experiences. By collecting together data representing these phenomena and their resulting impact on the radio system, such phenomena can be more comprehensively captured, modeled, and represented within the radio communication system and channel model.
[0116] In a test scenario, the apparatus including the decoder network 203 may be used to test the reception of a test signal by a receiving device, for example, device 507 in Figure 5A. By either using a standard latent space or a channel-characteristic latent space, the user can determine what the device should receive, as indicated by the signals provided and to be transmitted by the decoder network 203, and the receiving device actually receiving them. In comparison, the user can tune the receiving device to match known signals to be received based on the processing of the decoder network 203. An example of a test scenario is shown in Figure 5A.
[0117] Figure 5A shows an example of a system 500 for updating a receiver device 507 using a trained channel decoder network 203. The system 500 includes devices 501 and 507. Similar to device 101, device 501 transmits a signal 506 containing transmitted information 505 and / or a reference indicator 503. Similar to device 115, device 507 receives the signal 506. As described in Figure 1, the vehicle 109 and the obstacle 111 are examples of objects that may affect the propagation of the signal 506 from device 101 to device 507. Using one or more signal processing methods, device 507 generates a received signal 509. Device 507 may, even during testing, not generate the correct received signal based on the analog signal received by the antenna of device 507. Using a channel simulator 514, device 507 can check and update its signal processing or provide warnings about malfunctioning components based on the received signal approximation 519 generated by the channel simulator 514.
[0118] The transmitted signal extraction module 511, like the transmitted signal extraction module 119, extracts transmitted information 512 that matches the transmitted information 505. Figure 5A shows a verification engine 513 that can verify that the transmitted information 512 is correct. The verification engine 513 may include a checksum operation in which values in the received signal 509 or parts of the received signal 509 are summed and compared to another value. If the sum does not match the other value, the verification fails. If they match, the verification succeeds. If it fails, the device 507 can notify the user that the verification failed and provide information about the signal 509, the information 512, the verification technique used, etc. If the verification is successful, the device 507 can provide the transmitted information 512 to the channel simulator 514.
[0119] In some embodiments, the transmitted signal extraction module 511, the channel simulator 514, the verification engine 513, and the receiving device update engine 521 are, for example, performed by device 115 or a device (e.g., a server) communicably connected to device 115, by executing one or more program instructions using one or more computers.
[0120] The channel simulator 514 acquires verified transmitted information 512. The transmitted signal module 515 provides the transmitted information 512 to the receiving signal module 517. As described herein, the decoder network 203 provides the output channel response 209. In some implementations, the channel simulator 514 is analogous to the channel approximation module 133. The decoder network 203 of the channel simulator 514 may be the same as the decoder of the channel approximation module 133, or it may be a separate instantiation, for example, a reproduction of the decoder of the channel approximation module 133 implemented through copied computer instructions. The output channel response 209 can be specific to the current environment for the communication channel on which the signal 506 was transmitted from device 501 to device 507. As described herein, the channel response 209 may show a specific power effect with respect to frequency as they propagate through the environment. The response 209 may change over time. For example, the channel simulator 514 may time-adjust a variable 205. When information such as information 512 is received, the channel simulator 514 can use the current variable 205 to generate a current response such as response 209. For different times, for example for subsequent transmissions, the channel simulator 514 can adjust the variable 205 to produce a different response 209.
[0121] The channel simulator 514 can adjust the variable 205 to reflect channel variations based on time, space, environmental factors, or other inputs that affect the propagation of a signal in the environment over time. For example, propagation may be affected by environmental changes between daytime and nighttime. The channel simulator 514 can change the variable 205 over time so that the simulated channel response generated for nighttime transmissions resembles the real-world channel response obtained by nighttime transmissions, and the simulated channel response generated for morning or afternoon transmissions resembles the real-world channel response obtained at the corresponding time (e.g., morning or afternoon).
[0122] While static models can be used, they cannot adequately approximate environmental changes over time. By time-adjusting the output channel response 209 in response to real-world changes in transmission effects, the channel simulator 514 can generate a more accurate received signal approximation compared to a static system.
[0123] The applicability of the channel simulator 514 is shown in Figure 5B. As a channel approximation, the channel simulator 514 can be used in any situation where channel approximation may be useful in training one or more neural networks, testing devices, or performing other analyses. In addition to the use shown in Figure 5A, several other examples of use are discussed below.
[0124] In some implementations, the channel simulator 514 is used for development, lab testing, or other technical analysis. The computational complexity of inferring the decoder network 203 in the channel simulator 514 can be lower than the sum of traditional channel simulation methods, such as tapped delay lines (TDLs) or sinusoidal methods that generate other similar channels representing a collection of individual fading components. By utilizing a more detailed VAE method to represent the delay response or output value by the channel simulator 514, it is possible to use a more accurate and expressive channel emulation for communication channel simulation, encoder / decoder design, or verification, among other applications.
[0125] In some implementations, the channel simulator 514 is used to train channel encoders and decoders, such as the encoder 123 and decoder 139 in Figure 1. For example, the input to the channel simulator 514 may include the output from a signal encoder, such as encoder 123, and the output of the channel simulator 514 may be given to a channel decoder, such as decoder 139. The channel simulator 514 can introduce one or more effects. These effects may include, for example, a combination of Gaussian noise, sample or frequency offset, or additional substitutions to the input or transformed input to obtain the output. In some implementations, the decoder 203 within the channel simulator 514 can generate an approximate transmit value from the received value and be directly optimized to optimize the information encoding and / or information decoding network for performance improvements on an existing channel. Performance improvements may include, for example, minimizing the bit error rate, maximizing throughput, maximizing resilience, minimizing the probability of detection, minimizing or maximizing interference with other radio phenomena, or a number of other objective functions.
[0126] In some implementations, the channel simulator 514 is used in conjunction with conventional encoding methods, such as quadrature amplitude modulation (QAM). For example, the channel simulator 514 can be used to optimize specific components of a communication system, such as receiver elements or transmitter elements. In some cases, a fixed protocol can be used by the transmitter or receiver, for example, using quadrature frequency division multiplexing (OFDM) waveforms such as 4G LTE or 5G New Radio (NR), Wi-Fi, or another protocol, in which case complete adaptation may not be achieved on both sides of the link, but the system can optimize some or all components of the link or signal processing process while maintaining standards compatibility or interoperability with existing encoding schemes.
[0127] In some implementations, the channel simulator 514 takes input from a standard OFDM protocol. For example, a transmitter can encode information for input to the channel simulator 514 using the standard OFDM protocol, which, for example, maps bits to quadrature amplitude modulation (QAM) constellation points and encodes them across a set of OFDM subcarriers for transmission. Using such input, the channel simulator 514 can provide output for atypical systems that may not be using the standard protocol. For example, the channel simulator 514 can provide output to a neural network, such as the decoder 139, to approximate the transmitted information from the received approximation generated by the channel simulator 514. In this way, the decoder neural network can operate with the standard protocol used to encode the signal.
[0128] The decoder neural network, which obtains the output of the channel simulator 514, can perform the function of recovering the transmitted signal value from the received approximation generated by the channel simulator 514. The decoding neural network can perform time-domain data compensation to compensate for distortion or linearity, channel estimation and equalization (and / or decoder and symbol detection / bit decoding or content decoding) before OFDM demodulation, or to compensate for another subset of the received signal processing chain as a learning process.
[0129] Here, by training the network using the channel simulator 514, a wide range of decoding or encoding processes can be learned, which may reflect real-world operating conditions and optimize for one or more approximate channel states, enabling improved wireless performance in the real world. In some cases, the learned latent spatial variables 205 can be leveraged to specialize the encoding or decoding process for specific channel states or characteristics of the system, such as elevation angle, temperature, band, slope, and urban reflector density, in which case the autoencoder can learn specific or more optimal solutions for various characteristics in the environment.
[0130] In some implementations, the channel simulator 514 is used in conjunction with a tapped delay line (TDL) based channel simulator. For example, a TDL-based channel simulator can periodically capture path delay variations that are periodically transmitted via the SCPI (Standard Commands for Programmable Instruments) interface. Hybrid implementations with TDL channel simulators allow for lower-rate sampling of latent channels, while high-rate TDL channel simulators, for example, can perform high-rate fading simulations of well-defined taps or clusters with short-time basis (e.g., Rayleigh or Rysian tap fading), which facilitates leveraging existing channel simulation primitives and implementations and can also represent a wider range of channel states than purely fixed TDL or cluster delay line (CDL) channel definitions. In some implementations, the channel simulator 514, which can be based on a generative adversarial network (GAN) or VAE, can be used with existing channel simulation hardware, software, or algorithms to perform channel simulations, which may be difficult to achieve today using existing fixed TDL (time delay line) channel models.
[0131] In some implementations, the latent space corresponding to the learned latent space variables 205 is disturbed. For example, a VAE or GAN-based channel emulation process can generate a rich set of distributions over signal delay spreads or channel responses, continuously or over a range, through a range of interpretable inputs to the latent representation of the channel simulator 514, which can be seen within the channel under consideration of a range of conditions and mobilities, such as transmitter, mobile, or ambient device mobility.
[0132] VAEs can be used to implement TDL taps over time periods such as 1m, 5ms, 10ms, or 100ms. Using a more expressive VAE distribution, it is possible to process one or more transmit signals and generate a realistic set of TDL channel model characteristics over time periods that can be used to generate output signals on finer time scales, such as a 1ns sample time, among other suitable scales.
[0133] The channel simulator 514 can be used as an intermediate solution that allows hardware such as FPGA channel simulators to use existing TDL channel simulation routines to emulate channel responses, while machine learning (ML), GAN, or VAE-based distributions of channels can be used to periodically update and drive the TDL simulation, which may be more accurate or take into account a considerable amount of information about the simulation.
[0134] In some cases, the channel simulator 514 can estimate a number of TDL taps or other parametric channel characteristics and send them to an existing channel estimator via several protocols to existing test hardware (e.g., SCPI or the Video Electronics Standards Institute (VESA) Test Control Interface) to control and work with its current operating mode. This can provide significant additional test and simulation capabilities to existing channel simulation software or hardware by providing controllable and / or interpretable ML or VAE overlays to represent different channel conditions and phenomena on a device (e.g., device 115). In some implementations, the controller simulates a spatial trajectory or path via an environment, a set of interferometers such as a vehicle or other spatial reflection phenomena in the environment, or a range of other interpretable latent conditions that can help drive VAE-driven updates to a parametric model (e.g., a TDL model) in a more traditional channel simulator on some intermittent time scale.
[0135] In some implementations, the learned latent space variables 205 change over time. For example, time-correlated channel realizations can be generated by using a channel simulator 514 to slowly change the values in latent space to produce a set of channel responses or channel output realizations that correlate over time or other characteristics. The channel simulator 514 can select values in latent space. By selecting one or more values, the channel simulator 514 may perform a random walk or a walk that follows a specific trajectory in latent space over time to generate a similar or correlated set of channel responses. Since channel coherence time (or the time over which channel responses are similar) can be an important characteristic in many wireless communication systems, this rate of movement in latent space and the resulting changes in channel responses may be changed at a range of rates to reflect channel variation based on time, space, environmental factors, or other inputs that affect channel correlation over time.
[0136] The receiving signal module 517 obtains the signal to be transmitted from the transmitting signal module 515 based on the transmitted information 512. The signal can be analog or digital. The receiving signal module 517 performs one or more processes using the output channel response 209 and the signal from the transmitting signal module 515 to generate the received signal approximation 519 shown in Figure 5A. For example, the receiving signal module 517 can perform a composite product, conversion, receiver algorithm, or other processing of the signals from the transmitted signal module 515 and the output channel response 209, and the result of the composite product or other processing stage can be provided as the received signal approximation 519.
[0137] Returning to Figure 5A, the received signal approximation 519 generates the signal that would be received by a properly functioning receiving antenna and device. By comparing the received signal approximation 519 with the received signal 509, device 507 can determine the adjustments to be made to it. The receiving device update engine 521 is configured to perform only such a comparison between the received signal 509 and the received signal approximation 519. Based on the comparison, the receiving device update engine 521 can update device 507. The update may include software updates to the process used to convert signal 506 to received signal 509 (for example, this may include weight updates to the neural receiver on the device, weight updates to the neural encoder or decoder on the device, parameter updates to other signal processing algorithms or channel state feedback algorithms, or other controls and tuning of the device to help adjust or improve its performance under channel conditions).
[0138] In some implementations, the channel simulator 514 is a separate device communicatively connected to device 507. For example, the channel simulator 514 may be run by one or more processors in a dedicated hardware device. Device 507 can provide and receive information from the channel simulator 514 via either a wireless or wired connection.
[0139] Figure 6 shows an example of a system 600 for using a trained signal encoder network 123 and a trained signal decoder network 139 for sending and receiving wireless transmissions. Devices from Figure 1 are shown again for simplification. The trained signal decoder and encoder networks from Figure 1 are used in Figure 6 for signal communication. Devices 115 and 101 may each include encoder and decoder networks that enable both receiving and transmitting for communication between them.
[0140] In the example in Figure 6, device 101 includes a digital-to-analog converter 601 and a radio frequency (RF) module 603. The digital-to-analog converter 601 converts encoded information from the signal encoder network 123 into an analog signal for the RF module 603 to transmit as a radio transmission signal 108. The RF module 603 includes one or more optional RF or intermediate frequency (IF) devices, such as antennas, for transmitting the radio signal.
[0141] Device 115 comprises an RF module 605 and an analog-to-digital converter 607. The RF module 605 includes one or more RF or IF devices, such as one or more antennas, for receiving an analog signal, for example, a radio transmission signal 108, from device 101. The analog-to-digital converter 607 generates a digital version of the analog signal 108. The signal decoder network 139 uses the digital version of the signal 108 described in Figure 1 to generate an approximation 141 of the transmitted information.
[0142] Figure 7 shows various physical components in an example deployment scenario. The deployment scenario in Figure 7 may include channel modeling, learning, and / or emulation in a virtualized radio access network and / or radio intelligent controller, or other cloud services. The exemplary scenario shows that a channel model 701 (e.g., generated by a VAE such as the channel model of channel approximation module 133) or a digital twin component described herein may be deployed as a component within a virtualized radio access network component, and possibly within an open radio access network system.
[0143] The deployment scenario in Figure 7 illustrates a RAN with virtualized elements. Components include legacy components, open components, virtual components (such as those running on general-purpose servers), or physical components. For example, a radio unit (RU) 709 can be a virtual RU (e.g., vRU) or a physical RU, and can be open radio access network compliant or legacy radio access network compliant. This includes a RU709 that provides analog transmission and reception and digital conversion; a distributed unit (DU) 711 (or baseband processing unit (BBU)) that provides implementation of some physical layer and additional protocol processing (such as radio link control (RLC) / media access control (MAC)); a centralized unit 713 that provides higher layer protocol processing (radio resource control (RRC), service data adaptive protocol (SDAP), and / or packet data convergence protocol (PDCP) layers); a core network (NG Core) 715 that provides network services and interfaces; and a RAN intelligent controller 702 that provides both near real-time (RT) RIC703 and non-RT RIC705 that host xApps and rApps that can interface with various RAN components to optimize, coordinate, and control RAN functions.
[0144] Figure 7 also shows the interfaces within RAN, Open Radio Access Network (O-RAN), and / or Virtual Radio Access Network (V-RAN) deployments. This includes a fronthaul interface or open fronthaul interface (O-FH) 710 that transmits data, including time and / or frequency domain data for various antenna or spatial streams, between RU709 and DU711. The F1 interface 712 provides an interface between DU711 and CU713 elements. The NG interface 714 often provides an interface between CU713 and the core network 715. Similarly, the near real-time RIC703 uses several interfaces and protocols, including the E2 interface 719, to pass data to RIC xApps between elements including DU711, CU713, and RU709. The non-real-time RIC705 interoperates with the CU713 and core 715 components and the near real-time RIC703 using interfaces such as the A1 and O1 interfaces 721.
[0145] Each element shown in Figure 7 can be deployed to the actual wireless deployment edge, edge cloud hosting servers close to the wireless edge, a regional cloud located somewhere near the edge cloud but potentially at a distance, and a national cloud, which often has one or more locations within the country or operating area connecting the regional and edge components. These are broadly described in relation to the placement of RAN components, but may differ to some extent depending on deployment considerations. Some deployments may result in various splits such as 8, 7.2, 7.2c, 7, and 6, in which case the functions of RU709, DU711, and CU713 may be merged. Similarly, the physical layer (PHY) and media access control address (MAC) components can be split along different splits than those shown in Figure 7, using interfaces such as the Network Functional Application Platform Interface (nFAPI).
[0146] Here, a set of software routines is deployed to a server or cloud computing engine, which can be linked within RIC702 xAPP, near RT RIC703 or non-RT RIC705, another cloud service or computing server, or a centralized unit (CU) core 713, or another embedded computing device in the RAN. The deployment of CU713 can be achieved within an edge cloud 717 or a regional / national cloud 707, which can perform operations for cross-regional or cross-country communications. Here, channel model 701 can incorporate updates or measurements into channel models provided by radio units (RUs), e.g., RU709, distributed units (DUs), e.g., DU711, or centralized units (CUs), e.g., CU713. In some cases, the first layer within the DU711 may provide measurement data, such as channel state information or channel response estimates, along with metadata about the user equipment (UE), via network protocols such as Internet Protocol (IP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), Stream Controlled Transmission Protocol (SCTP), or another protocol that transmits this data to channel modeling software.
[0147] In some cases, the data may first pass through a database, or the DU711 / CU713 / RU709 may store the data more locally and query or be queried by channel modeling software to obtain this information. In other cases, the UE may provide this information to a network service that stores channel information and / or channel quality information via TCP / IP, UDP, SCTP, or similar network protocols. In some cases, this network service may run in the cloud, RIC, xAPP, etc. The network service can provide simulation and propagation modeling information, which can be used, for example, to predict link reliability, throughput, latency, or other appropriate parameters, information about interference between devices or sectors, information about coverage areas, or to predict link quality on network areas or future network planning information.
[0148] The use of such network services can be useful in industrial deployments such as private 5G networks, where industrial manufacturing or monitoring devices need to ensure their paths are reliable and do not experience degradation during critical industrial activities such as sensitive, low-latency manufacturing routines. Similarly, channel simulations, such as the generative channel model simulations described herein, can be used to update L1 signaling routines, such as channel estimation, equalization, MIMO / single-input multiple-output (SIMO) / multi-input single-output (MISO) coupling or transmission, or resource block allocation for multi-user MIMO (MU-MIMO) or single-user MIMO (SU-MIMO) in 4G, 5G, or 6G wireless cellular systems or Wi-Fi systems.
[0149] In such cases, cloud resources can provide simulation and training based on a generative channel model that provides updates to a range of neural and / or non-neural network models, which may include weights or other parameters used to drive L1 signal processing routines or scheduling routines or other signal cancellation, reception, or assignment schemes to optimize for radio and communication signal processing or system-level performance metrics.
[0150] In some cases, these deployed channel simulation systems can take the form of a hierarchy, where a particular simulation or digital twin can represent the performance of a particular sector, tower, or user equipment, and where the simulation system can also represent a higher-level hierarchy, such as the behavior of multiple UEs, multiple sectors, multiple towers, or multiple regions. Between different levels of the hierarchy, there may be transport or sharing of these models to leverage local or global experience and / or predictions, models, and other knowledge regarding radio propagation or other system performance or characteristics, and these are both up and down within this hierarchy.
[0151] Figure 8 shows an example of a system 800 for simulating radio signal propagation. The system in Figure 8 can simulate radio signal propagation by mirroring the real world using spatial and other inputs. This exemplary system shows a simulation, represented as simulation 801, which uses a generated channel model network running within a computing device 803 such as a cloud server, GPU device, computer cluster, edge cloud, or other computing platform.
[0152] The computing device 803 uses a generative network to update network weights / parameters and / or simulate radio propagation based on this model. Cloud or network computing resources simulate a mirror image of the physical world 805 within the digital world, simulating physical shape, apparatus, and intended behavior along with radio propagation phenomena. As shown, a generative channel model, e.g., a VAE-based model for a channel, may be stored or maintained within such a cloud digital twin and used to simulate expected channel propagation phenomena.
[0153] In this case, the real-world propagation environment within the physical world 805 can transmit measurements, channel response information or channel voice data, channel quality information, or other measurement-based statistics, along with telemetry, location information, or other historical context information, to the cloud 807 and the corresponding computing device 803. Simulations within a digital cloud radio channel simulation environment, such as the simulation 801 of the real world 805, can be used to predict propagation, bandwidth, latency, link quality, or other characteristics of a radio system by using a set of radio channel models, particularly generative data-driven channel models such as channel GANs and channel VAEs.
[0154] Because propagation in many frequency bands, such as very high frequency (VHF), ultra-high frequency (UHF), or extremely high frequency (EHF), can be difficult to predict, these data-driven models may be used in the formation of digital twin-world representations to simulate the physical world of these signals, the placement of new objects or structures, the movement of objects in the physical world, the placement of new types of antennas or base stations, or the placement of radio equipment, or other behaviors or events that should be simulated in the digital world for the purpose of predicting performance in the physical world.
[0155] In many cases, positional measurements can be used as input to a VAE, such as the VAE in Figure 3, by including them in the latent space within the channel's latent representation. The latent space can contain enough values to generate some or all possible channel responses in a given environment. Similarly, simulated latent positions can be used in a generative model to simulate the performance of various radio links or paths in a virtual or real radio situation within a simulated system.
[0156] Figure 9 is a flowchart showing an example of a process 900 for training a channel approximation system. The process 900 may be performed by one or more electronic systems, such as the device 115 in Figure 1, or a device that is communicably connected to the device 115, such as a server.
[0157] Process 900 includes obtaining one or more values of a first data structure that represents the frequency response of the communication channel (902). For example, an operating device such as device 115 or a device communicably connected to device 115 (e.g., a server) can obtain the channel response or transmitted data values. In Figure 4, device 115 obtains the channel response using signal 108 and antenna 113. The channel response 303 is obtained by the channel response engine 403.
[0158] Process 900 includes providing one or more values (904) to a first machine learning model trained to generate parameters with fewer degrees of freedom than the first data structure. For example, an operating device such as device 115 or a device communicably connected to device 115 (e.g., a server) can provide an input channel response 303 to the channel encoder network 301 in Figure 3, as shown in image 307a. In some cases, the operating device can provide a transmit value, as shown in image 307b. In Figure 4, device 115 provides the encoder network 301 with a channel response from a stored channel response 131, e.g., the input channel response 303.
[0159] Process 900 includes obtaining a first output from a first model containing one or more parameters (906). For example, an operating device such as device 115 or a device communicatively connected to device 115 (e.g., a server) can obtain a distribution parameter 407. The distribution parameter 407 can specify the distribution of values that the sampling module 409 will sample. The sampling may be randomized within the distribution specified by the distribution parameter 407.
[0160] Process 900 includes generating a second data structure using one or more parameters (908). For example, as shown in Figure 4, the sampling module 409 samples from a distribution identified by the distribution parameter 407. The data values sampled from the distribution identified by the distribution parameter 407 are contained in the learned latent space variable 205.
[0161] The process 900 includes providing a second data structure (910) to a second machine learning model trained to generate a synthetic channel response. For example, an operating device such as device 115 or a device communicably connected to device 115 (e.g., a server) can provide the learned latent space variables 205 to the decoder network 203.
[0162] Figure 10 is a flowchart illustrating an example of a process for training a channel approximation system together with a signal encoder network and a signal decoder network. Process 900 may be performed by one or more electronic systems, such as device 115 in Figure 1, or a device communicably connected to device 115, such as a server.
[0163] Process 1000 includes (1002) acquiring the transmitted information. For example, an operating device such as device 115 or a device (e.g., a server) that is communicably connected to device 115 can acquire the transmitted information 121 from the transmitted signal 108 based on the operation performed by the transmitted signal extraction module 119.
[0164] Process 1000 includes providing information to the encoder for encoding the information to be transmitted (1004). For example, an operating device such as device 115 or a device (e.g., a server) that is communicably connected to device 115 can provide the information to be transmitted 121 to the encoder network 123.
[0165] Process 1000 includes providing encoded information to one or more networks corresponding to channel approximation modules (1006). For example, an operating device such as device 115 or a device communicably connected to device 115 (e.g., a server) can provide encoded information 129 to channel approximation module 133.
[0166] Process 1000 includes providing the output of one or more networks to the decoder (1008). For example, an operating device such as device 115 or a device communicably connected to device 115 (e.g., a server) can provide an approximate value of the received signal 135 to the decoder network 139.
[0167] Process 1000 includes comparing the decoded output with the information to be transmitted (1010). For example, the decoder and encoder update engine 143 may compare an approximation 141 of the transmitted information with the transmitted information 121.
[0168] Process 1000 includes comparing the output with the received signal (1012). For example, the channel update engine 137 may compare the received signal approximation 135 with the received signal 117.
[0169] Process 1000 includes updating one or more encoders, decoders, and channel approximation modules based on comparisons (1014). For example, the decoder and encoder update engine 143, the channel update engine 137, and the combined update engine 147 can update one or more of the encoder network 123, the decoder network 139, and the channel approximation module 133. Each of the encoder network 123, the decoder network 139, and the channel approximation module 133 may include one or more neural networks. Updating the encoder network 123, the decoder network 139, and the channel approximation module 133 may include adjusting one or more weights or layers of the corresponding neural networks.
[0170] Figure 11 shows an example of a computing system used for training a neural network and generating variable communication channel responses. The computing system includes a computing device 1100 and a mobile computing device 1150, one or both of which can be used to implement the techniques described herein. For example, one or more components of system 100 may be a device communicably connected to the computing device 1100, the mobile computing device 1150, for example, device 101, device 115, or device 115, for example, a server, device 501, or device 507.
[0171] Computing device 1100 represents various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other suitable computers. Mobile computing device 1150 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular phones, smartphones, mobile embedded wireless systems, wireless diagnostic computing devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely examples and not limiting.
[0172] The computing device 1100 includes a processor 1102, memory 1104, storage device 1106, a high-speed interface 1108 connected to memory 1104 and multiple high-speed expansion ports 1110, and a low-speed interface 1112 connected to a low-speed expansion port 1114 and storage device 1106. Each of the processor 1102, memory 1104, storage device 1106, high-speed interface 1108, high-speed expansion ports 1110, and low-speed interface 1112 is interconnected using various buses and can be mounted on a common motherboard or in other ways as appropriate. The processor 1102 can process instructions to be executed within the computing device 1100, including instructions stored in memory 1104 or instructions stored on storage device 1106 to display graphic information relating to a GUI on an external input / output device such as a display 1116 coupled to the high-speed interface 1108. In other implementations, multiple processors and / or multiple buses may be used, along with multiple memories and types of memory, as needed. Furthermore, multiple computing devices are connected, with each device contributing a portion of the operation (e.g., a server bank, a group of blade servers, or a multiprocessor system). In some implementations, processor 1102 is a single-threaded processor. In some implementations, processor 1102 is a multi-threaded processor. In some implementations, processor 1102 is a quantum computer.
[0173] The memory 1104 stores information within the computing device 1100. In some implementations, the memory 1104 is a volatile memory unit or unit. In some implementations, the memory 1104 is a non-volatile memory unit or unit. The memory 1104 may also be another form of computer-readable medium, such as a magnetic or optical disk.
[0174] The storage device 1106 can provide a large-capacity storage device to the computing device 1100. In some embodiments, the storage device 1106 may be an array of devices including floppy disk drives, hard disk drives, optical disk drives, or tape drives, flash memory or other similar solid-state memory devices, or devices in a storage network or other configuration. Instructions can be stored in an information carrier. When an instruction is executed by one or more processing devices (e.g., processor 1102), it performs one or more of the methods described above. Instructions can also be stored in one or more storage devices such as a computer or machine-readable media (e.g., memory 1104, storage device 1106, or memory on processor 1102). The high-speed interface 1108 manages bandwidth-intensive operations for the computing device 1100, and the low-speed interface 1112 manages bandwidth-intensive operations. Such function assignments are merely examples. In one embodiment, the high-speed interface 1108 is coupled to memory 1104, display 1116, and a high-speed expansion port 1110 that accepts various expansion cards (not shown). In the implementation, the low-speed interface 1112 is coupled to the storage device 1106 and the low-speed expansion port 1114. The low-speed expansion port 1114, which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet), can be coupled to one or more input / output devices, such as networking devices like switches and routers, via keyboards, pointing devices, scanners, network adapters, etc.
[0175] The computing device 1100 can be implemented in several different forms, as shown in the figure. For example, it can be implemented as a standard server 1120, or multiple times within a group of such servers. Furthermore, it can be implemented as a personal computer, such as a laptop computer 1122. It can also be implemented as part of a rack server system 1124. Alternatively, components from the computing device 1100 may be combined with other components in a mobile terminal, such as a mobile computing device 1150. Each of these devices may include one or more of the computing device 1100 and the mobile computing device 1150, and the entire system may consist of multiple computing devices communicating with each other.
[0176] The mobile computing device 1150 includes, among other components, a processor 1152, memory 1164, input / output devices such as a display 1154, a communication interface 1166, and a transceiver 1168. The mobile computing device 1150 may also have storage, such as a microdrive or other device, to provide additional storage. Each of the processor 1152, memory 1164, display 1154, communication interface 1166, and transceiver 1168 is interconnected using various buses, and some of these components may be mounted on a common motherboard or in other ways as needed.
[0177] The processor 1152 can execute instructions within the mobile computing device 1150, including instructions stored in memory 1164. The processor 1152 can be implemented as a chipset including separate and multiple analog and digital processors. The processor 1152 may also provide, for example, control of other components of the mobile computing device 1150, such as user interface control, applications run by the mobile computing device 1150, and coordination of wireless communication by the mobile computing device 1150.
[0178] The processor 1152 can communicate with the user via a control interface 1158 and a display interface 1156 coupled to the display 1154. The display 1154 may be, for example, a TFT (Thin-Film-Transistor Liquid Crystal Display) display or an OLED (Organic Light Emitting Diode) display, or other suitable display technology. The display interface 1156 may include appropriate circuitry for driving the display 1154 to present graphical and other information to the user. The control interface 1158 can receive commands from the user and translate them for submission to the processor 1152. Furthermore, an external interface 1162 can provide communication with the processor 1152 to enable short-range communication between the mobile computing device 1150 and other devices. The external interface 1162 may be provided, for example, for wired communication in some embodiments or for wireless communication in other embodiments, and multiple interfaces may be used.
[0179] Memory 1164 stores information within the mobile computing device 1150. Memory 1164 can be implemented as one or more of the following: computer-readable media or media, volatile memory units or units, or non-volatile memory units or units. An expansion memory 1174 may be provided and connected to the mobile computing device 1150 via an expansion interface 1172, which may include, for example, a SIMM (Single In Line Memory Module) card interface. The expansion memory 1174 may provide additional storage space for the mobile computing device 1150, or it may store applications or other information for the mobile computing device 1150. Specifically, the expansion memory 1174 may include instructions for executing or supplementing the processes described above, and may also include security information. Therefore, for example, the expansion memory 1174 may be provided as a security module for the mobile computing device 1150 and may be programmed with instructions that enable the secure use of the mobile computing device 1150. Furthermore, a secure application can be provided via a SIMM card, along with additional information such as arranging identification information on the SIMM card in a hack-proof manner.
[0180] The memory may include, for example, flash memory and / or NVRAM memory (non-volatile random access memory). In some implementations, instructions are stored in an information carrier so that when executed by one or more processing units (e.g., processor 1152), they perform one or more of the methods described above. Instructions may also be stored in one or more storage devices such as one or more computers or machine-readable media (e.g., memory 1164, extended memory 1174, or memory on processor 1152). In some implementations, instructions are receivable in a propagated signal, for example, via transceiver 1168 or external interface 1162.
[0181] The mobile computing device 1150 can communicate wirelessly via a communication interface 1166, which may optionally include digital signal processing circuits. The communication interface 1166 can provide communication under various modes or protocols, such as GSM voice calls (Global System for Mobile Communications), SMS (Short Message Service), EMS (Extended Messaging Service), or MMS messaging (Multimedia Messaging Service), CDMA (Code Division Multiple Access), TDMA (Time Division Multiple Access), PDC (Personal Digital Cellular), WCDMA (Wideband Code Division Multiple Access), CDMA2000, or GPRS (General Packet Radio Service), 4G LTE / LTE-Advanced, 5G / 5G Advanced, and 6G cellular. Such communication may occur, for example, via a transceiver 1168 using radio frequencies. Short-range communication may also occur, such as using transceivers (not shown) such as Bluetooth or Wi-Fi. Furthermore, the GPS (Global Positioning System) receiver module 1170 can provide the mobile computing device 1150 with additional navigation and location-related radio data, which may be appropriately used by applications running on the mobile computing device 1150.
[0182] Furthermore, the mobile computing device 1150 can also communicate by voice using an audio codec 1160 that can receive voice information from the user and convert it into usable digital information. The audio codec 1160 can similarly generate audible sound for the user, for example, through a speaker in the handset of the mobile computing device 1150. Such sound may include voice from voice phone calls, recorded voice (e.g., voice messages, music files, etc.), and voice generated by applications running on the mobile computing device 1150.
[0183] The mobile computing device 1150 can be implemented in several different forms, as shown in the figure. For example, it may be implemented as a cellular phone 1180. It can also be implemented as part of a smartphone 1182, a personal digital assistant, or other similar mobile device.
[0184] We have described several implementations. However, please understand that various modifications may be made without departing from the technical concept and scope of this disclosure. For example, the various forms of flows shown above may be used by rearranging, adding, or deleting steps.
[0185] All embodiments of the present invention and the operation of the functions described herein can be implemented in digital electronic circuits, or in computer software, firmware, or hardware, including structures disclosed herein and their structural equivalents, or one or more combinations thereof. Embodiments of the present invention can be implemented as one or more computer program products, such as one or more modules of computer program instructions encoded on a computer-readable medium, for execution by a data processing device or for controlling the operation of a data processing device. The computer-readable medium may be a machine-readable storage device, a machine-readable storage substrate, a storage device, a configuration of an object that affects a machine-readable propagating signal, or one or more combinations thereof. The term “data processing device” encompasses all devices and machines for processing data, including, for example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, the device may include code that creates the execution environment for the computer program, such as code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or one or more combinations thereof. The propagating signal is an artificially generated signal, such as a machine-generated electrical, optical, or electromagnetic signal generated to encode information for transmission to a suitable receiving device.
[0186] Computer programs (also called programs, software, applications, scripts, or code) can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, either as standalone programs or as modules, components, subroutines, or other units suitable for use in a computing environment. Computer programs do not necessarily correspond to files in a file system. A program can be part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple collaborative files (e.g., a file containing one or more modules, subprograms, or parts of code). Computer programs can be deployed to run on a single computer, deployed to a single site, or distributed across multiple sites and interconnected by a communication network.
[0187] The processes and logic flows described herein can be executed by one or more programmable processors running one or more computer programs, performing their functions by operating on input data and generating outputs. The processes and logic flows can also be executed by special-purpose logic circuits such as FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits), and can also be executed as devices.
[0188] Processors suitable for executing computer programs include, as an example, both general-purpose and dedicated microprocessors, as well as any one or more processors in any type of digital computer. Generally, a processor receives instructions and data from read-only memory or random-access memory, or both. Essential elements of a computer are a processor for executing instructions and one or more storage devices for storing instructions and data. Generally, a computer is operationally coupled to receive and transfer data from one or more mass storage devices, or both, for storing data, for example, magnetic, magneto-optical disks, or optical disks. However, a computer does not necessarily have such devices. Furthermore, a computer can be incorporated into other devices such as tablet computers, mobile phones, personal digital assistants, mobile audio players, and GPS (Earth Positioning System) receivers, and may be given a number of names. Computer-readable media suitable for storing computer program instructions and data include, for example, all forms of non-volatile memory, media, and memory devices, including semiconductor memory devices such as EPROM, EEPROM, and flash memory devices, magnetic disks such as internal hard disks or removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks. Processors and memory may be supplemented by or incorporated into special-purpose logic circuits.
[0189] To provide user interaction, embodiments of the present invention can be implemented on a computer having, for example, a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user, and a keyboard and pointing device, such as a mouse or trackball, to which the user can provide input to the computer. Other types of devices can also be used to provide user interaction; for example, the feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback, and the input from the user can be received in any form, including acoustic, voice, or tactile input.
[0190] Embodiments of the present invention can be implemented in a computing system that includes a backend component, for example, a data server, or a middleware component, for example, an application server, or a frontend component, for example, a client computer having a graphical user interface or a web browser, or a client computer on which a user can interact with an embodiment of the present invention, or any combination of one or more such backend, middleware, or frontend components. The components of the system can be interconnected by any form or medium of digital data communication, for example, a communication network. Examples of communication networks include local area networks ("LANs") and wide area networks ("WANs"), for example, the Internet.
[0191] A computing system can include clients and servers. Clients and servers are generally remote to each other and typically interact via a communication network. The client-server relationship arises from the computer programs running on each computer and the relationships between the client and server.
[0192] Although this specification contains many details, these should not be construed as limitations on the scope or claimability of the invention, but rather as descriptions of features specific to particular embodiments of the invention. Certain features described herein in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment can also be implemented separately or in any suitable subcombination in multiple embodiments. Furthermore, features may be described above as functioning in a particular combination and initially claimed as such, but in some cases one or more features can be decoupled from the claimed combination, and the claimed combination may be directed towards subcombinations or variations of subcombinations.
[0193] Similarly, while actions are depicted in a specific order in the drawings, this should not be interpreted as requiring that such actions be performed in a specific order or sequence as shown, or that all illustrated actions be performed to achieve a desired result. In certain situations, multitasking and parallel processing may be advantageous. Furthermore, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged in multiple software products.
[0194] Specific embodiments of the present invention have been described. Other embodiments are within the scope of the following claims. For example, the steps described in the claims can be performed in a different order and the desired results can still be achieved.
Claims
1. It is a method, Obtaining one or more values representing the channel response of a communication channel, wherein the one or more values representing the channel response are represented by a first data structure with N degrees of freedom. Providing the aforementioned one or more values to a first machine learning model trained to generate parameters for a second data structure represented by less than N degrees of freedom, Obtaining a first output containing one or more parameters from the first machine learning model described above, The second data structure is generated using one or more of the aforementioned parameters, A method comprising providing the second data structure to a second machine learning model trained to generate a synthetic channel response.
2. A method according to claim 1, wherein generating the second data structure using one or more parameters is: Determining a probability distribution using one or more of the above parameters, A method comprising obtaining a value of the second data structure using the aforementioned probability distribution.
3. The method according to claim 2, The probability distribution is compared with the training distribution for training the first machine learning model. A method comprising updating the first machine learning model based on a comparison of the probability distribution and the training distribution.
4. A method according to claim 3, wherein the training distribution is one of a Gaussian distribution, a tapped delay line (TDL), a cluster delay line (CDL), a lysian distribution, a Rayleigh distribution, or the result from a simulated ray tracing model or other spatial simulation model.
5. The method according to claim 1, The synthesized channel response is compared with one or more acquired channel responses. A method comprising adjusting the parameters of the second machine learning model based on a comparison of the synthesized channel response with the one or more acquired channel responses.
6. The method according to claim 1, Transmitting the first information via the aforementioned communication channel, The second information, which is a representation of the first information modified by transmission via the communication channel, is obtained as the output of the communication channel. A method comprising generating one or more values representing the channel response based on a comparison of the first information and the second information.
7. A method according to claim 6, wherein the communication channel comprises at least one of the following: additional white Gaussian noise (AWGN) or Rayleigh fading channel model, International Telecommunication Union (ITU) or Third Generation Partnership Project (3GPP) fading channel model, emulated radio emissions, a transmission model, ray tracing in simulated geometry or environment for generating channel effects, TDL, CDL, a machine learning network trained to perform approximate measurements on a real channel, a channel state information estimation routine or other measurement signal processing algorithm, a combination of simulation and hardware transmission components, or channel measurement in a radio system.
8. The method according to claim 1, A method comprising generating the received signal using the synthesized channel response and information corresponding to the received signal.
9. The method according to claim 8, wherein the received signal is generated by A method comprising generating an output corresponding to a combination of the synthesized channel response and the information as the received signal.
10. A method according to claim 9, wherein the combination includes the result of multiplication between the data represented by the synthesized channel response and the data represented by the information.
11. A method according to claim 9, wherein the combination includes the result of a convolution between the data represented by the synthetic channel response and the data represented by the information.
12. It is a method, Obtaining one or more values from the distribution of values corresponding to the communication channel response, Providing the one or more values to a neural network trained to generate a simulated channel response corresponding to one or more radio frequency (RF) communication channels, A method comprising obtaining the output of the neural network based on the processing of one or more values by the neural network, wherein the output represents a simulated channel response corresponding to at least one communication channel of the one or more RF communication channels.
13. A method according to claim 12, wherein the distribution of values is generated by an encoder neural network.
14. The method according to claim 13, A method comprising training the encoder neural network using one or more real-world channel responses.
15. The method according to claim 13, A method comprising training an encoder neural network using data transmitted via a communication channel and data received after transmission via the communication channel as one or more transmit / receive data pairs.
16. The method according to claim 12, A method comprising providing a training output using the simulated channel response, wherein the training output is used to train one or more of the following: a radio receiver, a channel estimator, a signal encoder network, a signal decoder network, or a multiple-input multiple-output (MIMO) system.
17. A method according to claim 16, wherein the training output includes an approximation of the received signal.
18. A method according to claim 12, wherein the distribution of values is generated using data captured from a radio unit (RU) or a distributed unit (DU).
19. The method according to claim 12, wherein the distribution of values is generated by an encoder neural network trained with one or more real-world channel responses.
20. A computer program comprising one or more instructions that can be executed by a computer system for performing an action, Obtaining one or more values from the distribution of values corresponding to the communication channel response, Providing the one or more values to a neural network trained to generate a simulated channel response corresponding to one or more radio frequency (RF) communication channels, A computer program comprising: obtaining the output of the neural network based on the processing of one or more values by the neural network, wherein the output represents a simulated channel response corresponding to at least one communication channel of the one or more RF communication channels.
21. A computer program according to claim 20, wherein the distribution of values is generated by an encoder neural network.
22. A computer program according to claim 21, wherein the operation is A computer program comprising training the encoder neural network using one or more real-world channel responses.
23. A computer program according to claim 21, wherein the operation is A computer program that includes training an encoder neural network using data transmitted via a communication channel and data received after being transmitted via the communication channel as one or more transmit / receive data pairs.
24. A computer program according to claim 20, wherein the operation is: A computer program comprising providing a training output using the simulated channel response, wherein the training output is used to train one or more of the following: a radio receiver, a channel estimator, a signal encoder network, a signal decoder network, or a multiple-input multiple-output (MIMO) system.
25. A computer program according to claim 24, wherein the training output includes an approximation of the received signal.
26. A computer program according to claim 20, wherein the distribution of values is generated using data captured from a wireless unit (RU) or a distributed unit (DU).
27. A computer program according to claim 20, wherein the distribution of values is generated by an encoder neural network trained using one or more real-world channel responses.
28. It is a system, One or more processors, The machine-readable medium is interactively connected to one or more processors and stores one or more instructions that, when executed by the one or more processors, perform an operation, the operation is Obtaining one or more values from the distribution of values corresponding to the communication channel response, Providing the one or more values to a neural network trained to generate a simulated channel response corresponding to one or more radio frequency (RF) communication channels, A system comprising: obtaining the output of the neural network based on the processing of one or more values by the neural network, wherein the output represents a simulated channel response corresponding to at least one communication channel of the one or more RF communication channels.
29. The system according to claim 28, wherein the distribution of values is generated by an encoder neural network.
30. The system according to claim 29, wherein the operation is A system comprising training the encoder neural network using one or more real-world channel responses.
31. The system according to claim 29, wherein the operation is A system comprising training an encoder neural network using one or more transmit / receive data pairs, consisting of data transmitted via a communication channel and data received after transmission via the communication channel.
32. The system according to claim 28, wherein the operation is A system comprising providing a training output using the simulated channel response, wherein the training output is used to train one or more of the following: a radio receiver, a channel estimator, a signal encoder network, a signal decoder network, or a multiple-input multiple-output (MIMO) system.
33. The system according to claim 28, wherein the distribution of values is generated by an encoder neural network trained using one or more real-world channel responses.
Citation Information
Patent Citations
System and methods for channel modeling / estimation in a wireless communication network
CA2977300A1
Data processing program and data processing method
JP2020144799A
Assessment device, assessment method, and assessment program
JP2020160743A
Learning communication systems using channel approximation
US20190274108A1
