Generating Variable Communication Channel Responses Using Machine Learning Networks
Patent Information
- Application Number
- JP2023573413
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-05-28
- Filing Date
- 2022-05-27
- Publication Date
- 2025-02-21
- Estimated Expiration
- 2042-05-27
AI Technical Summary
Traditional communication systems rely on static models that do not accurately reflect real-world environmental variations, leading to sub-optimal performance and the need for additional fine-tuning, as they assume average conditions rather than specific environmental conditions.
The use of machine learning networks to jointly or iteratively train neural networks that simulate or approximate real-world communication channels, incorporating variational autoencoders to generate variable channel responses based on real-world data, allowing for near-optimal encoding and decoding of communication signals.
This approach enables communication systems to adapt to specific environmental conditions, improving accuracy and efficiency by learning nonlinear channel impairments, thereby optimizing performance metrics such as capacity and throughput.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of priority to U.S. Provisional Application No. 63 / 194,744, filed May 28, 2021, the contents of which are incorporated herein by reference in their entirety. [Technical field]
[0002] This specification relates generally to communication systems using machine learning, including processing of communication signals using machine learning networks. [Background technology]
[0003] Communications systems involve transmitting and receiving various types of communications media, for example, through the air, fiber optic or metal cables, underwater, or in space. In some cases, the communications channel uses radio frequency (RF) waveforms to transmit information, which is modulated onto one or more carrier waveforms operating at RF frequencies. In other cases, the RF waveform itself is the information, such as the output of a sensor or probe. The information carried in the RF waveform is typically processed, stored, and / or transported over a communications channel or other form of communication, such as over an internal system bus in a computer, or over a local or wide area network. Summary of the Invention
[0004] In some implementations, the subject matter described in this disclosure may be embodied in methods, apparatus, and systems for synthetically 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 the 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 propagated over the channel (e.g., effects such as fading or interference due to dense urban multipath environments, excessive or congested indoor environments, dynamic moving or high speed high-velocity environments, high delay spread or high Doppler environments, or other forms of interference and / or distorted filled channel environments). The one or more neural networks simulating or approximating the effects of real-world communication channels may be trained using a variational autoencoder 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 at different delays may be due to the transmitted signal being reflected, refracted, scattered, or absorbed by various features of the environment of the communication channel. Changes in the environment, such as vehicles moving across the path of signal propagation or changes in weather, may cause the power received by the receiver to change at different delays.
[0005] Conventional models that simulate or approximate communication channels are static models. They include tuning parameters that take into account the type of environment, e.g., rural, urban, suburban, etc. However, such static models do not account for natural variations in the environment and do not reflect the actual conditions of a particular environment, but instead typically reflect the average conditions in similar environments. As a result, communications tuned and analyzed using such models may not necessarily be 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 of actual signals transmitted in a particular environment (e.g., a particular environment, or an environment that shares a threshold number of features with the particular environment or other stored environments). Furthermore, the channel response can be varied over time to approximate real-world variations in signal propagation due to variations in the communication environment (e.g., moving objects, automobiles, time of day, weather changes, among others).
[0006] Communications systems have traditionally been constructed by manually defining and implementing modulation and coding algorithms based on analytical models derived in convenient algebraic expressions (e.g., for channel effects, for the structure of the modulation and / or coding process, and / or for other effects of the transceiver). In contrast to such manual engineering artifacts, the techniques disclosed herein use encoder and decoder networks that rely on extensive learning processes and data (e.g., from measurements) to convert or encode a first information message into a near-optimal transmit waveform and decode a received waveform into a second information message, which is increasingly efficient and near-optimal. For example, in some embodiments, to optimize such encoding and decoding networks, the gradient of a loss or distance function between the first and second information is used for backpropagation of parameters in a machine learning network.
[0007] To calculate this gradient between the encoder and decoder, a model of the impairments occurring in the wireless signal based on analog hardware components and / or wireless propagation effects (e.g., a communication channel model) may be included, and the gradient may also be calculated. This disclosure describes methods and systems for training this channel model, and treating the learned encoder and decoder system as two learning problems that can be optimized as one or more problems, or iteratively by alternating between the two problems. In some cases, the learning includes optimization using machine learning methods such as stochastic gradient descent. In some implementations, the process of optimizing two competing objective or loss functions is performed by an adversarial network.
[0008] By using parametric networks for function approximation and a wide variety of linear, nonlinear, and hard-to-model channel impairment effects, a communication channel is quickly approximated and modeled by the disclosed techniques without compromising the validity of the channel model by attempting to simplify it. By jointly optimizing the channel approximation and near-optimal information encoding objectives for the approximate channel, a communication system can be designed for a particular hardware device, communication system, channel type or impairment, or other constraints that are traditionally difficult to model or result in sub-optimal performance (e.g., when simplifying assumptions about channel effects).
[0009] Traditionally, communication system design has been treated as a manual analysis problem decomposed into multiple specific tasks, such as placing maximally separated constellation points on a uniform 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 customized decoding algorithms. However, as described below, the disclosed technology treats communication systems as a large optimization problem in which a flexible network of encoders and decoders can arbitrarily mix information and learn near-optimal encoded representations, driven primarily 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 designs that can surpass traditional solutions to many wireless communication and encoding problems. In this context, near-optimal is intended to refer to approximately what is achievable in terms of performance metrics such as capacity, throughput, or power, given the limits of physics and information theory for a set of wireless systems and operating environment constraints.
[0010] Conventional systems that rely on manually defined processes to encode and decode first information to obtain second information typically used certain assumptions about the channel model they were optimizing for. 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 make it easier to derive, prove, and demonstrate the analysis of the model under study (i.e., 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 particular deployment environment are used to understand and approximate how to derive parameterized, closed-form channel models. These measurements can be difficult or expensive to implement, and are often limited to modeling a few parameters, and therefore do not adequately represent the full effects of real-world channels. Similarly, in existing training encoding and decoding systems, differentiable models of channel effects expressed in some closed analytical form are often used to perform optimization, relying on compact closed-form expressions for each effect present in the channel.
[0011] In contrast to the above, the techniques disclosed herein rely on direct channel model optimization and observations on real-world channel measurements, as well as high degree of freedom nonlinear network models to approximate the channel. This approach removes the need for closed-form channel models or assumptions about the channel effects present in the system. In some cases, the channel is approximated iteratively or simultaneously using an encoding optimization process to learn near-optimal representations and encodings across a wide range of nonlinear and / or hard-to-model channel impairment sources in wireless or analog components such as amplifiers.
[0012] One innovative aspect of the subject matter described herein includes an embodied method, the method including: obtaining one or more values indicative of a response of a communication channel, the one or more values indicative of the channel response being represented by a first data structure represented with N degrees of freedom; providing the one or more values to a first machine learning model trained to generate parameters for a second data structure represented with less than N degrees of freedom; obtaining a first output from the first machine learning model, the first output including the one or more parameters; generating the second data structure using the one or more parameters; and providing the second data structure to a second machine learning model trained to generate a composite channel response.
[0013] Other implementations of the present and other aspects include corresponding systems, apparatus, and computer programs encoded on computer storage devices configured to perform the operations of the methods. One or more computer systems may be configured with software, firmware, hardware, or a combination thereof installed on the system that, during operation, causes the system to perform the operations. One or more computer programs may be configured with instructions that, when executed by a data processing device, cause the device to perform the operations.
[0014] Each of the foregoing and other embodiments may optionally include one or more of the following features, alone or in combination: For example, in some implementations, generating the second data structure using the one or more parameters includes determining a probability distribution using the one or more parameters and using the probability distribution to obtain values for the second data structure.
[0015] In some implementations, the operations include comparing the probability distribution to a training distribution to train a first machine learning model, and updating the first machine learning model based on comparing the probability distribution to the training distribution.
[0016] In some implementations, the training distribution is one of a Gaussian distribution, a tapped delay line (TDL), a clustered delay line (CDL), a Rician distribution, a Rayleigh distribution, or a result from a simulated ray tracing model or other spatial simulation model.
[0017] In some implementations, the operations include comparing the composite channel response to the one or more obtained channel responses and adjusting parameters of the second machine learning model based on comparing the composite channel response to the one or more obtained channel responses.
[0018] In some embodiments, the operations include transmitting first information over a communications channel, obtaining as an output of the communications channel second information as a representation of the first information modified by transmission over the communications channel, and generating one or more values indicative of a channel response based on comparing the first information to the second information.
[0019] In some implementations, the communications channel includes at least one of additive white Gaussian noise (AWGN) or Rayleigh fading channel models, International Telecommunications Union (ITU) or Third Generation Partnership Project (3GPP) fading channel models, emulated wireless emissions, emulated geometry models, ray tracing in a simulated geometry or environment, channel effects, TDLs, CDLs, machine learning networks trained to make 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 in a wireless system.
[0020] In some implementations, the operations include generating a received signal using the composite channel response and information corresponding to the received signal.
[0021] In some implementations, generating the received signal includes generating an output corresponding to a combination of the composite channel response and the information as the received signal.
[0022] In some implementations, the combination includes the result of a multiplication between the data represented by the composite channel response and the data represented by the information.
[0023] In some implementations, the combination includes the result of a convolution between the data represented by the composite channel response and the data represented by the information.
[0024] Another innovative aspect of the subject matter described herein 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 indicative of the simulated channel response corresponding to at least one of the one or more RF communication channels.
[0025] Other implementations of the present and other aspects include corresponding systems, apparatus, and computer programs configured to perform the operations of the methods encoded on a computer storage device. One or more computer systems may be configured with software, firmware, hardware, or a combination thereof installed on the system, and may cause the system to perform operations during operation. One or more computer programs may be configured with instructions that, when executed by a data processing device, cause the device to perform operations.
[0026] Each of the above and other embodiments may optionally include one or more of the following features, either alone or in combination: 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 with one or more real-world channel responses.
[0028] In some implementations, the operations include training an encoder neural network using data transmitted over the communication channel and data received after being transmitted over the communication channel as one or more transmit and receive data pairs.
[0029] In some implementations, the simulated channel response is used to provide a training output that is 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] The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features and advantages of the invention will become apparent from the description, the drawings, and the claims. [Brief description of the drawings]
[0033] [Figure 1] FIG. 1 illustrates an example system for training one or more networks based on obtained channel responses.
[0034] [Diagram 2] FIG. 2 illustrates an example channel approximation system that includes a channel decoder network for generating a simulated channel response.
[0035] [Diagram 3] FIG. 3 illustrates an example of a system that includes a channel encoder network and a channel decoder network for generating learned latent space variables for generating simulated channel responses.
[0036] [Figure 4]FIG. 4 illustrates an example system for obtaining a channel response and training a channel encoder network and a channel decoder network for a channel approximation system.
[0037] [Figure 5A] FIG. 5A illustrates an example system for updating a receiver using a trained channel decoder network.
[0038] [Figure 5B] FIG. 5B is a diagram illustrating an example of a channel simulator.
[0039] [Figure 6] FIG. 6 illustrates an example system for using a trained signal encoder network and a trained signal decoder network to transmit and receive wireless transmissions.
[0040] [Figure 7] FIG. 7 illustrates an example of a deployment scenario.
[0041] [Figure 8] FIG. 8 is a diagram illustrating an example of a system for simulating radio propagation.
[0042] [Figure 9] FIG. 9 is a flow diagram illustrating an example of a process for training a channel approximation system.
[0043] [Figure 10] FIG. 10 is a flow diagram illustrating an example of a process for training a channel approximation system using a signal encoder network and a signal decoder network together.
[0044] [Figure 11] FIG. 11 illustrates an example of a computing system that may be used to train a neural network and generate a variable communication channel response.
[0045] Like reference numbers and references in the various drawings indicate like elements. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0046] FIG. 1 illustrates an example of a system 100 for training one or more networks based on an obtained channel response. 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 can include one or more networks. The networks referred to herein can include neural networks such as deep neural networks, convolutional neural networks, and other machine learning based algorithms. In this context, the channel response can represent a frequency response to a communication channel and can include complex or real values of power received from one or more antennas at different delays.
[0047] The system 100 includes a device 115 (e.g., a user device, a smartphone, a laptop, etc.) and a device 101 (e.g., a user device, a smartphone, a server, a laptop, etc.) and corresponding modules and processes operated by the devices. One or more networks shown in FIG. 1 can be utilized by the device 115 or another electronic device communicatively connected to the device 115. For example, the device 115 can include a memory that stores instructions configured to be executed by one or more processors of the device 115 to perform operations of the one or more networks. Additionally or alternatively, in some cases, the device 115 can be communicatively connected to another device, such as a server computer. In such cases, the server performs operations corresponding to the functions of the one or more networks. For example, the device 115 can provide and access data from the server. The server can receive data from the device 115 and provide output based on the execution of one or more operations of the one or more networks. The server can include a memory that stores instructions configured to be executed by one or more processors of the server to perform operations of the one or more networks.
[0048] FIG. 1 illustrates the transmission of a wireless communication signal 108 from a device 101 to a device 115. The signal 108 may 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 an environment, which may be, for example, an outdoor open space, an indoor enclosed space, or a combination of indoor and outdoor spaces. The environment may exhibit nonlinear (e.g., power amplifiers), linear, or a combination of nonlinear and linear impairment effects, including environmental elements that affect the characteristics of the signal as it propagates through the wireless communication channel from a transmitter (e.g., device 101) to a receiver (e.g., device 115). For example, FIG. 1 illustrates a visual representation of approximate propagation effects on the signal 108 from environmental elements including obstacles such as trees 111 and vehicles 109. Environmental elements may also include buildings, animals, people, physical geographic elements (e.g., terrain), and the like. Signal 108 transmitted from device 101 is received by device 115 and processed as received signal 117. Additionally, environmental factors that may affect signal propagation include weather, time of day, and activity of other nearby wireless devices.
[0049] The environment can include at least one transmitter and receiver in a fixed or mobile environment, in which devices can move around with different GPS positions, locations, pointing angles, antenna patterns, elevation angles, or other characteristics or nearby activities or events, and the devices in the real-world version of the scenario can capture data measurements, sounding data, and logged parameters and 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 can include one or more wireless emitters that transmit data. The wireless emitters can include, for example, emissions from a number of different cellular towers, cellular antennas or elements, Wi-Fi emitters, or other forms of wireless signal or radio frequency emitters, such as broadcast towers, communication systems, or vehicles. A wireless receiving device, such as device 115 and corresponding antenna 113, can receive these transmissions and capture and record a number of characteristics about the wireless signal emissions. The characteristics can include the exact transmitted value "x" (e.g., if the transmitted value is known in advance, transmitted from a correctly received packet, or from some other means), the actual received value / sample "y", and an estimate of the channel response in the form of an estimated channel response "h".
[0051] The characteristics can be combined with metadata about the transmitter or receiver that can include a wide range of information. The receiving device can follow a certain spatial path through the environment, and the receiver can 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 about the transmitting or receiving antenna, temperature of the surrounding area, humidity, surrounding area or geometry, etc. Many of these additional pronunciation variables can affect the resulting channel response "h" or the direct relationship between the channel input "x" and the channel output "y". Thus, the process of capturing and recording these values during the voice or channel measurement activities herein can be important.
[0052] A version of signal 108 is received at device 115 after propagating through a wireless communication channel as received signal 117. Due to imperfections of the antennas used to transmit and receive signal 108, e.g., antenna 103 of device 101 or antenna 113 of device 115, or the effects of environmental elements during propagation, such as vehicle 109 and / or trees 111, received signal 117 may not be identical to transmitted signal 108. For example, signal 108 may be reflected off vehicle 109, and as vehicle 109 moves, the reflection of signal 108 changes, causing changes in the signal propagation and, as a result, the signal received by device 115.
[0053] In one embodiment, the device 101 generates the signal 108 using a reference indicator 105. The reference indicator 105 may include a particular character or symbol. As shown, the transmitted signal 108 is used to convey the transmitted information 107, e.g., the transmitted information 107 corresponds to data modulated onto a radio frequency (RF) signal waveform as the signal 108. The device 101 may include one or more digital-to-analog converters to convert the transmitted information 107 to an analog signal 108. One or more antennas of the device 101 transmit the signal 108 over a wireless communication channel.
[0054] The device 115 processes the received signal 117. This processing and associated training are described in stage AD of FIG. 1. As shown, in stage A, the device 115 receives the signal 117 as a representation of the signal 108 using one or more antennas 113. A transmitted signal extraction module 119 of the device 115 obtains the received signal 117. In some cases, the signal 117 is a digital representation of a received analog signal. One or more analog-to-digital converters or pre-processing techniques within the device 115 are used to convert the analog signal received by the device 115 to the received signal 117.
[0055] The transmitted signal extraction module 119 extracts 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 the transmitted information 107 may be in the form of symbols, bits, codewords, or other suitable information.
[0056] In one embodiment, along with the transmitted information 107, the 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 at 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 can include data to enable the device 115 to perform a checksum of the received signal so that the device 115 can determine whether the transmitted information 121 is an accurate representation of the transmitted signal 107.
[0057] The use of a reference indicator is useful when a timing reference is not shared between the device 101 and the device 115. In such a case, the reference indicator 105 may be used for reference synchronization to enable the device 115 to determine the time of arrival of a reference signal, which may be a standalone signal or part of the signal 108. The device 115 may recover the transmitted signal 107 through a process of correlation of the adjustment signal (e.g., a time or frequency adjustment signal may be extracted from the received digital signal 117 using the reference synchronization information and correlated with the transmitted information 107 from the modulating information source).
[0058] In some implementations, in addition to or as an alternative to using bits, the device 101 inserts a reference tone into the signal 108 as a reference indicator 105. For example, the device 101 can include the transmitted information 107 and a reference tone, such as a pseudorandom number (PN) chip sequence or other known preamble or reference tone, in the signal 108. The reference tone can be inserted at a known time offset into the encoded information (e.g., immediately before, following, or otherwise). The known time offset allows the device 115 to determine the timing (and frequency) of the encoded transmitted signal 107 of the signal 108.
[0059] In some implementations, the reference indicator 105 includes 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 a transmitted message. The protocol can be known to both the device 101 and the device 115, and the sequence number associated with the reference indicator 105 for the signal 108 can be included in the signal 108 or can be known to both the device 101 and the device 115 prior to transmission of the signal 108. The device 101 and the device 115 can access details of the protocol (e.g., stored in the memory of each device or in one or more remote servers communicatively connected to each device) to determine portions of the signal 108, such as the control and data portions. The device 115 can use prior knowledge of the data from the signal 108 and the sequence numbers associated with the known protocol to generate transmitted information 121 that matches the transmitted information 107.
[0060] In one embodiment, in addition to the received signal 117 by the device 115, the transmitted signal 107 is obtained by the device 115 through out-of-band communication. For example, the device 115 can obtain the transmitted signal 107 through a wired connection with the device 101 or through another mode of pre-calibrated wireless communication between the device 101 and the device 115.
[0061] In stage B, the signal encoder network 123 encodes the transmitted information 121 to generate encoded information 129, which may be in analog or digital format, depending on the configuration of the signal encoder network 123. The digital to analog conversion may 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 or adds the role of a conventional modulator, or a modulator and encoder. The signal encoder network 123 may include one or more neural networks, or one or more layers of neural networks, to convert the information into an 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 may generate a waveform representation of the transmitted information 121 as the encoded information 129. The waveform representation may include the amplitude of the signal over time.
[0062] In the example of FIG. 1, the signal of encoded information 129 encoded by encoder network 123 is transmitted through a channel approximation module 133 rather than through an actual transmission. The channel approximation module 133 simulates the effects of a signal propagating through an environment, such as a wireless transmission channel. For example, the channel approximation module 133 may simulate the effects of trees 111 and vehicles 109, among other signal effects, on the communication channel between device 101 and device 115. The channel approximation module 133 may also emulate the transfer functions of one or more analog electronic radio components used to transmit or receive the wireless signal.
[0063] In stage C, a channel approximation module 133 uses the encoded information 129 and the channel response to generate a received signal approximation 135. The generation of the channel response in the channel approximation module 133 is discussed with respect to subsequent figures, including Figures 2 through 5B. The channel response used to generate the received signal approximation 135 is determined using a stored channel response 131, as discussed in subsequent figures. The channel response represents the frequency response for the communication channel and may include complex or real values of the power received from one or more antennas at different delays.
[0064] In some implementations, the channel approximation module 133 is configured to emulate a transfer 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 pre-processing or normalization steps. For example, pre-processing may include sensing, synchronization, normalization, filtering, or tuning, among others. In some cases, the pre-processing includes digital signal processing (DSP) routines (e.g., software, firmware, gateways, digital logic, etc.). In some cases, the pre-processing may include one or more additional neural network-based pre-processing tasks.
[0065] In some implementations, the channel approximation module 133 performs one or more operations, including convolution, operating on the signal prior to the simulated transmission. For example, the channel approximation module 133 may convolve a channel response, such as a channel response from the stored channel response 131 or a simulated channel response generated using the stored channel response 131, with the encoded information 129. The output of the convolution of the channel response and the encoded information 129 may represent a received signal approximation 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 recover the transmitted information 121 using the received signal approximation 135. The received signal approximation 135 can be in analog or digital form depending on the configuration of the channel approximation module 133. The analog to digital conversion 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. Whereas the signal encoder network 123 converts the transmitted information into a signal of encoded information to be transmitted, the signal decoder network 139 converts the received signal into an approximation of the transmitted information in encoded information 129, referred to herein as an approximation of the transmitted information 141.
[0067] In some implementations, the signal encoder network 123 and the signal decoder network 139 are trained to learn the physical layer modulation scheme using actual wireless transmission data, such as the signal 108 sent from the device 101 to the device 115. Using the trained signal encoder network 123 and the signal decoder network 139, the device 115 can optimize the encoding and channel approximation for the wireless communication system.
[0068] In some implementations, the device 115 or a device communicatively connected to the 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. The optimization can include using one or more adversarial techniques. The networks can be trained iteratively or together to learn near-optimal representations of wireless information encodings, for example, for nonlinear wireless channel and electronic device responses. In some cases, the system 100 can provide effective information encodings and channel approximation functions (e.g., encodings that maximize or minimize some objective, such as throughput, bit error rate, or frame error rate) for cases that are considered difficult (e.g., transfer functions of components or wireless effects that are difficult to model or difficult to accurately or computationally compensate for in conventional systems, resulting in performance degradation). Optimization can refer to the process of updating weights in each network in an iterative process, such as stochastic gradient descent. Two or more processes can operate together or iteratively to optimize the signal encoder network 123, the signal decoder network 139, and the channel approximation module 133.
[0069] In an embodiment, the signal decoder network 139 includes one or more pre-processing or normalization operations. For example, pre-processing may include sensing, synchronization, normalization, filtering, or tuning, among others. In some cases, pre-processing includes DSP routines (e.g., software, firmware, gates, digital logic, etc.). In some cases, pre-processing may include one or more additional neural network-based pre-processing 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 the 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 auto-encoding 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 indicative of the difference between the approximation 141 of the transmitted information and the transmitted information 121. Over multiple iterations of training, a loss value corresponding to the output of the loss function can be decreased, such that the approximation 141 of the transmitted information more closely matches the transmitted information 121 over time.
[0071] Similarly, the channel update engine 137 may generate a loss function indicative of the difference between the received signal approximation 135 and the received signal 117. Over multiple iterations of training, a loss value corresponding to the output of this loss function may be reduced as the received signal approximation 135 matches the received signal 117 more closely in time. The loss functions for the channel approximation module 133 and / or the autoencoders (e.g., the signal encoder network 123 and the signal decoder network 139) may be improved using stochastic gradient descent, genetic algorithms, or other related algorithms.
[0072] As mentioned above, in some implementations, the loss calculation and update process 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 a 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 weights or other parameters of neural networks in the channel approximation module 133, the signal encoder network 123, and the signal decoder network 139. The adjusted weights can change the transmitted information approximation 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 related 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 functions, as described herein. Adjusting one or more networks, such as the signal encoder network 123 and the signal decoder network 139, may include, among other things, adjusting one or more layers, weights, parameters, or connections of nodes of one or more constituent neural networks.
[0073] In some implementations, the loss calculation and update process is performed iteratively. This is accomplished, for example, by iterating between the update operation and the loss calculation as competing adversarial objectives that influence each other during training. When iteratively updating, each loss (e.g., the loss from the channel approximation module 133 and the loss from the encoder and decoder networks 123 and 139) can be used independently. In such a case, weights in one or more networks of the channel approximation module 133, etc. are fixed in place and are not updated during the update process of the signal encoder network 123 and the signal decoder network 139. Similarly, weights in one or more networks of the signal encoder network 123 and the signal decoder network 139, etc. are fixed in place and are not updated during the update process of the channel approximation module 133.
[0074] As shown in FIG. 1, the signal decoder network 139 provides an approximation 141 of the transmitted information to the decoder update engine 143. 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 to the transmitted information 121. Based on a difference, called L2 loss, between the approximation 141 of the transmitted information and the transmitted information 121, 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, including stochastic gradient descent, among others. In general, the decoder update unit 145 is configured to adjust the decoder network 139 such that subsequent approximations of the transmitted information more closely match the known transmitted information.
[0075] In some implementations, the difference generation for updating one or more networks includes Kullback-Leibler divergence (KL-divergence). For example, one or more of the update engines, e.g., the decoder and encoder update engine 143, the channel update engine 137, and / or the combined update engine 147, may use KL divergence to determine the difference between two or more values. The decoder and encoder update engine 143 may use KL divergence to determine the difference between the approximation of the transmitted information 141 and the transmitted information 121. The KL divergence may be used to determine the decoder update 145 or the encoder update 127 (e.g., a larger KL divergence corresponds to a larger adjustment performed by the decoder update 145 or the encoder update 127). Similarly, the KL divergence may be used to calculate the difference and corresponding updates of the channel update engine 137 and the combined update engine 147.
[0076] In addition to or instead of generating the decoder updates 145, the decoder and encoder update engine 143 may generate encoder updates 127 for the signal encoder network 123. In such a case, the decoder and encoder update engine 143 may update the signal encoder and signal decoder networks 123 and 139 jointly or iteratively. For example, as described above, the parameters of the signal encoder network 123 may be adjusted while the parameters of the signal decoder network 139 are stable and vice versa. Also, the parameters for each of the signal encoder network 123 and the signal decoder network 139 may be adjusted simultaneously. Various techniques, such as stochastic gradient descent, backpropagation, etc., may 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 updates 127 may be configured to adjust the encoder network 123 such that subsequent approximations of the transmitted information more closely match the known transmitted information.
[0077] Similarly, the channel approximation module 133 can be updated by the channel update engine 137. The training of the channel approximation module 133 will be discussed in detail with reference to later figures. FIG. 1 illustrates how the training of the channel approximation module 133 can be performed jointly or iteratively with the joint update engine 147. As previously described, both the channel update engine 137 and the decoder and encoder update engine 143 can generate a loss value indicative of the difference between a simulated or approximated value and a known value. For example, the channel update engine 137 takes the received signal 117 and the received signal approximation 135 and calculates the difference or loss between them (referred to as 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 parameters of one or more networks included in the channel approximation module 133. By 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 a difference between the approximation 141 of the transmitted information and the actual transmitted information 121. This difference or loss, possibly together with the difference calculated by the channel update engine 137, can be provided to the combined update engine 147. The combined update engine 147 can combine the L2 loss corresponding to the encoding and decoding with the L1 loss corresponding to the 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 can include one or more algorithms, such as a stochastic gradient subalgorithm, a generic algorithm, a backpropagation algorithm, etc., to determine parameter changes to the networks (e.g., the signal encoder network 123, one or more networks of the channel approximation module 133, and the signal decoder network 139). In general, the parameter changes can be configured to reduce the difference obtained by the combined update engine 147 including L1, L2, and LC, improving the accuracy of the channel approximation while also improving the efficiency of the encoding and decoding in the networks 123 and 139.
[0079] As previously mentioned, 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 mentioned, in some implementations, one or more of the operations described as being performed by the device 115 are implemented by an apparatus communicatively connected to the device 115, e.g., a server or a dedicated hardware processor, such as a field programmable gate array (FPGA).
[0080] In some implementations, one or more of the encoder network 123, the decoder network 139, or the channel approximation module 133 may take the form of a series of dense (or possibly strided or sparse) matrix multiplications with weights, the addition of biases, the sum of combinations of these products, and the application of a nonlinear function on the output, such as a rectified linear unit (ReLU) or sigmoid function. In some implementations, the system 100 includes an encoder, such as the encoder network 123 or a corresponding encoder used by the device 101. The encoder generates an encoder for one or many antennas, a wireless (or wired) channel or set of analog components with multiple input multiple output (MIMO), or a decoder network, such as the decoder network 139 with multiple receive antennas, or any suitable combination of these. In this manner, the system including the system 100 described herein along with the training process is directly applicable to MIMO and massive MIMO systems, such as candidate cellular fifth generation (5G), 5G+, sixth generation (6G), or 6G+, waveform design, optimization, and deployment.
[0081] In some implementations, the encoder network 123 and decoder network 139 leverage prior knowledge of efficient network structures (such as activations, layer or weight connectivity), synchronization, estimation, or attention methods to aid in the task of scaling these networks for efficient, high-performance operation. In this context, attention refers to the ability of a learning method to focus resources on a particular subset of data or to synchronize or normalize a subset of information from the original received information.
[0082] FIG. 2 illustrates an example of a channel approximation system 133 including 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 input learned latent space variables 205. The output channel response 209 is used to determine the effect of an environment (e.g., as described with respect to FIG. 1) on a given signal propagating in that environment. For example, in one case, the output channel response 209 represents a frequency response of frequencies propagating in 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 multiple channel responses obtained in the environment. The latent space is a feature space (e.g., a learned vector space such as a 32-dimensional number that encodes the transformed code of the channel - e.g., can be constructed from the channel or can be used to reconstruct the channel) from which the values of the variables 205 are extracted. The process of generating the variables 205 from the channel response data can be represented as a dimensionality reduction problem. For example, the channel response can include many dimensions that represent a wide range of power levels for each frequency over a wide range of frequencies. The low-dimensional latent space variables 205 represent characteristics of the high-dimensional channel response data with fewer variables (e.g., 32 integers in a vector). In an embodiment, a device such as device 115 can train a channel approximation module 133 to determine the learned latent space variables 205.
[0083] The decoder network 203 provides an output channel response 209 to a received signal module 213. The received signal module 213 obtains a copy of a to-be-transmitted or already-transmitted signal from a transmitted signal module 211. For example, in the context of FIG. 1, the transmitted signal module 211 may obtain the encoded information 129. The received signal module 213 may use the output channel response 209 and the encoded information 129 to generate an approximation 141 of the transmitted information. In some cases, the operations of the channel decoder network 203, the transmitted signal module 211, and the received signal module 213 may be performed by one or more computers executing instructions that perform the operations of the channel approximation module 133 of FIG. 1.
[0084] The received signal module 213 can perform one or more operations using the output channel response 209 and the signal to be transmitted from the transmitted signal module 211, e.g., encoded information 129, to determine a received signal approximation, such as the received signal approximation 135 of Figure 1. In some implementations, the received signal module 213 performs a convolution of the signal to be transmitted with the output channel response 209 to generate a received signal approximation, e.g., the received signal approximation 135 of Figure 1. The received signal approximation approximates the signal that would be transmitted by the transmitter and received by the receiver after being affected by one or more environmental effects.
[0085] 3 illustrates an example of a system 300 including a channel encoder network 301 and a channel decoder network 203 for generating learned latent space variables 205 that are used to generate a simulated channel response, such as an output channel response 209. The channel encoder network 301 includes one or more neural networks, latent space networks 305, for determining the latent space variables 205 from a latent space. In some implementations, the channel encoder network 301 is realized by one or more computers configured to perform the operations of the channel approximation module 133, for example, by executing software instructions corresponding to the operations of the channel encoder network 301, including the operations of the latent space network 305.
[0086] The channel encoder network 301 may be trained with the channel decoder network 203 to generate learned latent space variables 205, as shown in FIG. 4. The learned latent space variables 205 may include 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 may correspond to a set of values. The set of values may be included in one or more vectors. For each operation of the channel decoder network 203, a variable in the set of values, or a vector in the set of one or more vectors, may be used as the learned latent space variables 205 as an input to the channel response network 207. In this way, the variability of the environment may 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 shows a sample input channel impulse response, referred to as "h" and described in more detail below, where power levels across a range of frequencies are shown as line graphs. The latent space network 305 is illustrated with image 309, which shows a neural network structure with multiple nodes in the connection layers. 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 connection layers. Image 313a is an approximation of the input channel impulse response 303,
number
[0088] The exemplary system 300 of FIG. 3 can be used for a variational autoencoder (VAE) based training approach to model and train the channel approximation module 133. The system 300 provides an alternative method for channel emulation that utilizes a variational autoencoder in addition to or instead of a generative adversarial network (GAN) approach to generate simulated channel responses. In this case, a channel impulse response "h", which represents complex or real values of power received at different delays for one or more antennas, is encoded into latent variables 205, which may be referred to as "z" (usually of lower dimensionality), through an encoder network or variational encoder network, shown in FIG. 3 as a latent space network 305. In this context, variation refers to a "reparameterization trick" or sampling layer in a neural network to draw random values. Here, the specific properties that define the random distribution or properties of the random distribution, e.g., mean and variance, are defined by the activation or median values in the neural network.
[0089] In FIG. 3, the channel impulse response “h” is shown, e.g., image 307a, as a single power delay profile, but often an NxM MIMO channel delay response may be represented (where N and M are positive integers), or a complex-valued (e.g., quadrature baseband sampled) delay response may be represented as well. A decoder network or variational decoder network, shown as channel response network 207 in FIG. 3, derives the output channel impulse response “h” from the latent variables 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 with a set of measured or simulated channel responses “h”, such as the input channel response 303, a generator can be generated in the form of a decoder network, e.g., the channel response network 207, which maps the random latent distributions represented by the variable “z” to the estimated channel responses “
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 transmit values, graphically shown in image 307b, and the output channel response 209 is replaced with receive values, graphically shown in image 313b. For example, the raw input and output data of the channel, illustrated as image 307b, "x", and image 313b, "y", respectively, are considered directly, rather than the channel impulse (or delay) response values "h". In some cases, training with transmit values instead of channel response data can result in a more accurate approximation of a communication channel that has a nonlinear relationship between transmit and receive values.
[0093] In some of these cases, acoustic data with transmitted values "x" and received values "y" after passing through one or more communication channels is used to model the full probabilistic relationship function between x and y. Although the channel impulse response "h" is used in many systems to reflect the linear relationship between x and y, a nonlinear relationship exists between the channel input and output. The nonlinear relationship between the two can be learned by directly training a VAE between the channel input and output. The VAE can consider the input and output to be the same value, but in some cases, a regression task may be included to regress the channel output from the channel input.
[0094] In some cases, the term "auto" in VAE may generally mean auto-regression of the same "transformed" values through the channel functions. This alternative method for channel simulation can learn relationships between channel inputs x and channel outputs y, which are not usually captured in the 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, where multiple losses such as reconstruction, VAE loss, and generator / discriminator loss can be traded off against each other with different magnitudes to best generate a channel emulation approximation function.
[0095] As shown, the channel encoder network 301 encodes the input channel responses 303, shown diagrammatically in image 307a, into variables 205 using a latent space network 305. For example, in some implementations, the latent space network 305 can include a variational autoencoder (VAE). In this context, variation refers to a reparameterization operation or sampling layer in a neural network to draw random values. The random values are determined by activations or intermediate values in the neural network, where certain properties that define a random distribution or properties of the random distribution, e.g., mean and variance, are determined. The latent space network 305 can learn a latent space distribution based on one or more acquired channel responses, including the input channel response 303, based on properties of the acquired channel responses. In some implementations, the latent space is random. In some implementations, the latent space is determined based on properties of the latent space network and the input channel response 303. The activations in the latent space network 305 can represent parameters of a numerical distribution, e.g., mean and variance, from which values are sampled to generate the learned latent space variables 205.
[0096] In some implementations, the channel decoder network 203 is trained to reconstruct the input channel response 303 using the learned latent space variables 205. For example, the channel decoder network 203 generates an output channel response 209 that indicates complex or real values of the power received at different delays for one or more antennas that are similar but not identical to the input channel response 303. The output channel response 209 can indicate 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 a 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 a static model that assumes linear impairment effects in 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 the 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 the transmitted signal and the received signal. The response 303 can show channel effects that account for changes between the transmitted signal and the received signal, e.g., the signal 108 and the received signal 117. Figure 4 shows an example of collecting real-world channel effects by obtaining the received and transmitted signals and training the channel encoder and decoder networks 301 and 203 with the obtained real-world channel response.
[0098] 4 is a diagram illustrating an example of a system 400 for obtaining a channel response and training a channel decoder network of a channel encoder network and a channel approximation system, e.g., training the channel encoder network 301 and the channel decoder network 203 of the channel approximation module 133. Similar to the system 100 described with respect to FIG. 1, in the system 400, a signal 108 is sent from a device 101 to a device 115. As shown, in one case, the device 115 is mounted on a moving vehicle 109. The device 115 can move through an environment capturing the transmitted signal to generate a channel response, which can vary depending on the relative positions of the device 115 and the device 101. The received signal 117 can include the signal 108 as well as other signals from other transmitters in the environment.
[0099] As described in FIG. 1, the transmitted signal extraction module 119 of the device 115 extracts the transmitted information 121 from the received signal 117, which corresponds to the transmitted signal 107. The channel response engine 403, which may be implemented as a software routine implemented by the device 115 or a device communicatively connected to the device 115 (e.g., a server) by executing one or more program instructions using one or more computers, obtains the transmitted information 121 and the received signal 117 to determine or generate a channel response of a wireless communication channel through which the signal 108 propagates from the transmitter 101 to the receiving device 115, and stores the channel response in the stored channel response 131. The channel response engine 403 may generate a channel response corresponding to the signal 108 based on the received signal 117. For example, the channel response engine 403 may generate the channel response by determining a power level and / or an impulse response or a frequency domain fading profile for a range of frequencies corresponding to the received signal 117.
[0100] As described with respect to the system 100 of FIG. 1, the device 101 may include a reference indicator 105 in the signal 108 to assist the transmitted signal extraction module 119 in extracting the transmitted information 121. In some implementations, the device 110 generates the signal 108 using a timing source 401, and the same or a similar timing source 401 is accessible to the device 115. In some cases, the timing source 401 may be a signal from a test signal generator having a known pulse per second. In some cases, the timing source 401 may be an external timing source available to both the device 101 and the device 115. For example, the timing source 401 may take timing from a Global Positioning System (GPS) signal. The timing source 401 may provide common timing for both the device 101 and the device 115.
[0101] Due to the 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). Thus, the transmitted signal extraction module 119 can perform adjustments on the received signal in both time and frequency. The transmitted signal extraction module 119 can recover the encoded transmitted signal through a process of aligned signal association. For example, with the timing knowledge that is identical from the digital-to-analog converter of the device 101 and the analog-to-digital converter of the device 115, a time-aligned and possibly frequency-aligned 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 to form, for example, a tuple of (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 the channel response using analog versions of the transmitted and received information. In some implementations, the channel response engine 403 generates the channel response using digital versions of the transmitted and received information (e.g., the received signal 117). In some implementations, the channel response engine 403 generates the channel response using either analog or digital transmitted information and either analog or digital received information.
[0103] In some implementations, in addition to wireless transmission, the device 101 transmits the transmitted signal 108 to the device 115 as part of another communication. For example, the device 101 can also transmit the transmitted signal 108 to the device 115 using a wired communication medium. In such a case, the device 115 can have a copy of the transmitted signal 108 or can generate the transmitted signal 108 based on the transmitted information 121 without performing any operations that would determine the transmitted information 121.
[0104] The device 115 uses the stored channel responses 131 to train the channel encoder network 301 and the channel decoder network 203. The stored channel responses 131 can include one or more channel responses generated by the channel response engine 403. The 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 saved responses are selected and repeated during training. In some implementations, the channel responses in the stored channel responses 131 are sorted, and the device 115 (or another computer, e.g., a server, configured to train the encoder and decoder networks) selects responses and performs serial or parallel training iterations in a ranking order. The ranking can be based on the quality of the response data. For example, if the antenna was not malfunctioning, if the response was within the range of typical responses for the area, etc. The channel encoder network 301 provides the input channel response 303 to the latent space network 305.
[0105] In the example of FIG. 4, the latent space network 305 generates distribution parameters 407 (e.g., mean, standard deviation, variance, etc.) and provides the distribution parameters 407 to the sampling module 409. The sampling module 409 can be implemented, for example, as a software routine implemented by the device 115 or as a device (e.g., a server) communicatively connected to the device 115 by executing one or more program instructions using one or more computers, and selects values from a distribution identified by the distribution parameters 407. For example, the distribution parameters 407 can identify 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 the learned latent space variables 205 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. The 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 uses the learned latent space variables 205 to generate output channel responses 209 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 responses 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 a latent space update engine 413. The latent space update engine 413 has access to a training distribution 411. The latent space update engine 413 can be implemented, for example, as a software routine implemented by the device 115 or as a device (e.g., a server) communicatively connected to the device 115 by executing one or more program instructions using one or more computers, and compares the learned latent space variables 205 to the training distribution 411.
[0108] In some implementations, the latent space update engine 413 compares the distribution specified by the distribution parameters 407 to the training distribution 411. For example, the latent space update engine 413 can randomly sample from the distribution specified by the distribution parameters 407 and compare the random sampling to the training distribution 411. The latent space update engine 413 can compare the random sampling to the training distribution 411 by randomly sampling from the training distribution 411 by determining whether one or more values of the random sampling are within the training distribution 411. Random sampling to compare distributions is useful when the distributions are not confirmed to a mathematical model of the distribution. In some cases, the latent space update engine 413 compares the distribution parameters 407 to parameters that define the training distribution 411. Based on the difference between the data corresponding to the training distribution 411 and the data corresponding to the latent space variables 205, the latent space update engine 413 can update the latent space 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 adjusting 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 learned latent space variables 205 according to the training distribution 411, the system 400 prevents the latent space network 305 from over-specifying the distribution in the latent space provided by the distribution parameters 407, leading to latent space variables that are not general enough for efficient and accurate channel response. In general, the latent space engine 413 can adjust the latent space network 305 to generate distribution parameters that closely resemble the training distribution 411, and thus generate sampled values of variables, e.g., variables 205, that are likely to be included in the training distribution 411.
[0110] The channel decoder network 203 provides the output channel response 209 to the channel network update engine 415, which also obtains the input channel response 303 from the encoder network 301. Another constraint for training the channel approximation module can include preventing the simulated output channel response 209 from exceeding a threshold difference from the input channel response 303. The simulated channel response can be referred to as a synthetic channel response. The threshold can be set manually by the user or variably using the changes in the responses in the environment (e.g., a high threshold for a high variability environment and a low threshold for a low variability environment). A simple percentage of the variability of all responses detected in the environment can set the threshold, or a grouping algorithm can determine a dynamic threshold based on the presence of a group of closely related responses (e.g., k-means clustering, etc.). In this way, the channel decoder network 203 can generate a set of simulated channel responses that generally correspond to the environment (e.g., exhibit power delay values for frequencies similar to the real working channel responses) without requiring a large number of real-world obtained channel responses.
[0111] In some implementations, the channel network update engine 415 compares the input channel response 303 to the output channel response 209. Based on a difference between the two determined by the comparison, the channel network update engine 415 can adjust the channel response network 207. In this context, adjusting a network such as the channel response network 207 can include adjusting one or more layers, weights, parameters, or connections of nodes of one or more neural networks, among others. In general, the channel network update engine 415 can adjust the channel response network 207 to generate an output channel response that is more similar to the input channel response 303.
[0112] In some implementations, the learned latent space variables 205 include 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 variables 205 may be a vector including, e.g., 32 values that represent the 250 frequencies in a reduced-dimensionality formulation. 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 variables 205 may indicate 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 of the learned latent space variables 205 may be statically or variably set during training to indicate the lowest number of values that achieves a decoded channel response that is similar to the input channel response, but with variability.
[0113] In an embodiment, the encoder network 301 can obtain certain characteristics of the communication channel and use them to tune the latent variables 205 for the particular conditions of the communication instance. For example, the propagation effect of the communication channel on the signal may depend on factors such as the climate, time of day, weather, objects in the vicinity of the transmitter or receiver, or both, other signal transmissions, the location of the transmitter and receiver, etc. The device 115 or the device 101 can obtain location information, such as location information of the transmitter, receiver, environmental objects, etc., as well as environmental information to determine these factors. The information obtained by the device 101 can be sent to the device 115 in the signal 108 or another communication. The information obtained by the device 115 can be used directly in training. By recording these factors, the device 115 can determine characteristics of the communication channel, such as fading characteristics experienced by the signal, 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. Also, the channel characteristics can include, for example, location, altitude, vehicle operation, room size, material properties, different frequency bands, among others.
[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 can include a module that samples data from a distribution defined by the encoder network 301 for all channel properties, or according to a particular channel property that obtains a particular distribution defined by the encoder network 301 for a particular channel property and sample data from that distribution to generate the learned latent space variables 205. In either case, the decoder network 203 can generate learned latent space variables 205 that generate output channel responses that match the particular channel properties. The output channel responses will be similar to the real-world channel responses that correspond to the same set of channel properties. If precipitation affects a particular frequency transmission, if recorded in the set of channel characteristics, a corresponding latent variable can be generated according to one or more real-world channel responses captured in these channel characteristics, as described above.
[0115] In some embodiments, additional sensors on devices 115 and 101, such as cameras, humidity sensors, among others, can detect channel characteristics and provide these characteristics for generation of distributions and distribution-based variables 205. For example, the camera of device 115 can recognize vehicles passing through the sensor's area or propagation environment, the presence of large or unusual objects or reflectors in the channel's area, the presence of other events, such as those that may affect conditions. In some cases, the sensing device can gather one or more of acoustic, acoustic, visual, infrared, ultrasonic, temperature, or other radio activity data in the vicinity of the transmitter, channel, or receiver that may affect the communication channel in some way or affect the received values. For example, the receiver may measure a number of received channel estimates for a particular emitter, while the sensor can recognize one or more instances where a vehicle, reflector, or other spatial anomaly is present in the environment, which may have significantly affected the channel response and the resulting channel distribution experienced by the wireless system. By collecting data representing these phenomena together and their resulting effects on the wireless system, such phenomena can be more comprehensively captured, modeled, and represented within the wireless communication system and channel models.
[0116] In a test scenario, an apparatus including the decoder network 203 may be used to test the reception of a test signal by a receiving device, such as device 507 in FIG. 5A. Either by using a standard latent space or by using a latent space based on channel characteristics, a user can determine what the device should receive, as indicated by the signal provided by the decoder network 203 and the signal to be transmitted, and the receiving device that is actually received. In comparison, a user can tune a receiving device to match a known signal to be received, based on the processing of the decoder network 203. An example of a test scenario is shown in FIG. 5A.
[0117] FIG. 5A illustrates an example of a system 500 for updating a receiver device 507 using a trained channel decoder network 203. The system 500 includes a device 501 and a device 507. Like the device 101, the device 501 transmits a signal 506 including transmitted information 505 and / or a reference indicator 503. Like the device 115, the device 507 receives the signal 506. As described in FIG. 1, the vehicle 109 and the obstacle 111 are examples of objects that may affect the propagation of the signal 506 from the device 101 to the device 507. Using one or more signal processes, the device 507 generates a received signal 509. The device 507 may be under test and may not generate a correct received signal based on an analog signal received by the antenna of the device 507. Using a channel simulator 514, the device 507 may verify and update the signal process or provide a warning of a malfunctioning component based on a 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. FIG. 5A shows a verification engine 513 that can verify that the transmitted information 512 is correct. The verification engine 513 can include a checksum operation in which a value in the received signal 509 or a portion of the received signal 509 is summed and compared to another value. If the sum does not match the other value, the verification fails. If it does match, the verification succeeds. If it fails, the device 507 can inform 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 a 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 performed by the device 115 or a device (e.g., a server) communicatively connected to the device 115, for example, by executing one or more program instructions using one or more computers.
[0120] The channel simulator 514 obtains the verified transmitted information 512. The transmitted signal module 515 provides the transmitted information 512 to the received signal module 517. As described herein, the decoder network 203 provides the output channel response 209. In some implementations, the channel simulator 514 is similar 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 may be a reproduction of the decoder of the channel approximation module 133 implemented through a separate instantiation, e.g., copied computer instructions. The output channel response 209 may be specific to the current environment for the communication channel through which the signal 506 was transmitted from the device 501 to the device 507. As described herein, the channel response 209 may indicate a particular power effect on frequency as they propagate through the environment. The response 209 may change over time. For example, the channel simulator 514 may time align the variables 205. When information, such as information 512, is received, the channel simulator 514 can use the current variables 205 to generate a current response, such as response 209. For different times, e.g., subsequent transmissions, the channel simulator 514 can adjust the variables 205 resulting in a different response 209.
[0121] The channel simulator 514 can adjust the variables 205 to reflect channel variations based on time, space, environmental factors, or other inputs that affect the propagation of signals in an environment over time. For example, propagation can be affected by environmental changes during the day and at night. The channel simulator 514 can vary the variables 205 over time such that a simulated channel response generated for a nighttime transmission resembles a real-world channel response obtained by a nighttime transmission, and a simulated channel response generated for a morning or afternoon transmission resembles a real-world channel response obtained at a corresponding time (e.g., morning or afternoon).
[0122] Although a static model can be used, it does not adequately approximate environmental variations 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 approximation of the received signal compared to a static system.
[0123] The applicability of the channel simulator 514 is illustrated in Figure 5B. As a channel approximation, the channel simulator 514 can be used in any situation where a channel approximation may be useful in training one or more neural networks, testing equipment, or performing other analysis. In addition to the uses illustrated in Figure 5A, some examples of other uses 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 the inference of the decoder network 203 in the channel simulator 514 may be lower than traditional channel simulation methods, such as the sum of tapped delay lines (TDLs) or sinusoidal methods that generate other similar channels that represent a collection of individual fading components. By utilizing more detailed learned VAE methods for representing delay responses or output values by the channel simulator 514, it is possible to use 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 a channel encoder and decoder, such as the encoder 123 and the decoder 139 of FIG. 1. For example, the input to the channel simulator 514 can include an output from a signal encoder, such as the encoder 123, and the output of the channel simulator 514 can be provided to a channel decoder, such as the decoder 139. The channel simulator 514 can introduce one or more effects. The effects can include, for example, combining Gaussian noise, sample or frequency offsets, or additional permutations to the input or transformed input to obtain the output. In some implementations, the decoder 203 in the channel simulator 514 can generate approximate transmitted values from received values and directly optimize to optimize the information encoding and / or information decoding network for improved performance over the existing channel. The performance improvement can be, for example, minimizing bit error rate, maximizing throughput, maximizing resilience, minimizing probability of detection, minimizing or maximizing confusion with other wireless phenomena, or a number of other objective functions.
[0126] In some implementations, the channel simulator 514 is used with a conventional encoding method, such as quadrature amplitude modulation (QAM). For example, the channel simulator 514 can be used to optimize a particular component of a communication system, such as a receiver element or a transmitter element. In some cases, a fixed protocol can be used by the transmitter or receiver, such as an Orthogonal Frequency Division Multiplexing (OFDM) waveform, such as 4G LTE or 5G New Radio (NR), Wi-Fi, or another protocol, in which case full adaptation may not occur on both sides of the link, but the system can optimize parts or components of the link or signal processing process while maintaining standard compatibility or interoperability with existing encoding methods.
[0127] In some implementations, the channel simulator 514 obtains input from a standard OFDM protocol. For example, a transmitter can encode information for input to the channel simulator 514 using a 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 manner, the decoder neural network can function with the standard protocol used to encode the signal.
[0128] A decoder neural network that obtains the output of the channel simulator 514 may perform the function of recovering the transmitted signal values from the received approximations generated by the channel simulator 514. The decoding neural network may perform compensation of the time domain data to compensate for distortion or linearity before OFDM demodulation, a network that performs channel estimation and equalization (and / or a decoder and symbol detection / bit decoding or content decoding), or another subset of the received signal processing chain as a learning process.
[0129] Here, a wide range of decoding or encoding processes can be learned by training the network with a channel simulator 514, optimizing for one or more approximate channel conditions that may reflect real-world operating conditions and enable improved wireless performance in the real world. In some cases, the learned latent space variables 205 can be leveraged to specialize the encoding or decoding process for particular channel conditions or characteristics of the system, such as elevation angle, temperature, band, tilt, urban reflector density, among others, 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 with a tapped delay line (TDL) based channel simulator. For example, the TDL based channel simulator can periodically capture path delay variations periodically transmitted via a Standard Commands for Programmable Instruments (SCPI) interface. A hybrid implementation with a TDL channel simulator allows for lower rate sampling of the underlying channel, while, for example, a high rate TDL channel simulator can perform high rate fading simulation of well-defined taps or clusters in a short time basis (e.g., Rayleigh or Rician tap fading), which makes it easier to leverage existing channel simulation primitives and implementations and can also represent a wider range of channel conditions than a purely fixed TDL or cluster delay line (CDL) channel definition. 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 simulation, which today can be difficult to achieve 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 perturbed. For example, a VAE or GAN-based channel emulation process can generate a rich set of distributions spanning signal delay spreads or channel responses, continuously or over a range of interpretable inputs to the latent representation of the channel simulator 514, that can be seen in the channel under a range of conditions and mobility considerations, such as transmitter, mobile, or surrounding device mobility.
[0132] The VAE can be used to realize TDL taps for periods such as 1 m, 5 ms, 10 ms, or 100 ms time windows. More expressive VAE distributions can be used to process one or more transmit signals to generate a realistic set of TDL channel model characteristics for time periods that can be used to generate output signals at finer time scales, such as 1 ns sample times, among other suitable scales.
[0133] The channel simulator 514 can be used as an intermediate solution that allows hardware such as an FPGA channel simulator to use existing TDL channel simulation routines to emulate the channel response, while machine learning (ML), GAN, or VAE based distributions of the channel can be used to periodically update and drive the TDL simulation, which may be more accurate or may take into account significantly more information about the simulation.
[0134] In some cases, the channel simulator 514 can estimate and send a number of TDL taps or other parametric channel characteristics to an existing channel estimator via some protocol (e.g., SCPI or Video Electronics Standards Association (VESA) Test Control Interface) to existing test hardware to control and operationalize its current operating mode. This can provide significant additional testing and simulation capabilities to existing channel simulation software or hardware by providing a controllable and / or interpretable ML or VAE overlay to represent different channel conditions and phenomena on the device (e.g., device 115). In some implementations, the controller simulates spatial trajectories or paths through the environment, a set of interferers such as vehicles or other spatial reflection phenomena in the environment, or a range of other interpretable potential conditions that can help drive VAE-driven updates to a parametric model (e.g., a TDL model) in a more traditional channel simulator at some discontinuous time scale.
[0135] In some implementations, the learned latent space variables 205 change over time. For example, the channel simulator 514 can be used to generate time-correlated channel realizations by slowly varying values in the latent space to generate a set of channel responses or channel output realizations that are correlated over time or other properties. The channel simulator 514 can select values in the latent space. By selecting one or more values, the channel simulator 514 may perform a random walk or a walk that follows a particular trajectory in the latent space over time to generate a similar or correlated set of channel responses. Because channel coherence time (or the time over which the channel responses are similar) can be an important property in many wireless communication systems, the rate of this movement in the latent space and the resulting changes in the channel response can change at a range of rates to reflect channel variations based on time, space, environmental factors, or other inputs that affect channel correlation over time.
[0136] The received signal module 517 obtains a signal to be transmitted from the transmitted signal module 515 based on the transmitted information 512. The signal can be analog or digital. The received signal module 517 performs one or more processes using the output channel response 209 and the signal from the transmitted signal module 515 to generate a received signal approximation 519 as shown in FIG. 5A. For example, the received signal module 517 can perform convolution, transformation, receiver algorithm, or other processing of the signals from the transmitted signal module 515 and the output channel response 209, and can provide the result of the convolution or other processing stage as the received signal approximation 519.
[0137] Returning to FIG. 5A, the received signal approximation 519 generates a signal that would be received by a device with a properly functioning receive antenna. By comparing the received signal approximation 519 to the received signal 509, the device 507 can determine adjustments to be made to the device 507. The receiving device update engine 521 is configured to make only such comparisons between the received signal 509 and the received signal approximation 519. Based on the comparison, the receiving device update engine 521 can update the device 507. The updates can include software updates to the process used to convert the signal 506 to the received signal 509 (e.g., this can include weight updates to a neural receiver on the device, weight updates to a 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 the device 507. For example, the channel simulator 514 can be executed by one or more processors of a dedicated hardware device. Through either a wireless or wired connection, the device 507 can provide information to the channel simulator 514 and receive information in return.
[0139] Figure 6 illustrates an example of a system 600 for using trained signal encoder network 123 and trained signal decoder network 139 to transmit and receive wireless transmissions. The devices from Figure 1 are shown again for simplicity. The signal decoder and encoder network trained in Figure 1 are used in Figure 6 for signal communication. Devices 115 and 101 can each include encoder and decoder networks that enable both reception and transmission for communication between them.
[0140] 6, device 101 includes a digital-to-analog converter 601 and a radio frequency (RF) module 603. Digital-to-analog converter 601 converts encoded information from signal encoder network 123 into an analog signal for transmission by RF module 603 as wireless transmit signal 108. RF module 603 includes any RF or intermediate frequency (IF) device, such as one or more antennas, for transmitting wireless signals.
[0141] The 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, e.g., a radio transmission signal 108, from the 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 FIG. 1 to generate an approximation 141 of the transmitted information.
[0142] 7 is a diagram illustrating various physical components in an example deployment scenario. The deployment scenario of FIG. 7 can include channel modeling, learning, and / or emulation in a virtualized radio access network and / or a radio intelligent controller, or other cloud services. The example scenario illustrates that a channel model 701 (e.g., generated by a VAE such as the channel model of the channel approximation module 133) or a digital twin component described herein can be deployed as a component within a virtualized radio access network component, possibly within an open radio access network system.
[0143] The deployment scenario in Figure 7 illustrates a RAN with virtualized elements. The components may be legacy, open, virtual (e.g., running on a general-purpose server), or physical. For example, a radio unit (RU) 709 may be a virtual RU (e.g., vRU) or a physical RU, and may be open radio access network compliant or legacy radio access network compliant. This includes the RU 709 providing analog transmission and reception and digital conversion, the Distributed Unit (DU) 711 (or Baseband Processing Unit (BBU)) implementing parts of the physical layer and providing additional protocol processing (such as Radio Link Control (RLC) / Medium Access Control (MAC)), the higher layer protocol processing (a centralized unit 713 providing Radio Resource Control (RRC), Service Data Adaptation Protocol (SDAP) and / or Packet Data Convergence Protocol (PDCP) layers), the Core Network (NG Core) 715 providing network services and interfaces, and the RAN Intelligent Controller 702 providing both Near Real-Time (RT) RIC 703 and non-RT RIC 705 hosting xApps and rApps that can interface with various RAN components to optimize, coordinate and control RAN functions.
[0144] Also shown in FIG. 7 are interfaces within a RAN, Open Radio Access Network (O-RAN), and / or Virtual Radio Access Network (V-RAN) deployment. This includes a fronthaul interface or open fronthaul interface (O-FH) 710 that carries data including time and / or frequency domain data for various antennas or spatial streams between the RU 709 and the DU 711. An F1 interface 712 provides an interface between the DU 711 and the CU 713 elements. An NG interface 714 often provides an interface between the CU 713 and the core network 715. Similarly, the near real-time RIC 703 utilizes several interfaces and protocols, including an E2 interface 719, to pass data to RIC xApps between elements including the DU 711, CU 713, and RU 709. The non-real-time RIC 705 utilizes interfaces such as the A1 and O1 interfaces 721 to interoperate with the CU 713 and core 715 elements and the near real-time RIC 703.
[0145] Each element shown in Figure 7 may be deployed at the actual deployment edge of the radio, at edge cloud hosting servers close to the radio edge, at regional clouds that are somewhere near the edge cloud but may be distant, and at national clouds that often have one or more locations within a country or operating area that connects to the regional and edge components. These are described loosely in the context of placement of RAN components, but may vary to some extent depending on deployment considerations. In some deployments, various splits may occur, such as 8, 7.2, 7.2c, 7, 6, and in such cases the functions of RU709, DU711, and CU713 may be merged. Similarly, using interfaces such as the network function application platform interface (nFAPI), the physical layer (PHY) and media access control address (MAC) components may be split along different splits than those shown in Figure 7.
[0146] Here, the set of software routines is deployed in a server or cloud computing engine, which may be coupled in a RIC702 xAPP, in a near-RT RIC703 or a non-RT RIC705, in another cloud service or computing server, or in a centralized unit (CU) core 713, or in another embedded computing device in the RAN. The deployment of the CU713 may be realized in an edge cloud 717 or a regional / national cloud 707, which may perform operations for communication across regions or countries. Here, the channel model 701 may incorporate updates or measurements into the channel model provided by a radio unit (RU), e.g., RU709, a distributed unit (DU), e.g., DU711, or a centralized unit (CU), e.g., CU713. In some cases, the first layer within the DU 711 may provide measurement data, such as channel state information or channel response estimates, along with metadata about the user equipment (UE) over a network protocol, such as Internet Protocol (IP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), Stream Control Transmission Protocol (SCTP), or another protocol that transmits this data to channel modeling software.
[0147] In some cases, the data may first go through a database, or the DU711 / CU713 / RU709 may store the data more locally and be queried or queried by the channel modeling software to obtain this information. In other cases, the UE may provide this information via TCP / IP, UDP, SCTP, or similar network protocols to a network service that stores channel information and / or channel quality information. In some cases, this network service may run in the cloud, RIC, xAPP, etc. The network service may provide simulation and propagation modeling information that may be used, for example, to predict link reliability, throughput, latency, or other suitable parameters, information about interference between devices or sectors, information about coverage areas, or link quality over a network region or future network planning information.
[0148] Using such network services can be useful in industrial deployments, such as private 5G networks, where industrial manufacturing or monitoring devices need to ensure that 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 channel simulations, such as generative channel model simulations described herein, can be used to update L1 signal processing routines, such as channel estimation, equalization, MIMO / single-input multiple-output (SIMO) / multiple-input single-output (MISO) combining 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 or Wi-Fi systems.
[0149] In such cases, cloud resources can provide simulation and training based on generative channel models that provide updates to a range of neural network and / or non-neural network models, which can include weights or other parameters used to drive L1 signal processing routines or scheduling routines or other signal cancellation, reception, or allocation schemes to optimize for wireless and communications 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, where the simulation system can also represent a higher hierarchical order, such as the behavior of multiple UEs, multiple sectors, multiple towers, or multiple regions. Between different levels of the hierarchy, there can be transport or sharing of these models, both up and down within this hierarchy, to leverage local or global experience and / or predictions, models, and other knowledge about radio propagation or other system performance or characteristics.
[0151] Figure 8 illustrates an example of a system 800 for simulating wireless signal propagation. The system of Figure 8 can simulate wireless signal propagation by mirroring the real world using spatial and other inputs. The example system shows a simulation represented as simulation 801, using a generative channel model network running in a computing device 803, such as a cloud server, a GPU device, a cluster of computers, an edge cloud, or other computing platform.
[0152] The computing device 803 uses the generative network to update network weights / parameters and / or simulate wireless propagation based on this model. The cloud or network computing resources simulate a mirror image of the physical world 805 in the digital world, simulating physical shapes, equipment and objective behaviors along with wireless propagation phenomena. As shown, generative channel models, e.g., VAE-based models for channels, can 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 in the physical world 805 can transmit measurements, channel response information or channel speech data, channel quality information, or other measurement-based statistics along with telemetry, location information, or other historical context information to the cloud 807 and corresponding computing device 803. Simulations in a digital cloud wireless channel simulation environment such as simulation 801 of the real world 805 can be used to predict propagation, bandwidth, latency, link quality, or other characteristics for a wireless system by using a set of wireless channel models, in particular generative data-driven channel models such as channel GAN and channel VAE.
[0154] Because propagation in many 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 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 wireless devices, or other actions or events that should be simulated in the digital world for prediction of performance in the physical world, in forming a digital twin world representation.
[0155] In many cases, the location measurements can be used as input to a VAE, such as the VAE of FIG. 3, for example, by including them in a latent space in a latent representation of the channel. The latent space can include enough values to generate some or all possible channel responses in a given environment. Similarly, the simulated latent locations can be used in a generative model to simulate the performance of various wireless links or paths in a hypothetical or real wireless situation in the simulated system.
[0156] 9 is a flow diagram illustrating an example of a process 900 for training a channel approximation system. Process 900 may be performed by one or more electronic systems, such as, for example, device 115 of FIG. 1 or a device communicatively connected to device 115, such as, for example, a server.
[0157] The process 900 includes obtaining (902) one or more values of a first data structure indicative of a frequency response of a communication channel. For example, an operating device, such as the device 115 or a device communicatively connected to the device 115 (e.g., a server), can obtain the channel response or the transmitted data values. In FIG. 4, the device 115 obtains the channel response using the signal 108 and the antenna 113. The channel response 303 is obtained by the channel response engine 403.
[0158] The process 900 includes providing one or more values to a first machine learning model trained to generate parameters with fewer degrees of freedom than the first data structure (904). For example, an operating device, such as the device 115 or a device communicatively connected to the device 115 (e.g., a server), can provide an input channel response 303 to the channel encoder network 301 of FIG. 3, as shown in image 307a. In some cases, the operating device can provide a transmission value, as shown in image 307b. In FIG. 4, the device 115 provides a channel response from the stored channel response 131, such as the input channel response 303, to the encoder network 301.
[0159] The process 900 includes obtaining 906 a first output from a first model that includes one or more parameters. For example, an operating device, such as the device 115 or a device communicatively connected to the device 115 (e.g., a server), can obtain the distribution parameters 407. The distribution parameters 407 can specify a distribution of values that the sampling module 409 samples. The sampling can be randomized within the distribution specified by the distribution parameters 407.
[0160] The process 900 includes generating 908 a second data structure using the one or more parameters. For example, as shown in FIG. 4, the sampling module 409 samples from a distribution specified by the distribution parameters 407. The data values sampled from the distribution specified by the distribution parameters 407 are included in the learned latent space variables 205.
[0161] The process 900 includes providing 910 the second data structure to a second machine learning model trained to generate a synthetic channel response. For example, an operating device, such as the device 115 or a device communicatively connected to the device 115 (e.g., a server), can provide the learned latent space variables 205 to the decoder network 203.
[0162] 10 is a flow diagram 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 of FIG. 1 or a device communicatively connected to device 115, such as a server.
[0163] The process 1000 includes obtaining 1002 the transmitted information. For example, an operating device, such as the device 115 or a device (e.g., a server) communicatively connected to the device 115, can obtain the transmitted information 121 from the signal 108 based on operations performed by the transmitted signal extraction module 119.
[0164] The process 1000 includes providing information to an encoder for encoding the information to be transmitted (1004). For example, an operating device, such as the device 115 or a device (e.g., a server) communicatively connected to the device 115, can provide the transmitted information 121 to the encoder network 123.
[0165] The process 1000 includes providing 1006 the encoded information to one or more network corresponding channel approximation modules. For example, an operating device, such as the device 115 or a device communicatively connected to the device 115 (e.g., a server), can provide the encoded information 129 to the channel approximation module 133.
[0166] The process 1000 includes providing 1008 an output of the one or more networks to a decoder. For example, an operating device, such as device 115 or a device communicatively connected to device 115 (e.g., a server), can provide the received signal approximation 135 to the decoder network 139.
[0167] The process 1000 includes comparing 1010 the decoded output to the transmitted information. For example, the decoder and encoder update engine 143 can compare an approximation 141 of the transmitted information to the transmitted information 121.
[0168] The process 1000 includes comparing the output to the received signal (1012). For example, the channel update engine 137 can compare the received signal approximation 135 to the received signal 117.
[0169] The process 1000 includes updating one or more of the encoder, the decoder, and the channel approximation module based on the comparison (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 can include one or more neural networks. Updating the encoder network 123, the decoder network 139, and the channel approximation module 133 can include adjusting one or more weights or layers of the corresponding neural network.
[0170] 11 illustrates an example of a computing system used for training a neural network and generating a variable communication channel response. The computing system includes a computing device 1100 and a mobile computing device 1150, either or both of which may be used to implement the techniques described herein. For example, one or more components of system 100 may be computing device 1100, mobile computing device 1150, such as device 101, device 115, or a device communicatively connected to device 115, such as 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 telephones, smartphones, mobile embedded wireless systems, wireless diagnostic computing devices, and other similar computing devices. The components illustrated herein, their connections and relationships, and their functions are merely exemplary and not limiting.
[0172] The computing device 1100 includes a processor 1102, a memory 1104, a storage device 1106, a high-speed interface 1108 connecting to the memory 1104 and a number of high-speed expansion ports 1110, and a low-speed interface 1112 connecting to a low-speed expansion port 1114 and the storage device 1106. Each of the processor 1102, the memory 1104, the storage device 1106, the high-speed interface 1108, the high-speed expansion port 1110, and the low-speed interface 1112 are interconnected using various buses and may be mounted on a common motherboard or in other manners as appropriate. The processor 1102 may process instructions for execution within the computing device 1100, including instructions stored in the memory 1104 or including instructions stored on the storage device 1106, to display graphical information for 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 memories, as desired. Additionally, multiple computing devices may be connected, with each device providing a portion of the operations (e.g., a bank of servers, a group of blade servers, or a multi-processor system). In some implementations, the processor 1102 is a single-threaded processor. In some implementations, the processor 1102 is a multi-threaded processor. In some implementations, the 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 units. In some implementations, the memory 1104 is a non-volatile memory unit or units. 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 mass storage for the computing device 1100. In some embodiments, the storage device 1106 can be or include 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 area network or other configuration. The instructions can be stored on an information carrier. The instructions, when executed by one or more processing devices (e.g., the processor 1102), perform one or more methods as described above. The instructions can also be stored by one or more storage devices, such as a computer or machine-readable medium (e.g., the memory 1104, the storage device 1106, or memory on the 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 an allocation of functions is merely an example. In one embodiment, the high-speed interface 1108 is coupled to the memory 1104, a display 1116, and a high-speed expansion port 1110 that accepts various expansion cards (not shown). In an implementation, the low-speed interface 1112 is coupled to the storage device 1106 and a low-speed expansion port 1114. The low-speed expansion port 1114, which may include a variety of communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet), may be coupled to one or more input / output devices, such as a keyboard, a pointing device, a scanner, a networking device such as a switch or a router via a network adapter, etc.
[0175] The computing device 1100 can be realized in a number of different forms, as shown in the figure. For example, it can be implemented multiple times as a standard server 1120 or in a group of such servers. It can also be implemented in 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 such device includes one or more of the computing device 1100 and the mobile computing device 1150, and the entire system may be made up of multiple computing devices in communication with each other.
[0176] The mobile computing device 1150 includes a processor 1152, a memory 1164, an input / output device such as a display 1154, a communication interface 1166, and a transceiver 1168, among other components. The mobile computing device 1150 may also include 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 are interconnected using various buses, and some of these components may be mounted on a common motherboard or in other manners as desired.
[0177] The processor 1152 can execute instructions within the mobile computing device 1150, including instructions stored in the memory 1164. The processor 1152 can be implemented as a chipset including separate and multiple analog and digital processors. The processor 1152 may provide, for example, control of other components of the mobile computing device 1150, such as a user interface, applications executed by the mobile computing device 1150, and coordination of wireless communications by the mobile computing device 1150.
[0178] The processor 1152 can communicate with a user via a control interface 1158 and a display interface 1156 coupled to a display 1154. The display 1154 can be, for example, a Thin-Film-Transistor Liquid Crystal Display (TFT) display or an Organic Light Emitting Diode (OLED) display, or other suitable display technology. The display interface 1156 can 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 a user and translate them for submission to the processor 1152. Additionally, 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 can provide, for example, for wired communication in some embodiments or for wireless communication in other embodiments, and multiple interfaces can be used.
[0179] The memory 1164 stores information within the mobile computing device 1150. The memory 1164 can be implemented as one or more of a computer readable medium or media, a volatile memory unit or unit, or a non-volatile memory unit or unit. 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 Single In Line Memory Module (SIMM) card interface. The expansion memory 1174 may provide additional storage space for the mobile computing device 1150 or may store applications or other information for the mobile computing device 1150. In particular, the expansion memory 1174 may include instructions for performing or supplementing the processes described above, and may also include security information. Thus, 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 secure use of the mobile computing device 1150. Additionally, secure applications may be provided via a SIMM card, along with additional information, such as placing identifying information on the SIMM card in an unhackable manner.
[0180] The memory may include, for example, flash memory and / or NVRAM memory (non-volatile random access memory). In some implementations, the instructions are stored on an information carrier such that, when executed by one or more processing devices (e.g., processor 1152), they perform one or more methods as described above. The instructions may also be stored by one or more storage devices, such as one or more computer- or machine-readable media (e.g., memory 1164, expansion memory 1174, or memory on processor 1152). In some implementations, the instructions may be received 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 in some cases include digital signal processing circuitry. The communication interface 1166 can provide communication under various modes or protocols, such as GSM voice (Global System for Mobile Communications), SMS (Short Message Service), EMS (Enhanced 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, 6G Cellular, etc. Such communication occurs, for example, via a transceiver 1168 using radio frequencies. Short-range communication may also occur, such as using a transceiver (not shown), such as Bluetooth, Wi-Fi, etc. Additionally, a Global Positioning System (GPS) receiver module 1170 can provide additional navigation and location related radio data to the mobile computing device 1150, which may be used as appropriate by applications executing on the mobile computing device 1150.
[0182] The mobile computing device 1150 can also communicate audibly using an audio codec 1160 that can receive voice information from a user and convert it into usable digital information. The audio codec 1160 can also generate audible sounds for the user, such as through a speaker in a handset of the mobile computing device 1150. Such audio can include audio from a voice telephone call, recorded audio (e.g., voice messages, music files, etc.), and audio generated by applications running on the mobile computing device 1150.
[0183] The mobile computing device 1150 may be implemented in a number of different forms, as shown in the figure, For example, it may be implemented as a cellular telephone 1180. It may also be implemented as part of a smartphone 1182, a personal digital assistant, or other similar mobile device.
[0184] Although several implementations have been described, it should be understood that various modifications may be made without departing from the spirit and scope of the present disclosure. For example, various forms of the flows shown above may be used with steps rearranged, added, or deleted.
[0185] All of the operations of the embodiments of the invention and the functions described herein can be implemented in digital electronic circuitry, or computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or one or more combinations thereof. The embodiments of the 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 or to control the operation of a data processing apparatus. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a storage device, an arrangement of matter affecting a machine-readable propagated signal, or one or more combinations thereof. The term "data processing apparatus" encompasses all apparatus, devices, and machines for processing data, including, for example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, the apparatus can include code that creates an execution environment for the computer program, such as code that constitutes a processor firmware, a protocol stack, a database management system, an operating system, or one or more combinations thereof. The propagated signal is an artificially generated signal, such as a machine-generated electrical, optical, or electromagnetic signal generated to encode information for transmission to an appropriate receiving device.
[0186] A computer program (also called a program, software, application, script, 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 a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored as part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in one file dedicated to the program in question, or in several cooperating files (e.g., a file that stores one or more modules, subprograms, or portions of code). A computer program can be deployed to run on one computer, or on several computers that are deployed at one site, or distributed across several sites and interconnected by a communication network.
[0187] The processes and logic flows described herein may be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows may also be performed by special purpose logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit), and may also be implemented as an apparatus.
[0188] Processors suitable for executing computer programs include, by way of example, both general purpose and special purpose microprocessors, as well as any one or more processors of any kind of digital computer. Generally, a processor receives instructions and data from a read-only memory or a random access memory, or both. The 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 operatively coupled to receive data from or transfer data to one or more mass storage devices, for storing data, for example, on magnetic, magneto-optical, or optical disks, or both. However, a computer need not have such devices. Furthermore, a computer can be incorporated into another device, such as a tablet computer, a mobile phone, a personal digital assistant, a mobile audio player, a GPS (Global Positioning System) receiver, to name a few. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including, by way of example, semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices, magnetic disks, e.g., internal hard disks or removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks. The processor and memory can be supplemented by, or incorporated in, special purpose logic circuitry.
[0189] To provide for interaction with a user, embodiments of the 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, for example, a mouse or trackball, by which the user can provide input to the computer. Other types of devices can also be used to provide for interaction with a user, for example, feedback provided to the user can be any form of sensory feedback, for example, visual feedback, auditory feedback, or tactile feedback, and input from the user can be received in any form, including acoustic, speech, or tactile input.
[0190] An embodiment of the present invention may be implemented in a computing system that includes as a back-end component, e.g., a data server, or includes a middleware component, e.g., an application server, or includes a front-end component, e.g., a client computer having a graphical user interface or a web browser, or includes a client computer through which a user can interact with an embodiment of the present invention, or includes any combination of one or more such back-end, middleware, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication, e.g., a communications network. Examples of communications networks include local area networks ("LANs") and wide area networks ("WANs"), e.g., the Internet.
[0191] A computing system may include clients and servers. Clients and servers are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and the client / server relationship.
[0192] Although the present specification contains many details, these should not be construed as limitations on the scope of the invention or what can be claimed, but rather as descriptions of features specific to certain embodiments of the invention. Certain features described in the present specification 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 in multiple embodiments separately or in any suitable subcombination. Furthermore, although features may be described above as functioning in a particular combination and initially claimed as such, one or more features from the claimed combination may in some cases be separated from the combination, and the claimed combination may be directed to a subcombination or a variation of the subcombination.
[0193] Similarly, although operations are depicted in the figures in a particular order, this should not be construed as requiring that such operations be performed in the particular order or sequence shown, or that all of the illustrated operations 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 above-described embodiments should not be understood as requiring such separation in all embodiments, and it should be understood that the program components and systems described may generally be integrated together in a single software product or packaged in multiple software products.
[0194] Although specific embodiments of the present invention have been described, other embodiments are within the scope of the following claims. For example, the steps recited in the claims can be performed in a different order and still achieve desirable results.
Claims
1. 1. A method comprising: obtaining one or more values indicative of a channel response of a communication channel, the one or more values indicative of the channel response being represented by a first data structure with N degrees of freedom; providing the one or more values to a first machine learning model trained to generate parameters for a second data structure represented with 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 the second data structure using the one or more parameters; and providing the second data structure to a second machine learning model trained to generate a synthetic channel response.
2. 2. The method of claim 1, wherein generating the second data structure using the one or more parameters comprises: determining a probability distribution using the one or more parameters; and and using the probability distribution to obtain values for the second data structure.
3. 3. The method of claim 2, comparing the probability distribution to a training distribution for training the first machine learning model; and updating the first machine learning model based on a comparison of the probability distribution and the training distribution.
4. 4. The method of claim 3, wherein the training distribution is one of a Gaussian distribution, a tapped delay line (TDL), a clustered delay line (CDL), a Rician distribution, a Rayleigh distribution, or a result from a simulated ray tracing model or other spatial simulation model.
5. 2. The method of claim 1 , comparing the composite channel response to one or more obtained channel responses; and adjusting parameters of the second machine learning model based on a comparison of the synthetic channel response and the one or more obtained channel responses.
6. 2. The method of claim 1 , Transmitting first information over the communication channel; obtaining, as an output of the communication channel, second information as a representation of the first information modified by transmission over the communication channel; and generating the one or more values indicative of the channel response based on a comparison of the first information and the second information.
7. 7. The method of claim 6, wherein the communications channel includes at least one of an additive white Gaussian noise (AWGN) or Rayleigh fading channel model, an International Telecommunications Union (ITU) or Third Generation Partnership Project (3GPP) fading channel model, an emulated wireless emissions, propagation model, ray tracing in a simulated geometry or environment to generate channel effects, a time domain delay line (TDL), a code domain delay line (CDL), a machine learning network trained to make 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 a channel measurement in a wireless system.
8. 2. The method of claim 1 , generating the received signal using the composite channel response and information corresponding to the received signal.
9. 9. The method of claim 8, wherein generating the received signal comprises: generating an output corresponding to a combination of the composite channel response and the information as the received signal.
10. 10. The method of claim 9, wherein the combination comprises a result of a multiplication between data represented by the composite channel response and data represented by the information.
11. 10. The method of claim 9, wherein the combination comprises a result of a convolution between data represented by the composite channel response and data represented by the information.
12. 1. A method comprising: obtaining one or more values from a distribution of values corresponding to a communication channel response; providing the one or more values to a neural network trained to generate simulated channel responses 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 indicative of a simulated channel response corresponding to at least one communication channel of the one or more RF communication channels.
13. 13. The method of claim 12, wherein the distribution of values is generated by an encoder neural network.
14. 14. The method of claim 13, training the encoder neural network with one or more real-world channel responses.
15. 14. The method of claim 13, training the encoder neural network using data transmitted over a communication channel and data received after being transmitted over the communication channel as one or more transmit and receive data pairs.
16. 13. The method of claim 12, further comprising: providing a training output using the simulated channel response, the training output being 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.
17. 17. The method of claim 16, wherein the training output comprises an approximation of a received signal.
18. 13. The method of claim 12, wherein the distribution of values is generated using data captured from a radio unit (RU) or a distributed unit (DU).
19. A computer program comprising one or more instructions executable by a computer system to perform an operation, obtaining one or more values from a distribution of values corresponding to a communication channel response; providing the one or more values to a neural network trained to generate simulated channel responses 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 indicative of a simulated channel response corresponding to at least one communication channel of the one or more RF communication channels.
20. 20. The computer program of claim 19, wherein the distribution of values is generated by an encoder neural network.
21. 21. The computer program of claim 20, wherein the operation comprises: training the encoder neural network with one or more real-world channel responses.
22. 21. The computer program of claim 20, wherein the operation comprises: training the encoder neural network using data transmitted over a communication channel and data received after being transmitted over the communication channel as one or more transmit and receive data pairs.
23. 20. The computer program of claim 19, wherein the operation comprises: providing a training output using the simulated channel response, the training output being 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.
24. 24. The computer program of claim 23, wherein the training output comprises an approximation of a received signal.
25. 20. The computer program of claim 19, wherein the distribution of values is generated using data captured from a radio unit (RU) or a distributed unit (DU).
26. 1. A system comprising: one or more processors; and a machine-readable medium interactively coupled to the one or more processors and storing one or more instructions that, when executed by the one or more processors, perform operations, the operations including: obtaining one or more values from a distribution of values corresponding to a communication channel response; providing the one or more values to a neural network trained to generate simulated channel responses 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 indicative of a simulated channel response corresponding to at least one communication channel of the one or more RF communication channels.
27. 27. The system of claim 26, wherein the distribution of values is generated by an encoder neural network.
28. 28. The system of claim 27, wherein the action comprises: training the encoder neural network with one or more real-world channel responses.
29. 28. The system of claim 27, wherein the action comprises: training the encoder neural network using data transmitted over a communication channel and data received after being transmitted over the communication channel as one or more transmit and receive data pairs.
30. 27. The system of claim 26, wherein the action comprises: providing a training output using the simulated channel response, the training output being 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.