APPARATUS AND METHOD FOR AN IMPROVED TRANSMITTER FOR MULTI-SERVICE RADIO NETWORKS
20230208692 · 2023-06-29
Assignee
Inventors
- Mus'ab Mahmoud ABD ALKAREEM ALAYASRA (Istanbul, TR)
- Ahmet Enes DURANAY (Istanbul, TR)
- Huseyin ARSLAN (Istanbul, TR)
Cpc classification
H04L27/2634
ELECTRICITY
H04L27/26025
ELECTRICITY
International classification
Abstract
An apparatus and method for a multi-service transmitter of an OFDM base station (BS) in a mixed numerology radio access network, wherein the transmitter uses a common cyclic prefix across all service types to eliminate inter-numerology interference (INI) by using a new Frequency Re-sampler (VR) component in the transmitter that converts streams of those services with smaller FFT sizes into a common larger FFT size in the frequency domain, which in effect increases their number of samples. The VR simply causes a multi-service transmitter to mimic a single-service transmitter thereby reducing the required number of ZF precoders to one and causing much fewer number of precoding operations. The transmitter sends resource configuration regarding the use of common CP for all services to each connected UE.
Claims
1. A method executed in a transmitter of an OFDM base station in a wireless radio access network sending data over a broadcast radio channel between M.sub.T transmit antennas and M.sub.R receive antennas of at least one User Equipment for a first service type using a lower numerology and a second service type using a higher numerology, a resource configuration for the first service type having been defined as using N.sub.0 number of subcarriers, subcarrier spacing of Δf.sub.0, and cyclic prefix duration of CP.sub.0 and a resource configuration for second service having been defined as using N.sub.1 number of subcarriers, subcarrier spacing of Δf.sub.1, and cyclic prefix duration of CP.sub.1, wherein L=N.sub.0/N.sub.1 and CP.sub.1=CP.sub.0/(N.sub.0/N.sub.1), and L is an integer that is positive powers of 2, wherein the transmitter performs the steps of: a. taking L number of N.sub.1 point Inverse FFT of modulated frequency domain symbols of the second service to create corresponding N.sub.1 time domain symbols; i. first multiplexing time domain symbols of step (a) to create a serial symbol stream; ii. then, demultiplexing said stream of step (i) into N.sub.0 parallel symbol streams; b. taking N.sub.0 point FFT of said N.sub.0 parallel time domain symbol streams of step (ii) to create N.sub.0 modulated frequency domain symbols; c. precoding modulated frequency domain symbols of both the first and the second services over N.sub.0 number of subcarriers over all channels created by a number of transmit and receive antenna pairs; d. taking N.sub.0 point inverse FFT of both first and second service symbols to generate time domain symbols of the first and the second service; e. prepending each time domain symbol generated in step (d) of the first service with a CP of duration CP.sub.0; f. prepending each consecutive L time domain symbols of second service generated in step (d) with a CP of duration CP.sub.0; g. multiplexing prepended time domain symbols of steps (e) into a serial stream of time domain symbols each according to first service's subcarrier spacing, Δf.sub.0, and converting each symbol to analog signals for transmission; and h. Multiplexing prepended time domain symbols of steps (f) into a serial stream of time domain symbols each according to second service's subcarrier spacing, Δf.sub.1, and converting each symbol to analog signals for transmission.
2. The method according to claim 1, wherein the lower numerology is numerology zero.
3. The method according to claim 1, wherein the higher numerology is at least numerology one.
4. The method according to claim 1, wherein the base station corresponds to any antenna configurations of MIMO, SISO, SIMO, or MISO.
5. A method executed transmitter of an OFDM base station in a wireless radio access network sending data over a broadcast radio channel between M.sub.T transmit antennas and M.sub.R receive antennas of at least one User Equipment for a first service type using a lower numerology and a plurality of other service types each using a different and higher numerology, a resource configuration of first service S.sub.0 having been defined as using N.sub.0 number of subcarriers, subcarrier spacing of Δf.sub.0, and cyclic prefix duration of CP.sub.0, and resource configurations of other services having been defined for the i.sup.th service S.sub.i as using N.sub.i number of subcarriers, subcarrier spacing of Δf.sub.i, and cyclic prefix duration of CP.sub.i, wherein L.sub.i=N.sub.0/N.sub.i and CP.sub.i=CP.sub.0/(N.sub.0/N.sub.i), and L.sub.i is an integer that is positive powers of 2, said transmitter applying the steps of: a. taking L.sub.i times N.sub.i point Inverse FFT of modulated frequency domain symbols of each service S.sub.i to create corresponding N.sub.i time domain symbols; i. first multiplexing time domain symbols of step (b) to create a serial symbol stream; ii. then, demultiplexing said stream of step (i) into N.sub.0 parallel symbol streams; b. taking N.sub.0 point FFT of said N.sub.0 parallel time domain symbol streams of step (ii) to create N.sub.0 modulated frequency domain symbols for each of said plurality of services; c. precoding modulated frequency domain symbols of first and said plurality of services over N.sub.0 number of subcarriers over all channels created by a number of transmit and receive antenna pairs; d. taking N.sub.0 point inverse FFT of symbols of S.sub.0 and the plurality of services S.sub.i to generate time domain symbols; e. prepending each time domain symbol generated in step (d) of the first service with a CP of duration CP.sub.0; f. prepending each consecutive L.sub.i time domain symbols of S.sub.i generated in step (d) with a CP of duration CP.sub.0; g. multiplexing prepended time domain symbols of steps (e) into a serial stream of time domain symbols each according to subcarrier spacing, Δf.sub.0 of S.sub.0, and converting each symbol to analog signals for transmission; and h. multiplexing prepended time domain symbols of steps (f) into a serial stream of time domain symbols each according to subcarrier spacing, Δf.sub.i of S.sub.i, and converting each symbol to analog signals for transmission.
6. The method according to claim 5, wherein the lower numerology is numerology zero.
7. The method according to claim 5, wherein the higher numerology is at least numerology one.
8. The method according to claim 5, wherein the base station has any antenna configurations of MIMO, SISO, SIMO, or MISO.
9. A physical layer resource configuration method executed in a transmitter of an OFDM base station in a wireless radio access network sending data on broadcast radio channel to a User Equipment for a plurality service types, wherein each service using a different numerology, and wherein the configuration method performs the steps of: a. the User Equipment sending a control message to OFDM base station requesting physical layer resource configuration to use for a service type; and b. the OFDM base station responding with a control message that includes at least resource configuration that species N.sub.i number of subcarriers, subcarrier spacing of Δf.sub.i, and common cyclic prefix duration of CP.sub.0.
10. The physical layer resource configuration method according to claim 9, wherein the requesting and responding apply to a single service type, a plurality of service types, or service types identified by service numbers or service names.
11. The physical layer resource configuration method according to claim 9, wherein the service names are mMTC, uRLLC, and eMBB.
12. A transmitter system within a base station of a radio access network sending data on a broadcast radio channel to a plurality of User Equipment belonging to at least two different service types such that a first service is of lower numerology N.sub.0 than a second service of higher numerology N.sub.1, wherein the transmitter comprising components of: a. a frequency re-sampler subsystem executing the following sequential steps of (i) taking L.sub.1 times N.sub.1 point Inverse FFT of modulated frequency domain symbols of the second service to create corresponding L.sub.1N.sub.1 time domain symbols, (ii) multiplexing L.sub.1N.sub.1 time domain symbols to create a serial symbol stream, (iii) demultiplexing said stream into N.sub.0 parallel symbol streams, and (i) taking N.sub.0 point FFT of said N.sub.0 parallel time domain symbol streams to create N.sub.0 modulated frequency domain symbols; b. a ZF precoder subsystem applying precoding over N.sub.0 number of subcarriers to modulated frequency domain symbols of the first service and second service; c. an IFFT subsystem taking N.sub.0 point inverse FFT of the first service symbols and the second service symbols to generate time domain symbols of the first service and the second service; d. a common CP Adder subsystem prepending each time domain symbol generated of the first service with a CP of duration CP.sub.0. Prepending each consecutive L.sub.1 time domain symbols of the second service with a CP of duration CP.sub.0; and e. a physical resource configurator subsystem that configures UEs served by said base station for a plurality of services according to use of common CP for all numerologies.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0048] The present disclosure, in accordance with one or more various examples, is described in detail with reference to the following figures. The drawings are provided for purposes of illustration only and merely depict examples of the disclosure. These drawings are provided to facilitate the reader's understanding of the disclosure and should not be considered limiting of the breadth, scope, or applicability of the disclosure. It should be noted that for clarity and ease of illustration these drawings are not necessarily made to scale.
[0049]
[0050]
[0051]
[0052]
[0053]
[0054]
[0055]
[0056]
[0057]
[0058] Below is a list of acronyms used in the instant application:
[0059] A/D Analog to Digital
[0060] 3GPP 3.sup.rd Generation Partnership Program
[0061] BER Bit Error Rate
[0062] BPSK Binary Phase Shift Keying
[0063] BS Base Station
[0064] CP Cyclic Prefix
[0065] CSI Channel State Information
[0066] D/A Digital to Analog
[0067] DL Down Link
[0068] eMBB Enhanced Mobile Broadband
[0069] FFT Fast Fourier Transform
[0070] IFFT Inverse Fast Fourier Transform
[0071] INI Inter Numerology Interference
[0072] IoT Internet of Thing
[0073] ISI Inter Symbol Interference
[0074] MIMO Multi Input Multi Output
[0075] mMTC Massive Machine Type Communications
[0076] OFDM Orthogonal Frequency Division Multiplexing
[0077] QAM Quadrature Amplitude Modulation
[0078] RAN Radio Access Network
[0079] RF Radio Frequency
[0080] RX Receiver
[0081] SISO Single Input Single Output
[0082] SNR Signal to Noise Ratio
[0083] TX Transmitter
[0084] UE User Equipment
[0085] uRLLC Ultra-Reliable Low-Latency Communications
[0086] ZF Zero Forcing
DETAILED DESCRIPTION OF THE EMBODIMENTS
[0087] The first aspect of invention is a method executed in a transmitter of an OFDM base station in a wireless radio access network sending data over broadcast radio channel to a plurality of User Equipment (UE) for first service type using a lower numerology (reference service) and second service type using a higher numerology, first service type having been defined as using N.sub.0 number of subcarriers, subcarrier spacing of Δf.sub.0, and cyclic prefix duration of CP.sub.0 and second service having been defined as using N.sub.1 number of subcarriers, subcarrier spacing of Δf.sub.1 a and cyclic prefix duration of CP.sub.1, wherein L=N.sub.0/N.sub.1, CP.sub.1=CP.sub.0/(N.sub.0/N.sub.1) and L is an integer that is positive powers of 2, said transmitter applying the steps of: (a) taking N.sub.1 point Inverse FFT of modulated frequency domain symbols of second service to create corresponding N.sub.1 time domain symbols for L times. Subsequently, multiplexing time domain symbols to create a serial symbol stream, and then, demultiplexing said stream into N.sub.0 parallel symbol streams; (b) Taking N.sub.0 point FFT of said N.sub.0 parallel time domain symbol streams to recreate N.sub.0 modulated frequency domain symbols, (c) Applying ZF precoding over N.sub.0 number of subcarriers to modulated N.sub.0 number frequency domain symbols of first and second services over channels generated by all transmit and receive antenna pairs; (d) Taking N.sub.0 point inverse FFT of first and second service symbols to generate time domain symbols of first and second services; (e) Prepending each time domain symbol of first service with common CP of duration CP.sub.0, and prepending each consecutive L time domain symbols of second service with common CP of duration CP.sub.0; (f) Multiplexing prepended time domain symbols of first service into a serial stream of time domain symbols each according to first service's subcarrier spacing, Δf.sub.0, converting each symbol to analog signals for transmission using RF chain, multiplexing prepended time domain symbols of second stream into a serial stream of time domain symbols each according to second service's subcarrier spacing, Δf.sub.1, and converting each symbol to analog signals for transmission using RF chain.
[0088] The second aspect of this invention is to apply the common CP across many services by selecting the lowest numerology service as the reference service, the steps of the method following the same method steps described in the first aspect of invention.
[0089] The third aspect of this invention is a physical layer resource configuration method executed in an OFDM base station in a cellular radio access network sending data on broadcast radio channel to a User Equipment for a plurality service types each service using a different numerology, said configuration method has the steps of: (a) User Equipment sending a message to OFDM base station requesting physical layer resource configuration to use for a service type; (b) OFDM base station responding with a message that includes at least resource configuration that species N.sub.i number of subcarriers, subcarrier spacing of Δf.sub.i, and common cyclic prefix duration of CP.sub.0 per L.sub.i symbols wherein said requesting and responding apply to a single service type, or a plurality of service types, or service types identified by service numbers or service names such as mMTC, uRLLC and eMBB.
[0090] A fourth aspect of this invention is an OFDM base station transmitter system sending data on a broadcast radio channel to a plurality of User Equipment belonging to at least two different service types such that first service (reference service) is of lower numerology N.sub.0 than the second service of higher numerology N.sub.1, said system comprising components of: (a) A frequency re-sampler subsystem executing the following sequential steps to only second service of (i) taking L times N.sub.1 point Inverse FFT of modulated frequency domain symbols of second service to create corresponding N.sub.1 time domain symbols, (ii) multiplexing obtained time domain symbols to create a serial symbol stream, (iii) demultiplexing said stream into N.sub.0 parallel symbol streams, and (i) taking N.sub.0 point FFT of said N.sub.0 parallel time domain symbol streams to create N.sub.0 modulated frequency domain symbols; (b) A ZF precoder subsystem applying precoding over N.sub.0 number of subcarriers to modulated frequency domain symbols of first service and second service; (c) An IFFT subsystem taking N.sub.0 point inverse FFT of first service symbols and second service symbols to generate time domain symbols of first service and second service; (d) A common CP Adder subsystem prepending each time domain symbol generated of first service with a CP of duration CP.sub.0. Prepending each consecutive L time domain symbols of second service with a CP of duration CP.sub.0; (e) A physical resource configurator subsystem that configures a UE for a plurality of services according to use of common CP for all numerologies according to third aspect of this invention.
[0091] While this invention is illustrated and described in a preferred embodiment, the invention may be produced in many different configurations. There is depicted in the drawings, and will herein be described in detail, a preferred embodiment of the invention, with the understanding that the present disclosure is to be considered as an exemplification of the principles of the invention and the associated functional specifications for its construction and is not intended to limit the invention to the embodiment illustrated. Those skilled in the art will envision many other possible variations within the scope of the present invention.
[0092] Note that in this description, references to “one embodiment” or “an embodiment” mean that the feature being referred to is included in at least one embodiment of the invention. Further, separate references to “one embodiment” in this description do not necessarily refer to the same embodiment; however, neither are such embodiments mutually exclusive, unless so stated and except as will be readily apparent to those of ordinary skill in the art. Thus, the present invention can include any variety of combinations and/or integrations of the embodiments described herein.
[0093] Radio Access Network (RAN) has many more components than those described in this disclosure. Those components are omitted so that the invention is easy to understand. Furthermore, other parts of a new generation cellular network such as the data plane and control plane of the core network are also omitted as those parts are not relevant to invention.
[0094] MIMO is the acronym for Multiple Input Multiple Output. This means that the radio is split up in multiple identical radio frequency (RF) chains that can all transmit and receive data individually and simultaneously with a plurality of antennas. More data can, therefore, be sent or received simultaneously, or alternatively the same data can be sent or received several times for reliable transmission. A radio frequency (RF) chain may include a broad range of discrete components such as attenuators, switches, amplifiers, detectors, synthesizers, and other analog components along with A/D and D/A converters. In what follows, subcomponents specific to RF chain that are well known in prior art are also omitted to keep the descriptions focused on invented methods and subcomponents. Furthermore, at higher frequencies the sizes of antennas decrease where many antennas might be compacted in a small volume. The increase in the number of elements makes it costly to have a dedicated RF chain for every single antenna. Therefore, the number of RF chains might be less than that of antenna elements. This feature is enabled by an RF precoder which is well known in prior art. However, for the sake of simplicity, the number of antennas is assumed to be the same as the number of RF chains, M.sub.T since RF precoder is out of scope. The number of RF chains and antennas are thus used interchangeably.
[0095] Furthermore, functionalities according to several embodiments of this invention are grouped as transmitter functions of a base stations for simplicity, wherein in another embodiment of this invention some functionalities may belong to subsystems of the base station other than the transmitter.
[0096] In some embodiment, the subcarrier spacing in OFDM refers to the frequency interval between allocated subcarriers. Through the subcarrier spacing, OFDM enables data transmission while maintaining orthogonality among subcarriers. LTE supports only one subcarrier spacing that is fixed at 15 kHz. The ‘numerology’ refers to how to configure a unit of radio access network resource in time domain. LTE RAN uses a single numerology with 15 kHz as the subcarrier spacing, while OFDM RAN uses various numerologies each one supporting a different subcarrier spacing (an integer multiple of 15 KHz) to support a wide frequency range up to 100 GHz and hence wider bandwidth than LTE, and various service types eMBB, uRLL, and mMTC with varying requirements.
[0097] In some embodiments, an OFDM symbol duration comprises a cyclic prefix (CP) duration and a duration for the symbol in time-domain in a unit of microseconds. The transmitted OFDM symbol duration is determined as the sum of the two durations for the CP and the output of IFFT.
[0098] In some embodiments, a UE is configured to receive the two services but configured with the same set of numerology parameters for these two services. In some embodiments, a UE is configured to receive the two services but configured with two different sets of numerology parameters for these two services. In such embodiments, the numerology parameters include at least one of the CP length, the subcarrier spacing, OFDM symbol length, FFT size (indicative of the number of subcarriers used).
[0099]
[0100] The input to ZF Precoding 201 is a series of symbols parallelized on a per subcarrier basis wherein subcarrier spacing is 15 KHz. ZF Precoding 201 multiplies each arriving symbol with the inverse of the that subcarrier's channel state information (CSI) and sends these processed symbols as inputs to N-point inverse FFT 202 (we assumed the number of subcarriers being equal to FFT size N). Block 203 adds the same duration CP to each time domain symbol. After multiplexing of all symbols from all subcarriers, Block 204 performs all RF Chain functions to translate discrete time symbols to actual analog radio signals and transmits them using antenna 205.
[0101] In a MIMO base station, above operations are performed across all RF chains. This parallelization is needed as ZF precoding may see different channel characteristics as reflected by each base station RF chain (1, 2, . . . , M.sub.T) and each UE RF chain (1, 2, . . . , M.sub.R) that are causing radio signals in spatially different directions. Therefore, there are (M.sub.TM.sub.R) distinct radio paths to consider. Furthermore, ZF Precoding performs precoding for each subcarrier resulting in (M.sub.TM.sub.RN) computations per input stream of symbols.
[0102]
[0103] The input to ZF Precoding 301 is a series of symbols parallelized on a per subcarrier basis according to the first service's subcarrier spacing. ZF Precoding 301 multiplies each arriving symbol with the inverse of the that subcarrier's channel state information (CSI) and sends these processed symbols as inputs to N.sub.1-point inverse FFT 302. Block 303 adds CP.sub.1 to each time domain symbol. All symbols from all subcarriers are then multiplexed.
[0104] A parallel process is executed by ZF Precoding 311 to the second service. ZF Precoding 311 multiplies each arriving symbol with the inverse of the that subcarrier's channel state information (CSI) and sends these processed symbols as inputs to N.sub.2-point inverse FFT 312 (we assumed the number of subcarriers being equal to FFT size). Block 313 adds CP.sub.2 to each time domain symbol. After multiplexing of all symbols from all subcarriers. Block 304 performs the RF Chain functions to the merged symbols and translate discrete time symbols to analog radio signals. Analog signals are sent to antenna 305.
[0105] The total number of ZF precodings according to prior art configuration of
M.sub.TM.sub.RN.sub.0+Σ.sub.i=1.sup.p(M.sub.TM.sub.R(L.sub.iN.sub.i)) (Eq. 1)
[0106] The number of IFFT operations according to said prior art configuration is:
M.sub.TN.sub.0 log.sub.2(N.sub.0)+M.sub.TΣ.sub.i=1.sup.p(L.sub.iN.sub.i log.sub.2(N.sub.i)) (Eq. 2)
[0107] wherein N.sub.0 log.sub.2(N.sub.0) is the number of IFFT operations are performed for service S.sub.0 per antenna and L.sub.iN.sub.i log.sub.2(N.sub.i) is the number of IFFT operations per each service S.sub.i per antenna. The number of IFFT formulas are well-known in prior art.
[0108]
[0109]
[0110] In one embodiment, the transmitter in the base station operates only according to common CP of this invention as illustrated in
[0111] One method of dual-mode transmitter using variable CP is activating componentry such as the additional ZF precoders and per-service IFFT operations (shown in
[0112]
[0113]
[0114] The total number of ZF precodings according to embodiments of this invention when there is a reference service S.sub.0 with N.sub.0 subcarriers, and other p number of services of different numerology, each service of different numerology having N.sub.i subcarriers, and L.sub.i=N.sub.0/N.sub.i is:
M.sub.TM.sub.RN.sub.0 (Eq. 3)
[0115] The corresponding total number of IFFT and FFT operations according to invention is:
M.sub.TN.sub.0 log.sub.2(N.sub.0)+Σ.sub.i=1.sup.p(L.sub.iN.sub.i log.sub.2(N.sub.i)+N.sub.0 log.sub.2(N.sub.0)) (Eq. 4)
[0116] wherein the first term of M.sub.TN.sub.0 log.sub.2(N.sub.0) is the number of IFFT operations that are performed for M.sub.T antennas. The second term has (L.sub.iN.sub.i log.sub.2(N.sub.i)+N.sub.0 log.sub.2(N.sub.0)) that is the number of back-to-back IFFT and FFT operations, respectively, performed by each Frequency Re-sampler V.sub.i.
[0117] Just to give a measure of complexity reduction with the present invention Eqs. 1 and 3 are compared, and the number of precoding savings with the invention is determined to be Σ.sub.i=1.sup.p(M.sub.TM.sub.R(L.sub.iN.sub.i)). Similarly, comparing Eqs. 2 and 4, the number of FFT/IFFT operations savings with the invention is (M.sub.T Σ.sub.i=1.sup.p(L.sub.i N.sub.i log.sub.2(N.sub.i))−Σ.sub.i=1.sup.p(L.sub.i N.sub.i log.sub.2(N.sub.i)+N.sub.0 log.sub.2(N.sub.0))) wherein the first term dominates with large number of antennas in MIMO transmitter configurations.
[0118]
[0119]
[0120]
[0121] Step 701(a) converts the bit stream of service S.sub.0 into N.sub.0 modulated parallel steam of symbols prepared for precoding. Similarly, step 701(b) converts the bit stream of service S.sub.i into Li N.sub.i modulated parallel steam of symbols prepared for resampling. At step 702, N.sub.i-point IFFT is taken for L.sub.i times to convert the symbol stream to time domain. The stream is serialized first and then parallelized to create N.sub.0 streams in step 704. Step 705 takes N.sub.0-point FFT of the stream to convert the symbols back to frequency domain.
[0122] Step 706 is common for all services. It performs the ZF precoding of symbols distributed to N.sub.0 subcarriers and transmitted by any transmit-receive antenna pair. Subsequently, pre-coded symbols are converted to time domain in step 707, and common CP is inserted to each symbol. This process in essence causes one CP per symbol of the reference services, and one CP per L.sub.i symbols of the non-reference services as illustrated in
[0123] One or more of the components illustrated in these Figures can be implemented in specialized circuitry configured to perform the noted functions or one or more of the components can be implemented by one or more processors executing instructions to perform the noted functions. Other embodiments are used without departing from the scope of the present disclosure.
[0124] Many of the above-described features and applications can be implemented as software processes that are specified as a set of instructions recorded on a computer readable storage medium (also referred to as computer readable medium). When these instructions are executed by one or more processing unit(s) (e.g., one or more processors, cores of processors, or other processing units), they cause the processing unit(s) to perform the actions indicated in the instructions. Embodiments within the scope of the present disclosure may also include tangible and/or non-transitory computer-readable storage media for carrying or having computer-executable instructions or data structures stored thereon. Such non-transitory computer-readable storage media can be any available media that can be accessed by a general purpose or special purpose computer, including the functional design of any special purpose processor. By way of example, and not limitation, such non-transitory computer-readable media can include flash memory, RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions, data structures, or processor chip design. The computer readable media does not include carrier waves and electronic signals passing wirelessly or over wired connections.
[0125] Computer-executable instructions include, for example, instructions and data which cause a general-purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Computer-executable instructions also include program modules that are executed by computers in stand-alone or network environments. Generally, program modules include routines, programs, components, data structures, objects, and the functions inherent in the design of special-purpose processors, etc. that perform particular tasks or implement particular abstract data types. Computer-executable instructions, associated data structures, and program modules represent examples of the program code means for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described in such steps.
[0126] Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive 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 performing or executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks.
[0127] In this specification, the term “software” is meant to include firmware residing in read-only memory or applications stored in magnetic storage or flash storage, for example, a solid-state drive, which can be read into memory for processing by a processor. Also, in some implementations, multiple software technologies can be implemented as sub-parts of a larger program while remaining distinct software technologies. In some implementations, multiple software technologies can also be implemented as separate programs. Finally, any combination of separate programs that together implement a software technology described here is within the scope of the subject technology. In some implementations, the software programs, when installed to operate on one or more electronic systems, define one or more specific machine implementations that execute and perform the operations of the software programs.
[0128] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
[0129] These functions described above can be implemented in digital electronic circuitry, in computer software, firmware or hardware. The techniques can be implemented using one or more computer program products. Programmable processors and computers can be included in or packaged as mobile devices. The processes and logic flows can be performed by one or more programmable processors and by one or more programmable logic circuitry. General and special purpose computing devices and storage devices can be interconnected through communication networks.
[0130] Some implementations include electronic components, for example microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media). Some examples of such computer-readable media include RANI, ROM, read-only compact discs (CD-ROM), recordable compact discs (CD-R), rewritable compact discs (CD-RW), read-only digital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM), a variety of recordable/rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc.), magnetic or solid state hard drives, read-only and recordable Blu-Ray® discs, ultra density optical discs, any other optical or magnetic media, and floppy disks. The computer-readable media can store a computer program that is executable by at least one processing unit and includes sets of instructions for performing various operations. Examples of computer programs or computer code include machine code, for example is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.
[0131] While the above discussion primarily refers to microprocessor or multi-core processors that execute software, some implementations such as FFT/IFFT and modulation/demodulation operations can be performed by one or more integrated circuits, for example application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some implementations, such integrated circuits execute instructions that are stored on the circuit itself.
[0132] As used in this specification and any claims of this application, the terms “computer readable medium” and “computer readable media” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral signals.