Patent Description:
Embodiments of the invention relate to the field of communication network design; and more specifically, to determining an indoor radio transmitter distribution.

Telecommunication companies are expanding the coverage of their cellular networks to indoor environments. Yet a cellular network design for indoor users can be more challenging than outdoor because many indoor obstacles may block or distort radio signal propagations and indoor radio transmitters used in an indoor cellular network are typically required to operate at far lesser output power than that of outdoor macro or small cell radio transmitters. While outdoor cellular network designs usually require one radio base station to cover an area of hundreds of meters in radius, indoor designs may require multiple radio transmitters operating at far lower output power to cover all areas in a building or a specific floor within the building.

Employing a concept called ray tracing, industry standard indoor design tools often use sophisticated and resource/time intensive simulations to determine radio transmitter placement indoors and estimate indoor radio propagation. To determine the optimal placement of radio transmitters within the building or a specific floor, the indoor design simulation or process needs to consider the frequency at which the radio transmitter is operating, floor layout, floor density, material of walls, columns, and fixtures. For example, fewer radio transmitters are required to cover a whole floor when there are no walls or if the density of objects on the floor is sparse, while the presence of many walls or partitions or a floor with a high concentration of objects may require a higher number of radio transmitters to cover all required areas on a floor. The design of an indoor cellular network involves manually marking all the wall types and prohibited areas on a floor prior to running simulations, and this process can take days or longer. Relevant documents of the prior art are <CIT>, <CIT>, <CIT>, <CIT> and <CIT>.

Embodiments of the disclosed techniques disclose methods for planning an indoor radio network for a building. In one embodiment, a method in an electronic device according to claim <NUM> is provided.

Embodiments of the disclosed techniques disclose electronic devices for planning an indoor radio network for a building. In one embodiment, an electronic device according to claim <NUM> is provided.

Embodiments of the disclosed techniques disclose non-transitory computer-readable storage media for planning an indoor radio network for a building. In one embodiment, a non-transitory computer-readable storage medium according to claim <NUM> is provided.

Embodiments of the disclosed techniques reduce lead time to determine an indoor radio transmitter distribution (e.g., the number of indoor radio transmitters, their placements and associated bill of materials (BOMs) for a given venue or building), thus they enable a network designer to produce BoMs and preliminary quotes to customers significantly faster. The embodiments also enable the network designer to significantly scale up the design and deployment of indoor radio transmitters when designing an indoor cellular network.

The following description describes methods and systems for determining an indoor radio transmitter distribution. The indoor radio transmitters are also referred to as indoor radio units (IRUs). In the following description, numerous specific details such as logic implementations, resource partitioning/sharing/duplication implementations, types and interrelationships of system components, and logic partitioning/integration choices are set forth in order to provide a more thorough understanding of the present invention. It will be appreciated, however, by one skilled in the art that the invention may be practiced without such specific details. In other instances, control structures, gate level circuits, and full software instruction sequences have not been shown in detail in order not to obscure the invention. Those of ordinary skill in the art, with the included descriptions, will be able to implement appropriate functionality without undue experimentation.

Currently when building an indoor cellular network (also referred to as an indoor radio network), indoor radio design engineers use complex simulation tools to predict the radio propagation pattern from new radio transmitter installations in a given floor plan. As the simulation typically uses a complex ray tracing algorithm, the current process of finding the optimal number and placement of radio dots (the locations to place indoor radio transmitters) in a building could take a long time (e.g., several days). The duration depends on the complexity of the floor plans, the layout of the venue or building structure, the number of frequency bands required to be deployed, and other factors.

One may use existing industry standard indoor design tools that process a project with one venue or building, each floor at a time. That involves a cumbersome process of determining wall types, building material, and macro cell coverage indoors. It also comes with the added cost of third-party indoor radio design software procurement and multiple engineering resources operating the software. This long lead time impacts multiple stages of the indoor radio solution sales process. For example, the process results in very coarse estimation of the number of radio transmitters required in the preliminary design; and the quoting process results in quotes with large deviation from the final quote. Additionally, the process extends the time taken to provide a final design, bill of materials (BoM), and final quote to the customer, and that results in project delays. Furthermore, the process does not scale well and is not conducive to perform indoor design on a large number of buildings at once.

To overcome the limitations of the simulation-based approach, the embodiments use machine-learning (e.g., a supervised or unsupervised neural network) based methods to predict the desirable number, placement, and radio propagation of radio transmitters for a given floor plan.

For example, some embodiments partition a given floor plan into optimal sections and then employ a layered pipeline (also referred to as a network), to generate synthetic images of radio propagation for a given frequency (or frequency band) and radio transmitter placement using a generative network (also referred to as a generator) for each section, while ensuring accuracy of the generated image through a self-correcting feedback loop (e.g., using a so-called discriminator network or simply discriminator). The generative network and discriminator network are used in a generative adversarial network (GAN) implementation to arrive at a desirable indoor radio transmitter distribution.

In some embodiments, a discriminator network could be trained with radio propagation data collected from previously implemented indoor radio propagation designs as well as from radio measurements collected from current indoor field deployments. The training uses machine-learning (using neural networks such as, according to the invention, a GAN). The discriminator network then uses the data presented to it to learn statistically significant phenomena related to placement of radio transmitters operating at a given frequency and the placement's relationship to factors such as radio propagation, operating power, floor shape, wall layout, wall material, furniture density, orientation, and connectivity between rooms on the floor. The embodiments stitch back the radio propagation images created for each section on a floor to produce the radio propagation image and signal density blobs for a given floor plan, the signal density blobs are then used to determine the number and placement of the radio transmitters on the given floor.

Some embodiments employ user-created or machine-generated prohibition and interference zones to avoid or adjust the placement of radio transmitters at specific locations on the floor. Prohibition zones are used to completely exclude a radio transmitter to be placed in a specific area or section of the floor while interference zones are used to adjust the placement of radio transmitters based on radio interference measured from radio transmitters that are outside the indoor location or venue or building. Interference zones can be machine generated images using actual measurements from external radio transmitters ("external" in the sense that these radio transmitters are not a part of the indoor cellular network to be installed) on a given floor or could be synthetically generated images based on user designation of radio propagation from external radio transmitters.

Some embodiments reduce lead time to produce preliminary estimates of the number of indoor radio transmitters, their placements, and associated bill of materials (BoMs) for a given venue or building from several weeks down to several minutes irrespective of the complexity of the venue or building and thereby enabling a network designer to produce BoMs and preliminary quotes to customers significantly faster. The embodiments will also transform current indoor radio design, survey, and deployment processes and will also enable the network designer to significantly scale up the design and deployment of indoor radio transmitters for its customers.

The system trains a conditional Generative Adversarial Network (cGAN) to predict the desirable radio transmitter placement using a large number of data sets, each including (<NUM>) a floor plan and (<NUM>) its corresponding radio propagation map (which is presumably optimal as determined by radio design engineers). For example, a pixel-to-pixel network may be trained using pairs of floor plans and their radio propagation maps based on either optimal radio transmitter placement by human designers using industry standard indoor radio planning tools or from radio measurements collected from already deployed radio transmitters for various floor plans.

The floor plan as an input may be provided as a color image, which is desirable in some embodiments, although a monochrome or gray version of it also works. In some embodiments, the floor plan may be extracted from one format and stored in another (e.g., a PDF file is converted in PNG format). <FIG> shows an exemplary raw floor plan.

For the given floor plan, one or more polygons may be drawn to determine the one or more regions of interest (ROIs) of the floor plan because many floor plans come with unnecessary padding and auxiliary texts. By setting the ROIs, the final radio transmitter distribution design can be refined.

The size of the ROIs helps the determination of the number of sections into which the floor plan is split. Such split helps limit the size and resolution of the floor plan to be used for training the machine learning model as the model could be limited by the dimension of its input due to computing hardware limitations. In some embodiments, the maximum input size and resolution of the input can be limited to <NUM> × <NUM> pixels. If one rescales a big floor plan down to a single section of <NUM> × <NUM> regardless of its original dimension, most internal walls in the floor plan will be lost and thereby degrade the quality of the predicted radio propagation map. Therefore, the optimal size and dimension of each section is determined by the machine learning model and training data set in some embodiments. For example, <NUM>,<NUM> square feet may be set as the size of each section empirically. <FIG> shows an exemplary padded raw floor plan. The padded raw floor plan includes the regions that are masked out (the outer region indicated by reference <NUM>). The padded raw floor plan is fed into a conditional Generative Adversarial Network (cGAN). The cGAN then provides a radio propagation map indicating a radio transmitter distribution.

The cGAN produced radio propagation map may be a colored heatmap. <FIG> shows an exemplary heatmap indicating radio transmitter distribution. The radio transmitter distribution is the output of a cGAN, and it indicates the placement of <NUM> radio dots as shown at reference <NUM>, each being a location to install an indoor radio transmitter. The heatmap may be a colored or grayscale one, and the color/grayscale level represents the received radio signal power at different locations. The deeper in red (or darker in grayscale level) represents stronger received signal power.

The heatmap in <FIG>, when it's colored, may be converted to a grayscale one. <FIG> shows an exemplary grayscale heatmap In the grayscale heatmap, the darker areas are the ones with stronger received signal power. The colored and/or grayscale heatmap, along with its floor plan, may then be used to train the cGAN as a historical data set.

A machine-learning model is used to translate a floor plan to a radio propagation map (e.g., a heatmap), and <FIG>show an exemplary machine learning model for producing a heatmap. The machine-learning model is according to the invention a conditional Generative Adversarial Network (cGAN) discussed herein above. <FIG> shows a generator of the neural network and <FIG> shows a discriminator of the neural network. Image X (at references <NUM> and <NUM>) is the input image, which includes a floor plan, and image Y (at references <NUM> and <NUM>) is the corresponding heatmap used in training the machine-learning model. The numbers accompanying the blocks represent the image/filter dimension and the number of channels of the blocks. For example, at node <NUM>, the numbers <NUM> and <NUM> form the dimension of the node (width and height respectively), and the number of channels is <NUM>. Each block in <FIG> has the same definition, i.e., width × height × channels.

An objective of the machine-learning model is to translate a floor plan image to a heatmap image, and it is closely related to the colorization problem. The colorization of a given sketch of floor plan not only needs to preserve its border shape, but also needs to learn from its internal structure to generate the correct signal heatmap. The structure of a floor plan highly correlates with its heatmap, e.g., a concrete wall has much higher signal attenuation than a dry wall. Therefore, one may expect the signal strength to decay quickly around a concrete wall. To solve the image translation problem, a traditional GAN may not be sufficient to learn the mapping since it generates images from a random noise. Yet a cGAN learns the mapping from an input image and random noise to the corresponding output image. Thus, one embodiment adopts cGAN but drops the random noise as the neural network architecture, since the focus is on generating one heatmap with optimal radio dot placement.

In order to preserve most of the floor plan structure, one embodiment adopts the U-Net architecture as the generator. Each convolutional layer extracts features from the previous layer and passes it to the next layer. The shallow layers are responsible for extracting low-level features from a given image such as different type of lines. The middle layers are responsible for extracting mid-level features such as shape and texture. The deep layers are responsible for extracting high-level features such as object, composition of different shapes, or even more complicated signals. In <FIG>, the layers go from shallow to deep from left to right.

U-Net is a special encoder-decoder network such that it concatenates each layer in the encoder to the symmetric layer in the decoder. The encoder tries to compress different levels of information as tight as possible, and the decoder tries to decode and transform them to another image with the help of cascading with the corresponding encoder layer. This bypass scheme will minimize the sketch structure loss through the entire feature extraction and reconstruction process. For the discriminator, one embodiment selects an encoder only network in the architecture. The encoder here serves the same purpose of extracting low-level to high-level features. But unlike the generator, the goal for the discriminator is to classify between a real heatmap and a fake heatmap from the generator. Therefore, the deep layer features are sufficient to achieve this task. In one embodiment, the PatchGAN architecture is used to output a matrix of probabilities for the final layer in the discriminator to show whether each section of the image can be classified as the real image or not.

Through a neural network such as a cGAN, as required by the invention, a radio propagation map (which may be represented by a heatmap), indicating the signal propagation distribution for each section is produced, and a clustering algorithm is applied to count blobs and get their respective centers. Each blob is a region within the radio propagation map (e.g., an image) that includes signal points that are strong enough (e.g., the computed signal power is over a power threshold) and close to each other (e.g., within a physical distance threshold), and the signal points within the region but having weaker signals (e.g., the computed signal power is below a power threshold) are excluded. The respective centers of the blobs are the location at which radio transmitters should be placed.

The clustering algorithm to determine the radio transmitter centers should be able to count the number of clusters automatically. Moreover, it should be related to the density of points in the spatial domain and be noise-tolerant, due to the noisy prediction nature from cGAN. Thus, some embodiments adopt density-based spatial clustering of applications with noise (DBSCAN) algorithm as the clustering method. DBSCAN satisfies the above properties, and two-dimensional spatial data (pixel locations) is advantageous for using Euclidean distance to compute distance between points.

The DBSCAN algorithm is a density-based clustering non-parametric algorithm: given a set of points in some space, it groups together points that are closely packed together (points with many nearby neighbors), marking as outliers points that lie alone in low-density regions (whose nearest neighbors are too far away). The applied DBSCAN algorithm can be an extension/variation of the DBSCAN such as generalized DBSCAN (GBDSCAN) (generalized to arbitrary neighborhood and dense predicates) or Hierarchical Density-Based Spatial Clustering of Applications with Noise (HDBSCAN).

<FIG> shows an exemplary density-based spatial clustering of applications with noise (DBSCAN) algorithm. Two parameters are defined, a radius size and the number of minimum samples within the radius of a cluster core point. The algorithm starts at a random point, and it will count how many other points are within its radius. If the number of points is greater than or equal to the predefined number of minimum samples, it is tagged as a core point (e.g., points <NUM>). The algorithm will continue this process until no other data points are nearby, and then it will look to form a second cluster.

The point <NUM> in <FIG> is a noisy point that is not included in any cluster. The points <NUM> are border points such that they do not have minimum samples within their radius, but they are still being considered as part of a cluster.

One drawback for applying a DBSCAN algorithm is that at least two hyperparameters need to be chosen, including the distance threshold (i.e., the radius) and the minimum samples within a radius to define a core point. To search for the best hyperparameters automatically, a HDBSCAN may perform DBSCAN over various radii and integrate it with the best stability. HDBSCAN requires little or no hyperparameters tuning, and the only hyperparameter that needs to be chosen is minimum cluster size, which is easier to select. Through a DBSCAN algorithm (DBSCAN or a variation thereof), the radio transmitter centers (the radio dots) may be selected.

The machine-learning model discussed herein requires training through image data sets, and some embodiments use genuine loss functions with aggressive image augmentation to produce a large number of image data sets.

One embodiment uses a gradient similarity (GSIM) or a multi-scale GSIM (MS-GSIM) loss function. A ground truth heatmap image, which may be generated from a human designed radio transmitter distribution map, exhibits a unique characteristic, the gradient pattern. The uniqueness of this feature is that it propagates the signal strength from the center of a radio dot, to its surrounding pixels smoothly. To compare the gradient pattern between two images, some embodiments use a new metric, the gradient similarity (GSIM) index, and then extend it to its multiscale version. The GSIM index can be derived in three steps, considering a pixel location (i,j) for image Y and G(X) (see <FIG>and related discussion above), where G(X) is the output of a generator of a machine-learning model: (<NUM>) a two dimensional Sobel filter may be applied to obtain the gradient on (i, j), and they are represented as dy(i, j) and dg(i, j), respectively; (<NUM>) then their cosine similarity (CS), denoted as CS(dy(i, j), dg(i, j)) may be calculated; and (<NUM>) the GSIM index is then obtained through averaging out the cosine similarity on all pixels in Y and G(X). Note that the GSIM index may be obtained through another arithmetic determination (e.g., median, mode, maximum, or minimum from the cosine similarity on all the pixels) in alternative embodiments.

The GSIM index may be sensitive to image scale. On some large-scale images, although a good gradient pattern from a predicted image G(X) can visually be seen, GSIM provides a low score. To address this scaling issue, some embodiments use a multi-scale version of GSIM, MS-GSIM index. In these embodiments, GSIM is applied on different image scales, and then the resulting scores are merged by a meaningful average function.

<FIG> shows the operations of obtaining multi-scale gradient similarity (MS-GSIM) loss. First, an average pooling function avg_pool(Y, k,s, p) is defined for scaling purposes, given its input image Y, kernel size k, stride s, and padding method p. The output of different scales of images (various image resolutions such as <NUM> by <NUM>, <NUM> by <NUM>, <NUM> by <NUM>. etc.) can be represented recursively as ai+<NUM> = avg_pool(ai, k,s, p) and bi+<NUM> = avg_pool(bi, k,s, p) with a<NUM> = Y and b<NUM> = G(X), for i in {<NUM>,<NUM>,. , N}, where N is number of scale. Then an average function f is defined to combine the GSIM scores from all scales. The proposed MS-GSIM index can be calculated with f (GSIM(a<NUM>, b<NUM>),. , GSIM(aN, bN)). The most intuitive function for f is the arithmetic mean. But after some experiments, it was found that using harmonic mean provides better results as it shifts the mean toward the lower GSIM loss. In this case, there will be smaller loss value if some of the scales result in good GSIM loss. The proposed MS-GSIM loss function can be represented as the following formula: <MAT>.

In Formula (<NUM>), each ai is a different scale image of Y, and each bi is a different scale image of G(X), and the loss function may be implemented as <MAT>, so the loss function considers the difference between different scales of Y and G(X) and takes the average of them in one embodiment. The MS-GSIM loss is used to make the generated heatmap as similar to the true heatmap as possible, by giving more penalty to difference from the view of gradient comparison rather than pixel-wise comparison in the early stage of training. Note that in an alternative embodiment, another average function f may be defined to combine the GSIM score from all scales, e.g., a function to find median or mode of all the scores.

<FIG> is a block diagram showing various modules for estimating an indoor radio transmitter distribution <NUM>. A floor plan <NUM> provides information about a floor layout (including radio transmission obstacles) in a format (e.g., PDF, JPG, PNG, or any equivalent digital format).

Pre-processor <NUM> registers region(s) of interest, prohibition mask(s), interference mask(s) and converting/partitioning the floor plan <NUM> accordingly to one or more sections that is fit to a machine learning model in predictor <NUM>.

Predictor <NUM> predicts/determines radio propagation map(s) for given section(s) by using a machine learning model <NUM> (cGAN that is able to perform pixel-to-pixel prediction). The machine learning model has been trained using previous pairs of floor plans and their corresponding radio dot designs before being used. In some embodiments, the machine learning model <NUM> is integrated within the predictor <NUM>.

Blob determinator <NUM> counts blobs in the radio propagation map(s) from the predictor <NUM> and finding the centers of blobs as the positions to install radio transmitters in the given floor plan. It can be implemented by an algorithm such as DBSCAN or HDBSCAN.

Radio transmitter distribution (<NUM>) is the final output from the blob determinator <NUM>, which includes the information about radio transmitter placement onto the floor plan.

The pre-processor <NUM>, predictor <NUM>, and blob determinator <NUM> may be modules within an indoor radio transmitter distribution determinator (IRTDD) <NUM>. The IRTDD <NUM> may be implemented in an electronic device such as <NUM> discussed herein below.

<FIG> is a first flow chart of determining an indoor radio transmitter distribution. The operations may be performed by an electronic device such as <NUM> discussed herein below. At reference <NUM>, one or more regions of interest are set from an image of a floor plan. In some embodiments, the regions of interest are set by identifying the prohibition zones and/or the interference zones on the floor plan image. Then the size of the regions of interest is calculated at reference <NUM>. At reference <NUM>, it is determined whether the size of the regions of interest is too big for the electronic device. The determination may be based on the computation resources and network bandwidth of the electronic device, and/or machine-learning model and its associated training data sets. For example, if the machine-learning model is trained using data sets with a small size floor plan (and their corresponding radio propagation maps), the machine-learning model may not be suitable to process a larger size floor plan. The electronic device may have a threshold of dimension of the floor plan to be processed, and the size of regions of interest is determined to be too big when the size crosses the threshold.

When it is determined that the size is not too big, the flow goes to reference <NUM>, and the whole floor plan is selected as one section. The regions of interest are marked on the floor plan image. At reference <NUM>, a radio propagation map for the one section is determined. When the determination uses a machine learning model, the determination may also be referred to as a prediction. The machine learning model uses a cGAN as discussed herein above.

At reference <NUM>, the radio propagation map is postprocessed. In some embodiments, the postprocess includes applying the regions of interest. For example, the radio propagation map may be adjusted based on the one or more interference zones that are impacted by radio transmitters outside of the indoor radio network to be implemented. Expected radio signal quality may be enhanced by placing more radio transmitters to the interference zones by suppressing the interference from the outside.

At reference <NUM>, the blobs are counted, and the center of each blob is identified from the map. Each center of the blob is a location that an indoor radio transmitter will be installed on the floor that maps to the floor plan image.

When it is determined that the size of the image is too big at reference <NUM>, the flow goes to reference <NUM>, where the floor plan is split into a plurality of sections. The floor plan image is then partitioned into the corresponding number of image sections. For each section, a radio propagation map is determined/predicted at reference <NUM>. At reference <NUM>, these radio propagation maps for different sections are then stitched/merged together, and the flow goes to reference <NUM>, where the postprocessing is performed as discussed above.

<FIG> is a second flow chart of determining an indoor radio transmitter distribution. The operations are performed by an electronic device such as <NUM> discussed herein below. At reference <NUM>, an image of a floor plan is preprocessed. For example, the preprocess may identify (<NUM>) one or more regions of interest that the indoor transmitters are to be placed, (<NUM>) prohibition zones, and/or (<NUM>) interference zones. The areas outside of the regions of interest may be masked out using masks as shown in <FIG> (the areas shown at reference <NUM>). The regions of interest may exclude the one or more prohibition zones that no radio transmitters are allowed to be placed in some embodiments. In some embodiments, the regions of interest may exclude the one or more interference zones that are impacted by radio transmitters outside of the indoor cellular network.

In some embodiments, preprocessing the image of the floor plan comprises partitioning the image into a set of image sections.

At reference <NUM>, a radio propagation map is generated for the floor plan using the preprocessed image. A conditional Generative Adversarial Network (cGAN) is used to generate the radio propagation map as discussed herein above. The cGAN is trained using a plurality of data sets, each data set including one floor plan image and one radio propagation map produced for the one floor plan image. The radio propagation maps produced for the floor plan images in the data sets may be produced by human designers using industry standard indoor radio planning tools or from radio measurements collected from already deployed radio transmitters for various floor plans. Additionally, the radio propagation maps may be ones generated by the cGAN from other earlier floor plan images.

In some embodiments, the radio propagation map is generated through stitching sectional radio propagation patterns, each for an image section within the set of image sections.

At reference <NUM>, an indoor radio transmitter distribution for the floor plan is determined using the radio propagation map. The indoor radio transmitter distribution includes a number of radio transmitters to be implemented in some embodiments. The indoor radio transmitter distribution includes locations of indoor radio transmitters on the floor plan.

Note that by preprocessing the floor plan image and identifying the one or more regions of interests, the machine learning model may be used more efficiently and produce more accurate radio propagation maps since the areas outside of the regions of interests tend to introduce noises in the machine learning.

<FIG> shows snapshots of the process to determine an indoor radio transmitter distribution. Reference <NUM> shows a raw floor plan image provided to determine the indoor radio transmitter distribution on the floor plan. The floor plan image is partitioned into multiple sections as shown in rectangles. Reference <NUM> shows a section of the floor plan image that is a region of interest and that fits to the size that the electronic device can implement an embodiment and determine the indoor radio transmitter distribution.

Reference <NUM> shows the section of the floor plan image that is augmented by masking out the prohibition zones (the outer areas shown by reference <NUM>). Reference <NUM> is the determined/predicted radio propagation map for the section of the floor plan image. Reference <NUM> shows the centers of blobs as solid dots (e.g., the ones shown by reference <NUM> at the top left of the image), which is the result of determining the indoor radio transmitter distribution, and the centers are the location of the indoor radio transmitters to be placed on the floor mapping to the floor plan image. Reference <NUM> shows the total number of dots, each for an indoor radio transmitter to be placed on the floor.

Using embodiments like this one, one may reduce lead time to produce preliminary estimates of the number of indoor radio transmitters, their placements, and associated bill of materials (BoMs) for a given venue or building. These embodiments may be used for different power transmission levels of the indoor radio transmitters, and different indoor radio transmitters may be placed at different locations at a given floor plan, based on the produced radio signal propagation map. The quick determination/estimation of an indoor radio transmitter distribution for a floor plan using a produced radio propagation map makes the network planning for an indoor radio network much more efficient and reliable, and enables the network designer to significantly scale up the design and deployment of indoor radio transmitters for its customers. The network engineers may implement an indoor radio network based on the indoor radio transmitter distribution. The embodiments thus are advantageous over the complex simulation tools.

<FIG> illustrates an electronic device. The electronic device <NUM> may be implemented using custom application-specific integrated-circuits (ASICs) as processors and a special-purpose operating system (OS), or common off-the-shelf (COTS) processors and a standard OS.

The electronic device <NUM> includes hardware <NUM> comprising a set of one or more processors <NUM> (which are typically COTS processors or processor cores or ASICs) and physical NIs <NUM>, as well as non-transitory machine-readable storage media <NUM> having stored therein software <NUM>. During operation, the one or more processors <NUM> may execute the software <NUM> to instantiate one or more sets of one or more applications 964A-R. While one embodiment does not implement virtualization, alternative embodiments may use different forms of virtualization. For example, in one such alternative embodiment the virtualization layer <NUM> represents the kernel of an operating system (or a shim executing on a base operating system) that allows for the creation of multiple instances 962A-R called software containers that may each be used to execute one (or more) of the sets of applications 964A-R. The multiple software containers (also called virtualization engines, virtual private servers, or jails) are user spaces (typically a virtual memory space) that are separate from each other and separate from the kernel space in which the operating system is run. The set of applications running in a given user space, unless explicitly allowed, cannot access the memory of the other processes. In another such alternative embodiment the virtualization layer <NUM> represents a hypervisor (sometimes referred to as a virtual machine monitor (VMM)) or a hypervisor executing on top of a host operating system, and each of the sets of applications 964A-R run on top of a guest operating system within an instance 962A-R called a virtual machine (which may in some cases be considered a tightly isolated form of software container) that run on top of the hypervisor - the guest operating system and application may not know that they are running on a virtual machine as opposed to running on a "bare metal" host electronic device, or through para-virtualization the operating system and/or application may be aware of the presence of virtualization for optimization purposes. In yet other alternative embodiments, one, some, or all of the applications are implemented as unikernel(s), which can be generated by compiling directly with an application only a limited set of libraries (e.g., from a library operating system (LibOS) including drivers/libraries of OS services) that provide the particular OS services needed by the application. As a unikernel can be implemented to run directly on hardware <NUM>, directly on a hypervisor (in which case the unikernel is sometimes described as running within a LibOS virtual machine), or in a software container, embodiments can be implemented fully with unikernels running directly on a hypervisor represented by virtualization layer <NUM>, unikernels running within software containers represented by instances 962A-R, or as a combination of unikernels and the above-described techniques (e.g., unikernels and virtual machines both run directly on a hypervisor, unikernels and sets of applications that are run in different software containers).

The software <NUM> contains the indoor radio transmitter distribution determinator (IRTDD) <NUM>. The IRTDD <NUM> may perform operations in the one or more of exemplary methods described with reference to earlier figures. The instantiation of the one or more sets of one or more applications 964A-R, as well as virtualization if implemented, are collectively referred to as software instance(s) <NUM>. Each set of applications 964A-R, corresponding virtualization construct (e.g., instance 962A-R) if implemented, and that part of the hardware <NUM> that executes them (be it hardware dedicated to that execution and/or time slices of hardware temporally shared), forms a separate virtual electronic device 960A-R.

A network interface (NI) may be physical or virtual. In the context of IP, an interface address is an IP address assigned to a NI, be it a physical NI or virtual NI. A virtual NI may be associated with a physical NI, with another virtual interface, or stand on its own (e.g., a loopback interface, a point-to-point protocol interface). A NI (physical or virtual) may be numbered (a NI with an IP address) or unnumbered (a NI without an IP address). The physical network interface <NUM> may include one or more antenna of the electronic device <NUM>. An antenna port may or may not correspond to a physical antenna.

The electronic device <NUM> may be implemented in wireless networks discussed herein below as a network node or a separate control node (e.g., host computer <NUM>).

An electronic device stores and transmits (internally and/or with other electronic devices over a network) code (which is composed of software instructions and which is sometimes referred to as computer program code or a computer program) and/or data using machine-readable media (also called computer-readable media), such as machine-readable storage media (e.g., magnetic disks, optical disks, solid state drives, read only memory (ROM), flash memory devices, phase change memory) and machine-readable transmission media (also called a carrier) (e.g., electrical, optical, radio, acoustical, or other forms of propagated signals - such as carrier waves, infrared signals). Thus, an electronic device (e.g., a computer) includes hardware and software, such as a set of one or more processors (e.g., of which a processor is a microprocessor, controller, microcontroller, central processing unit, digital signal processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), other electronic circuitry, or a combination of one or more of the preceding) coupled to one or more machine-readable storage media to store code for execution on the set of processors and/or to store data. For instance, an electronic device may include non-volatile memory containing the code since the non-volatile memory can persist code/data even when the electronic device is turned off (when power is removed). When the electronic device is turned on, that part of the code that is to be executed by the processor(s) of the electronic device is typically copied from the slower non-volatile memory into volatile memory (e.g., dynamic random-access memory (DRAM), static random-access memory (SRAM)) of the electronic device. Typical electronic devices also include a set of one or more physical network interface(s) (NI(s)) to establish network connections (to transmit and/or receive code and/or data using propagating signals) with other electronic devices. For example, the set of physical NIs (or the set of physical NI(s) in combination with the set of processors executing code) may perform any formatting, coding, or translating to allow the electronic device to send and receive data whether over a wired and/or a wireless connection. In some embodiments, a physical NI may comprise radio circuitry capable of (<NUM>) receiving data from other electronic devices over a wireless connection and/or (<NUM>) sending data out to other devices through a wireless connection. This radio circuitry may include transmitter(s), receiver(s), and/or transceiver(s) suitable for radiofrequency communication. The radio circuitry may convert digital data into a radio signal having the proper parameters (e.g., frequency, timing, channel, bandwidth, and so forth). The radio signal may then be transmitted through antennas to the appropriate recipient(s). In some embodiments, the set of physical NI(s) may comprise network interface controller(s) (NICs), also known as a network interface card, network adapter, or local area network (LAN) adapter. The NIC(s) may facilitate in connecting the electronic device to other electronic devices allowing them to communicate with wire through plugging in a cable to a physical port connected to an NIC. One or more parts of an embodiment may be implemented using different combinations of software, firmware, and/or hardware.

A network node/device is an electronic device. Some network devices are "multiple services network devices" that provide support for multiple networking functions (e.g., routing, bridging, switching, Layer <NUM> aggregation, session border control, Quality of Service, and/or subscriber management), and/or provide support for multiple application services (e.g., data, voice, and video). Examples of network nodes also include NodeB, base station (BS), multi-standard radio (MSR) radio node (e.g., MSR BS, eNodeB, gNodeB, MeNB, SeNB), integrated access backhaul (IAB) node, network controller, radio network controller (RNC), base station controller (BSC), relay, donor node controlling relay, base transceiver station (BTS), Central Unit (e.g., in a gNB), Distributed Unit (e.g., in a gNB), Baseband Unit, Centralized Baseband, C-RAN, access point (AP), transmission points, transmission nodes, RRU, RRH, nodes in distributed antenna system (DAS), core network node (e.g., MSC, MME, etc.), O&M, OSS, SON, positioning node (e.g., E-SMLC), etc..

Bracketed text and blocks with dashed borders (e.g., large dashes, small dashes, dot-dash, and dots) may be used herein to illustrate optional operations that add additional features to embodiments. However, such notations should not be taken to mean that these are the only options or optional operations, and/or that blocks with solid borders are not optional in certain embodiments.

In the description, embodiments, and claims, the terms "coupled" and "connected," along with their derivatives, may be used. A "set," as used herein, refers to any positive whole number of items including one item.

Although the subject matter described herein may be implemented in any appropriate type of system using any suitable components, the subject matter disclosed herein are described in relation to a wireless network, such as the example wireless network illustrated in <FIG>. For simplicity, the wireless network of <FIG> only depicts network <NUM>, network nodes <NUM> and 1060b, and WDs <NUM>, 1010b, and 1010c. In practice, a wireless network may further include any additional elements suitable to support communication between wireless devices or between a wireless device and another communication device, such as a landline telephone, a service provider, or any other network node or end device. Of the illustrated components, network node <NUM> and wireless device (WD) <NUM> are depicted with additional detail. The wireless network may provide communication and other types of services to one or more wireless devices to facilitate the wireless devices' access to and/or use of the services provided by, or via, the wireless network.

Thus, particular embodiments of the wireless network may implement communication standards, such as Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), Long Term Evolution (LTE), and/or other suitable <NUM>, <NUM>, <NUM>, or <NUM> standards; wireless local area network (WLAN) standards, such as the IEEE <NUM> standards; and/or any other appropriate wireless communication standard, such as the Worldwide Interoperability for Microwave Access (WiMax), Bluetooth, Z-Wave, and/or ZigBee standards.

As used herein, network node refers to equipment capable, configured, arranged, and/or operable to communicate directly or indirectly with a wireless device and/or with other network nodes or equipment in the wireless network to enable and/or provide wireless access to the wireless device and/or to perform other functions (e.g., administration) in the wireless network.

It is to be understood that a network node comprises any suitable combination of hardware and/or software needed to perform the tasks, features, functions, and methods disclosed herein.

In some embodiments, processing circuitry <NUM> may include a system on a chip (SoC).

Device readable medium <NUM> may comprise any form of volatile or non-volatile computer readable memory including, without limitation, persistent storage, solid-state memory, remotely mounted memory, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), mass storage media (for example, a hard disk), removable storage media (for example, a flash drive, a Compact Disk (CD), or a Digital Video Disk (DVD)), and/or any other volatile or non-volatile, non-transitory device readable, and/or computer-executable memory devices that store information, data, and/or instructions that may be used by processing circuitry <NUM>. Device readable medium <NUM> may store any suitable instructions, data, or information, including a computer program, software, an application including one or more of logic, rules, code, tables, etc., and/or other instructions capable of being executed by processing circuitry <NUM> and, utilized by network node <NUM>.

Interface <NUM> is used in the wired or wireless communication of signaling and/or data between network node <NUM>, network <NUM>, and/or WDs <NUM>.

In certain alternative embodiments, network node <NUM> may not include separate radio front end circuitry <NUM>. Instead, processing circuitry <NUM> may comprise radio front end circuitry and may be connected to antenna <NUM> without separate radio front end circuitry <NUM>.

In some embodiments, antenna <NUM> may comprise one or more omni-directional, sector, or panel antennas operable to transmit/receive radio signals between, for example, <NUM> and <NUM>.

Any information, data, and/or signals may be received from a wireless device, another network node, and/or any other network equipment. Any information, data, and/or signals may be transmitted to a wireless device, another network node, and/or any other network equipment.

As used herein, wireless device (WD) refers to a device capable, configured, arranged, and/or operable to communicate wirelessly with network nodes and/or other wireless devices. Unless otherwise noted, the term WD may be used interchangeably herein with user equipment (UE). Communicating wirelessly may involve transmitting and/or receiving wireless signals using electromagnetic waves, radio waves, infrared waves, and/or other types of signals suitable for conveying information through air. In some embodiments, a WD may be configured to transmit and/or receive information without direct human interaction. For instance, a WD may be designed to transmit information to a network on a predetermined schedule, when triggered by an internal or external event, or in response to requests from the network. Examples of a WD include, but are not limited to, a smart phone, a mobile phone, a cell phone, a voice over IP (VoIP) phone, a wireless local loop phone, a desktop computer, a personal digital assistant (PDA), a wireless cameras, a gaming console or device, a music storage device, a playback appliance, a wearable terminal device, a wireless endpoint, a mobile station, a tablet, a laptop, a laptop-embedded equipment (LEE), a laptop-mounted equipment (LME), a smart device, a wireless customer-premise equipment (CPE), a vehicle-mounted wireless terminal device, etc. A WD may support device-to-device (D2D) communication, for example by implementing a 3GPP standard for sidelink communication, vehicle-to-vehicle (V2V), vehicle-to-infrastructure (V2I), vehicle-to-everything (V2X) and may in this case be referred to as a D2D communication device. As yet another specific example, in an Internet of Things (IoT) scenario, a WD may represent a machine or other device that performs monitoring and/or measurements, and transmits the results of such monitoring and/or measurements to another WD and/or a network node. The WD may in this case be a machine-to-machine (M2M) device, which may in a 3GPP context be referred to as an MTC device. As one particular example, the WD may be a UE implementing the 3GPP narrow band internet of things (NB-IoT) standard. Particular examples of such machines or devices are sensors, metering devices such as power meters, industrial machinery, home or personal appliances (e.g. refrigerators, televisions, etc.), or personal wearables (e.g., watches, fitness trackers, etc.). In other scenarios, a WD may represent a vehicle or other equipment that is capable of monitoring and/or reporting on its operational status or other functions associated with its operation. A WD as described above may represent the endpoint of a wireless connection, in which case the device may be referred to as a wireless terminal. Furthermore, a WD as described above may be mobile, in which case it may also be referred to as a mobile device or a mobile terminal.

As illustrated, wireless device <NUM> includes antenna <NUM>, interface <NUM>, processing circuitry <NUM>, device readable medium <NUM>, user interface equipment <NUM>, auxiliary equipment <NUM>, power source <NUM>, and power circuitry <NUM>.

Any information, data, and/or signals may be received from a network node and/or another WD.

In certain embodiments, processing circuitry <NUM> of WD <NUM> may comprise a SoC.

Device readable medium <NUM> may be operable to store a computer program, software, an application including one or more of logic, rules, code, tables, etc., and/or other instructions capable of being executed by processing circuitry <NUM>. Device readable medium <NUM> may include computer memory (e.g., Random Access Memory (RAM) or Read Only Memory (ROM)), mass storage media (e.g., a hard disk), removable storage media (e.g., a Compact Disk (CD), or a Digital Video Disk (DVD)), and/or any other volatile or non-volatile, non-transitory device readable and/or computer executable memory devices that store information, data, and/or instructions that may be used by processing circuitry <NUM>.

<FIG> illustrates a UE in accordance with various aspects described herein.

Network connection interface <NUM> may be configured to provide a communication interface to network 1143a. Network 1143a may encompass wired and/or wireless networks such as a local-area network (LAN), a wide-area network (WAN), a computer network, a wireless network, a telecommunications network, another like network or any combination thereof. For example, network 1143a may comprise a Wi-Fi network.

In <FIG>, processing circuitry <NUM> may be configured to communicate with network 1143b using communication subsystem <NUM>. Network 1143a and network 1143b may be the same network or networks or different network or networks. Communication subsystem <NUM> may be configured to include one or more transceivers used to communicate with network 1143b.

Network 1143b may encompass wired and/or wireless networks such as a local-area network (LAN), a wide-area network (WAN), a computer network, a wireless network, a telecommunications network, another like network or any combination thereof. For example, network 1143b may be a cellular network, a Wi-Fi network, and/or a near-field network.

In the present context, virtualizing means creating virtual versions of apparatuses or devices which may include virtualizing hardware platforms, storage devices, and networking resources.

Virtualization environment <NUM> comprises general-purpose or special-purpose network hardware devices <NUM> comprising a set of one or more processors or processing circuitry <NUM>, which may be commercial off-the-shelf (COTS) processors, dedicated Application Specific Integrated Circuits (ASICs), or any other type of processing circuitry including digital or analog hardware components or special purpose processors. Software <NUM> may include any type of software including software for instantiating one or more virtualization layers <NUM> (also referred to as hypervisors), software to execute virtual machines <NUM> as well as software allowing it to execute functions, features, and/or benefits described in relation with some embodiments described herein.

Virtual machines <NUM> comprise virtual processing, virtual memory, virtual networking or interface, and virtual storage, and may be run by a corresponding virtualization layer <NUM> or hypervisor.

In some embodiments, some signaling can be affected with the use of control system <NUM> which may alternatively be used for communication between the hardware nodes <NUM> and radio units <NUM>.

With reference to <FIG> a communication system includes telecommunication network <NUM>, such as a 3GPP-type cellular network, which comprises access network <NUM>, such as a radio access network, and core network <NUM>. Access network <NUM> comprises a plurality of base stations 1312a, 1312b, 1312c, such as NBs, eNBs, gNBs or other types of wireless access points, each defining a corresponding coverage area 1313a, 1313b, 1313c. Each base station 1312a, 1312b, 1312c is connectable to core network <NUM> over a wired or wireless connection <NUM>. A first UE <NUM> located in coverage area 1313c is configured to wirelessly connect to, or be paged by, the corresponding base station 1312c. A second UE <NUM> in coverage area 1313a is wirelessly connectable to the corresponding base station 1312a.

Example implementations of the UE, base station and host computer discussed in the preceding paragraphs will now be described with reference to <FIG>.

Connection <NUM> may be direct, or it may pass through a core network (not shown in <FIG>) of the telecommunication system and/or through one or more intermediate networks outside the telecommunication system.

It is noted that host computer <NUM>, base station <NUM>, and UE <NUM> illustrated in <FIG> may be similar or identical to host computer <NUM>, one of base stations 1312a, 1312b, 1312c and one of UEs <NUM>, <NUM> of <FIG>, respectively.

Wireless connection <NUM> between UE <NUM> and base station <NUM> is in accordance with the teachings of the embodiments described throughout this disclosure. One or more of the various embodiments improve the performance of OTT services provided to UE <NUM> using OTT connection <NUM>, in which wireless connection <NUM> forms the last segment.

In certain embodiments, measurements may involve proprietary UE signaling facilitating host computer <NUM>'s measurements of throughput, propagation times, latency, and the like. The measurements may be implemented in that software <NUM> and <NUM> causes messages to be transmitted, in particular empty or 'dummy' messages, using OTT connection <NUM> while it monitors propagation times, errors, etc..

<FIG> is a flowchart illustrating a method implemented in a communication system.

<FIG> is a flowchart illustrating a method implemented in a communication system.

<FIG> is a flowchart illustrating a method implemented in a communication system.

<FIG> is a flowchart illustrating a method implemented in a communication system.

Claim 1:
A method, in an electronic device, for planning an indoor radio network for a building, the method comprising:
preprocessing (<NUM>) an image of a floor plan of the building;
generating, using a conditional Generative Adversarial Network, cGAN, (<NUM>) a radio propagation map for the floor plan using the preprocessed image; and
determining (<NUM>) an indoor radio transmitter distribution for the floor plan using the radio propagation map by:
applying a clustering algorithm to the radio propagation map to determine regions within the radio propagation map, wherein each region comprises signal points that have a computed signal power over a power threshold, and are within a physical distance threshold of each other;
determining the centers of each region; and
placing radio transmitters at the centers of each region in the indoor radio transmitter distribution.